{"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_blueprint_gap", "name": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#7\nRepo: Steviewonders99/OneTake\nIssue/PR number: 7\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 51\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_findin"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined assumption checks: Steviewonders99/OneTake"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#6\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'schema_or_data': 1, 'source_or_other': 3, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4607f478e3d4e43f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined test ci gap after feedback: Steviewonders99/OneTake"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#6\nRepo: Steviewonders99/OneTake\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 39\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, '"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined schema ui api mismatch: Steviewonders99/OneTake"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#7\nRepo: Steviewonders99/OneTake\nIssue/PR number: 7\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 51\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined docs only runtime fix: Steviewonders99/OneTake"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#5\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#5\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#5\nRepo: Steviewonders99/OneTake\nIssue/PR number: 5\nGraph consistency label: supported_by_verification_signal\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comme"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined bad chains: Steviewonders99/OneTake"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#4\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 17\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'schema_or_data': 1, 'api_or_backend': 7, 'source_or_other': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8c8dea9c4be61c7e\",\n    \"kind\": \"pull_request_body\",\n    \"lab"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake", "shortDescription": {"text": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#8\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#8\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#8\nRepo: Steviewonders99/OneTake\nIssue/PR number: 8\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 28\nNode types: {'commit': 5, 'pr_file': 4, 'link_quality': 3, 'thread': "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-20dba66bf8e5aa63", "name": "Possibly dead Python function: biz_end", "shortDescription": {"text": "Possibly dead Python function: biz_end"}, "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-b72fa5b4d7a9f4ea", "name": "Possibly dead Python function: query_ga4_for_slug", "shortDescription": {"text": "Possibly dead Python function: query_ga4_for_slug"}, "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-8dc84e9edbe435e6", "name": "Possibly dead Python function: fetch_pending_jobs", "shortDescription": {"text": "Possibly dead Python function: fetch_pending_jobs"}, "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-9a8f69bbe2b3f233", "name": "Possibly dead Python function: mark_job_processing", "shortDescription": {"text": "Possibly dead Python function: mark_job_processing"}, "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-5473ac201b718d2d", "name": "Possibly dead Python function: alert_sync_failure", "shortDescription": {"text": "Possibly dead Python function: alert_sync_failure"}, "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-a46c81e96211417c", "name": "Possibly dead Python function: notify_auto_edit", "shortDescription": {"text": "Possibly dead Python function: notify_auto_edit"}, "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-4f4362c32d14f07c", "name": "Possibly dead Python function: list_projects", "shortDescription": {"text": "Possibly dead Python function: list_projects"}, "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-44f66437cd3cd80e", "name": "Possibly dead Python function: normalize_pages", "shortDescription": {"text": "Possibly dead Python function: normalize_pages"}, "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-65402d8b28dc4b83", "name": "Possibly dead Python function: trigger_sync", "shortDescription": {"text": "Possibly dead Python function: trigger_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-a09fdd037e455a6e", "name": "Possibly dead Python function: get_ga4_funnel", "shortDescription": {"text": "Possibly dead Python function: get_ga4_funnel"}, "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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81f8d15852df2576", "name": "Stray `console.log` in TS/JS \u2014 worker/generate_sibling_images.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker/generate_sibling_images.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e49b5a35c42619af", "name": "Stray `console.log` in TS/JS \u2014 worker/swap_sibling_images.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker/swap_sibling_images.js:65"}, "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-9955f8e909b96b5c", "name": "Stray `console.log` in TS/JS \u2014 worker/deploy_humus_siblings.js:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker/deploy_humus_siblings.js:181"}, "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-e961a993b8357b54", "name": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignList.tsx:178", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignList.tsx:178"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab88879769a88327", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/IntakeCard.tsx:31", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/IntakeCard.tsx:31"}, "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-b460ddd4703a8a1d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetCard.tsx:97", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetCard.tsx:97"}, "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-93a64d862afe6dc1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/CreativeCard.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/CreativeCard.tsx:86"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-609f5f4afa767090", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/RecruiterDetailView.tsx:630", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/RecruiterDetailView.tsx:630"}, "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-e6a51aa6dff49ea9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetReviewPanel.tsx:205", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetReviewPanel.tsx:205"}, "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-cc7159b53d2b50f3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/EditableField.tsx:120", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/EditableField.tsx:120"}, "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-2882d5d28093caca", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/CampaignWorkspace.tsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/CampaignWorkspace.tsx:224"}, "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-7603d77baf931688", "name": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignWorkspace.tsx:160", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignWorkspace.tsx:160"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-04ac41981ece9bd6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TikTokFrame.tsx:135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TikTokFrame.tsx:135"}, "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-a31607c6bd686525", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/FacebookFeedFrame.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/FacebookFeedFrame.tsx:78"}, "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-7e5b83f827a58b46", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TelegramCardFrame.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TelegramCardFrame.tsx:49"}, "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-42f924a91c9dab93", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/LinkedInFeedFrame.tsx:77", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/LinkedInFeedFrame.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-beb32ecbaf3556ae", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/InstagramFeedFrame.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/InstagramFeedFrame.tsx:103"}, "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-c8a27db8175772ee", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/Calendar.tsx:277", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/Calendar.tsx:277"}, "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-fdd77c1ce68ccdc0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/SEOPlanCard.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/SEOPlanCard.tsx:133"}, "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-ad5d7880faee58ee", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/ShareModal.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/ShareModal.tsx:70"}, "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-087848b000801e47", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetRenderer.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetRenderer.tsx:68"}, "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-62e1018ba5175430", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetPalette.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetPalette.tsx:48"}, "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-03646d0f6a2046f0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetConfigPanel.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetConfigPanel.tsx:28"}, "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-a8f7599236618580", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardToolbar.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardToolbar.tsx:70"}, "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-48d2240dc25704d4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardCard.tsx:24", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardCard.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-f5d60295d3f81ce2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/project-report/ProjectReportClient.tsx:254", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/project-report/ProjectReportClient.tsx:254"}, "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-c8abc169f9bd3ceb", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:530", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:530"}, "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-7f4bafec2e044a71", "name": "React Flow <Controls> without dark theming \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:302", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:302"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-493b00138574e3d4", "name": "Icon-only button without accessible name \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:29", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:29"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65c4728281283463", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/MasterFilterWidget.tsx:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/MasterFilterWidget.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-9a08e6ea09177edc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscPerformanceWidget.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscPerformanceWidget.tsx:91"}, "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-a854aa9de1effd34", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PlatformAudiencesWidget.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PlatformAudiencesWidget.tsx:84"}, "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-5e12647290f7d6a4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/FunnelVisualizationWidget.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/FunnelVisualizationWidget.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-fdd9d4d4f498168d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignTimelineWidget.tsx:71", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignTimelineWidget.tsx:71"}, "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-3fbe67d32706af58", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/ChannelAttributionWidget.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/ChannelAttributionWidget.tsx:167"}, "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-672dcfb027696b7e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CategoryBreakdownWidget.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CategoryBreakdownWidget.tsx:102"}, "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-d5f504b5b2fdfe50", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/TopCampaignSpendWidget.tsx:175", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/TopCampaignSpendWidget.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-5ad2f238651df11a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/OrganicTopPostsWidget.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/OrganicTopPostsWidget.tsx:79"}, "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-55e565480d27fb8a", "name": "TODO/FIXME marker in shipping code \u2014 src/components/insights/widgets/TargetingVsRealityWidget.tsx:67", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/insights/widgets/TargetingVsRealityWidget.tsx:67"}, "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-d3163524f0496cf5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruiterLeaderboardWidget.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruiterLeaderboardWidget.tsx:53"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a69b3224afbc99ec", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignFunnelWidget.tsx:109", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignFunnelWidget.tsx:109"}, "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-6feb36246130705c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscQueriesWidget.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscQueriesWidget.tsx:50"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be23cf02b0dcd96d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecentActivityWidget.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecentActivityWidget.tsx:63"}, "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-71f4b068ae7e876e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/HieHeatmapWidget.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/HieHeatmapWidget.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-1a42d8305ed8ec00", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PaidCampaignDetailWidget.tsx:76", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PaidCampaignDetailWidget.tsx:76"}, "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-6f32589a3b935398", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruitmentAttributionWidget.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruitmentAttributionWidget.tsx:68"}, "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-4f8a77d560de678f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CreativeGalleryWidget.tsx:134", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CreativeGalleryWidget.tsx:134"}, "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-bffdef326f2b981f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/CampaignTable.tsx:188", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/CampaignTable.tsx:188"}, "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-c069fe76f8794ba5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/EmailPerformancePanel.tsx:430", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/EmailPerformancePanel.tsx:430"}, "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-6dbc9a4a72c0fc78", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/content-intel/ContentCard.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/content-intel/ContentCard.tsx:44"}, "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-e4f52dbddb17a5f0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/insights/content-intel/ContentBrief.tsx:64", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/insights/content-intel/ContentBrief.tsx:64"}, "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-ad1ed9cf70b85267", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/command-center/ProjectTable.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/command-center/ProjectTable.tsx:186"}, "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-e0a5825356404d5d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/AssetBrowser.tsx:207", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/AssetBrowser.tsx:207"}, "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-e1d19da1f590255f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/UploadZone.tsx:217", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/UploadZone.tsx:217"}, "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-8e8f3efdb284cb2a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/DesignerPreviewPanel.tsx:294", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/DesignerPreviewPanel.tsx:294"}, "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-1a6cf5549951bad8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/FormatCard.tsx:261", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/FormatCard.tsx:261"}, "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-8a26e1f56b28bc95", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/AssetLightbox.tsx:484", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/AssetLightbox.tsx:484"}, "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-c26f973461a0e2f9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/VersionGroup.tsx:295", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/VersionGroup.tsx:295"}, "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-bcaea5da933f1f91", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/edit/QuickEditor.tsx:424", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/edit/QuickEditor.tsx:424"}, "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-69bc43c2e43cfc27", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/PushToFigmaButton.tsx:86", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/PushToFigmaButton.tsx:86"}, "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-4c14550012946429", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaConnectModal.tsx:135", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaConnectModal.tsx:135"}, "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-ece7793f695b77a7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaExportButton.tsx:72", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaExportButton.tsx:72"}, "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-0d94fdb4b027f305", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaSyncStatus.tsx:97", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaSyncStatus.tsx:97"}, "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-347a956c48f9ae24", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/recruiter/SearchableDropdown.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/recruiter/SearchableDropdown.tsx:116"}, "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-1ee15f5b99c71087", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/blog/[slug]/page.tsx:176", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/blog/[slug]/page.tsx:176"}, "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-552b3bc6c0ef17d1", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/paste/route.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/paste/route.ts:11"}, "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-16204fbad1dc082c", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/rfp/route.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/rfp/route.ts:118"}, "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-4d6ef38ad1a2c1ca", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/setup/route.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/setup/route.ts:16"}, "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-9fedec457839d56f", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/figma/sync/[requestId]/route.ts:357", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/figma/sync/[requestId]/route.ts:357"}, "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-e3de8eabdf49d700", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/export/figma-package/[requestId]/route.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/export/figma-package/[requestId]/route.ts:207"}, "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-0c65c1655524b74f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/insights/(dashboard)/InsightsDashboardList.tsx:93", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/insights/(dashboard)/InsightsDashboardList.tsx:93"}, "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-1f390baabdab1b51", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/pipeline/page.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/pipeline/page.tsx:186"}, "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-c41aa4df4f0d4f7b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/schemas/page.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/schemas/page.tsx:111"}, "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-9ee55156df6b9038", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/artifacts/page.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/artifacts/page.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-e70e7c2c6fd22864", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/admin/artifacts/page.tsx:85", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/admin/artifacts/page.tsx:85"}, "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-abce3b8d4e32fdc6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/intake/[id]/page.tsx:508", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/intake/[id]/page.tsx:508"}, "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-2e21f991394a1181", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/lib/sanitize.ts:5", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/lib/sanitize.ts:5"}, "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-ed2a3a1f8b328284", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/platforms/google-ads.ts:47", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/platforms/google-ads.ts:47"}, "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-268b046013b696d5", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/teams.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/teams.ts:15"}, "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-bb197cbb57a68083", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/outlook.ts:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/outlook.ts:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-468058dbb59c39a2", "name": "Dockerfile runs as root: worker/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: worker/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-282e0c07973c01d9", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd8477adedfb78d3", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-18.html:1265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-18.html:1265"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4835e631b40cba9", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-21.html:1439", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-21.html:1439"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-49eb66f0feee83c0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/Nova_Gantt_Chart_2026-04-23.html:1384", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/Nova_Gantt_Chart_2026-04-23.html:1384"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-000482999cf9a40e", "name": "Insecure pattern 'node_child_process' in scripts/verify-composition-engine.mjs:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verify-composition-engine.mjs:4"}, "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-72f241f04c10b33c", "name": "Insecure pattern 'direct_innerhtml_assignment' in figma-plugin-nova/ui.html:517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in figma-plugin-nova/ui.html:517"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e2bd4b31b8ce0d5", "name": "Insecure pattern 'local_storage_auth_token' in figma-plugin-nova/ui.html:490", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in figma-plugin-nova/ui.html:490"}, "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-016c6e70d87f50f6", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/EditableField.tsx:120", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/EditableField.tsx:120"}, "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-1a918ca6c9e497ca", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/insights/content-intel/ContentBrief.tsx:64", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/insights/content-intel/ContentBrief.tsx:64"}, "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-0398f032c292ab48", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/FormatCard.tsx:261", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/FormatCard.tsx:261"}, "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-c9fa5bc72dea96e9", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/AssetLightbox.tsx:484", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/AssetLightbox.tsx:484"}, "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-b49e22843e3d49fc", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/VersionGroup.tsx:295", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/VersionGroup.tsx:295"}, "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-cc31d743e01eb51d", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/edit/QuickEditor.tsx:424", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/edit/QuickEditor.tsx:424"}, "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-2510920a74c53e77", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/PushToFigmaButton.tsx:86", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/PushToFigmaButton.tsx:86"}, "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-5e17bdbf0899eff5", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaConnectModal.tsx:135", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaConnectModal.tsx:135"}, "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-c3db83fb78663c5f", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaExportButton.tsx:72", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaExportButton.tsx:72"}, "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-837f15fa2dafe035", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaSyncStatus.tsx:97", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaSyncStatus.tsx:97"}, "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-c2aa74cf6bb20027", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/blog/[slug]/page.tsx:176", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/blog/[slug]/page.tsx:176"}, "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-e03edaf977f91d43", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/admin/artifacts/page.tsx:85", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/admin/artifacts/page.tsx:85"}, "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/login-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48389405bf475f8b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f128ae952379bc0", "name": "Very large file: worker/db_proxy.py (4809 lines)", "shortDescription": {"text": "Very large file: worker/db_proxy.py (4809 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-c572273902168bfa", "name": "Very large file: worker/tests/smoke_test.py (1309 lines)", "shortDescription": {"text": "Very large file: worker/tests/smoke_test.py (1309 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-2c4bdb5c1482a99f", "name": "Very large file: worker/scripts/sync_real_funnel.py (1464 lines)", "shortDescription": {"text": "Very large file: worker/scripts/sync_real_funnel.py (1464 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-8b64aafe670a5a8a", "name": "Very large file: worker/scripts/verify_mirrors.py (1250 lines)", "shortDescription": {"text": "Very large file: worker/scripts/verify_mirrors.py (1250 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-665e7e5e62902913", "name": "Very large file: worker/pipeline/stage4_compose_v2.py (1299 lines)", "shortDescription": {"text": "Very large file: worker/pipeline/stage4_compose_v2.py (1299 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-76645c10ba433029", "name": "Very large file: worker/prompts/recruitment_copy.py (1446 lines)", "shortDescription": {"text": "Very large file: worker/prompts/recruitment_copy.py (1446 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-5d1c50b66264a0c5", "name": "Very large file: worker/prompts/cultural_research.py (1476 lines)", "shortDescription": {"text": "Very large file: worker/prompts/cultural_research.py (1476 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-5ac402d9efd9ff1c", "name": "Very large file: src/components/BriefExecutive.tsx (1032 lines)", "shortDescription": {"text": "Very large file: src/components/BriefExecutive.tsx (1032 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-0c37b137b5530072", "name": "Very large file: src/components/insights/deep-dive/DeepDiveClient.tsx (1080 lines)", "shortDescription": {"text": "Very large file: src/components/insights/deep-dive/DeepDiveClient.tsx (1080 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-ada2c80aee6d0493", "name": "Very large file: src/components/insights/channel-intel/ChannelIntelClient.tsx (1102 lines)", "shortDescription": {"text": "Very large file: src/components/insights/channel-intel/ChannelIntelClient.tsx (1102 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-1d750a3452c1d873", "name": "Very large file: src/components/insights/client-performance/ClientPerformanceClient.tsx (1043 lines)", "shortDescription": {"text": "Very large file: src/components/insights/client-performance/ClientPerformanceClient.tsx (1043 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-728feb1f64d9fca9", "name": "Very large file: src/lib/db/schema.ts (1486 lines)", "shortDescription": {"text": "Very large file: src/lib/db/schema.ts (1486 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "97 tests / 938 src (ratio 0.10)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 648 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 231 placeholder/mock markers across 94 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b4ab71790abbd99", "name": "Agent authority lacks a verifier contract: .claude/memory/tech-decisions.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/memory/tech-decisions.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe3e4aad8bd156d8", "name": "Commented-code block (7 lines) in tests/components/insights/deep-dive/path-explorer/useFunnelGraph.test.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in tests/components/insights/deep-dive/path-explorer/useFunnelGraph.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b205aa8d6b1408d", "name": "Network/subprocess call without timeout or try/except \u2014 docs/workflow/slides/build-pptx.py:47", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/workflow/slides/build-pptx.py:47"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c92962e107697d19", "name": "Legacy-named symbol `Nova_Gantt_Integrations_v2` in docs/roadmap/generate-gantt-v2.py:5", "shortDescription": {"text": "Legacy-named symbol `Nova_Gantt_Integrations_v2` in docs/roadmap/generate-gantt-v2.py:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73fb3e866bf95eab", "name": "Legacy-named symbol `stage4_compose_v2` in scripts/verify-composition-engine.mjs:126", "shortDescription": {"text": "Legacy-named symbol `stage4_compose_v2` in scripts/verify-composition-engine.mjs:126"}, "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-6e6a850725968f5a", "name": "Commented-code block (5 lines) in scripts/seed_project_aliases.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_project_aliases.py:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-707474a8eb710602", "name": "Commented-code block (5 lines) in scripts/seed_all_ga4_funnels.py:110", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed_all_ga4_funnels.py:110"}, "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-f89a7ee655ae9ba9", "name": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_creatives` \u2014 worker/backfill_creatives.py:203", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_creatives` \u2014 worker/backfill_creatives.py:203"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6973453feab27104", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/generate_sibling_images.js:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/generate_sibling_images.js:58"}, "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-9240dcd279597708", "name": "Legacy-named symbol `generate_copy` in worker/run_emily_ugc_video.py:22", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/run_emily_ugc_video.py:22"}, "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-9d7e00e3a648e406", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/swap_sibling_images.js:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/swap_sibling_images.js: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-582e7d678da1ba83", "name": "Blocking `time.sleep(...)` inside `async def backfill_meta` \u2014 worker/backfill_historical.py:173", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_meta` \u2014 worker/backfill_historical.py:173"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c22fddbf30fc746f", "name": "Blocking `time.sleep(...)` inside `async def backfill_reddit` \u2014 worker/backfill_historical.py:338", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_reddit` \u2014 worker/backfill_historical.py:338"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-902710f6e6aa1640", "name": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:428", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:428"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dba1a02c00606870", "name": "Blocking `time.sleep(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:480", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:480"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d418db5982792b3d", "name": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:536", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:536"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-087ca41f77376f30", "name": "Blocking `time.sleep(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:581", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:581"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e2eecd57098b7b6", "name": "Blocking `time.sleep(...)` inside `async def backfill_meta_organic` \u2014 worker/backfill_historical.py:651", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_meta_organic` \u2014 worker/backfill_historical.py:651"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db93b3d43dfa241b", "name": "Legacy-named symbol `generate_copy` in worker/run_camila_video.py:24", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/run_camila_video.py:24"}, "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-9de81317da136b6c", "name": "Legacy-named symbol `rewrite_copy` in worker/duplicate_humus_page.py:41", "shortDescription": {"text": "Legacy-named symbol `rewrite_copy` in worker/duplicate_humus_page.py:41"}, "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-714afe4f6814eac4", "name": "Commented-code block (6 lines) in worker/db_proxy.py:92", "shortDescription": {"text": "Commented-code block (6 lines) in worker/db_proxy.py:92"}, "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-18cce3d9cff0c723", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/deploy_humus_siblings.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/deploy_humus_siblings.js:43"}, "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-7e1938db03833bfd", "name": "Legacy-named symbol `update_centaurus_copy` in worker/update_centaurus_copy.py:7", "shortDescription": {"text": "Legacy-named symbol `update_centaurus_copy` in worker/update_centaurus_copy.py:7"}, "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-ff530a0fa734f6fd", "name": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:134", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:134"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce76bf23aa0e6dce", "name": "Blocking `time.sleep(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:190", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:190"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06029745fac75e49", "name": "Network/subprocess call without timeout or try/except \u2014 worker/sandbox_compositor.py:275", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 worker/sandbox_compositor.py:275"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-294e0549fe036ee3", "name": "Commented-code block (5 lines) in worker/platforms/meta_organic.py:21", "shortDescription": {"text": "Commented-code block (5 lines) in worker/platforms/meta_organic.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b66e2069cf33ed73", "name": "Legacy-named symbol `platform_copy` in worker/ai/creative_designer.py:36", "shortDescription": {"text": "Legacy-named symbol `platform_copy` in worker/ai/creative_designer.py:36"}, "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-a331731f961d48ba", "name": "Commented-code block (6 lines) in worker/ai/sedeo_client.py:38", "shortDescription": {"text": "Commented-code block (6 lines) in worker/ai/sedeo_client.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55b51436d7149435", "name": "Legacy-named symbol `generate_copy` in worker/ai/local_llm.py:124", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/ai/local_llm.py:124"}, "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-c1f828f00f54302c", "name": "Legacy-named symbol `xtts_v2` in worker/ai/tts_engine.py:232", "shortDescription": {"text": "Legacy-named symbol `xtts_v2` in worker/ai/tts_engine.py:232"}, "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-8580aea709225665", "name": "Legacy-named symbol `platform_copy` in worker/ai/overlay_copywriter.py:97", "shortDescription": {"text": "Legacy-named symbol `platform_copy` in worker/ai/overlay_copywriter.py:97"}, "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-e67ae436f928e5f9", "name": "Network/subprocess call without timeout or try/except \u2014 worker/ai/wav2lip.py:269", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 worker/ai/wav2lip.py:269"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53990d49e28b27b0", "name": "Legacy-named symbol `recruitment_copy` in worker/tests/smoke_test.py:498", "shortDescription": {"text": "Legacy-named symbol `recruitment_copy` in worker/tests/smoke_test.py:498"}, "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-d7f3d0eed1bf2843", "name": "Legacy-named symbol `_make_copy` in worker/tests/test_stage4_v3.py:227", "shortDescription": {"text": "Legacy-named symbol `_make_copy` in worker/tests/test_stage4_v3.py:227"}, "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-11d07cae27e99e07", "name": "Commented-code block (7 lines) in worker/scripts/sync_real_funnel.py:62", "shortDescription": {"text": "Commented-code block (7 lines) in worker/scripts/sync_real_funnel.py: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-a5d510f5bb654a62", "name": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails_bulk.py:78", "shortDescription": {"text": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails_bulk.py:78"}, "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-e3c930caf5a6be7d", "name": "Commented-code block (5 lines) in worker/scripts/backfill_ga4_event_user_grain.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in worker/scripts/backfill_ga4_event_user_grain.py:72"}, "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-e08a2ecf1208280a", "name": "Commented-code block (5 lines) in worker/scripts/sync_ga4_mp_outbox.py:239", "shortDescription": {"text": "Commented-code block (5 lines) in worker/scripts/sync_ga4_mp_outbox.py:239"}, "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-67d32e6a538ff82d", "name": "Commented-code block (7 lines) in worker/scripts/sync_platform_outcomes.py:221", "shortDescription": {"text": "Commented-code block (7 lines) in worker/scripts/sync_platform_outcomes.py:221"}, "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-2aafb2f3f4a63e3d", "name": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails.py:97", "shortDescription": {"text": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails.py:97"}, "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-60e4d95687fb1a18", "name": "Commented-code block (6 lines) in worker/scripts/cron_sync_all.py:82", "shortDescription": {"text": "Commented-code block (6 lines) in worker/scripts/cron_sync_all.py:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bd1c0b4e519e01d", "name": "Commented-code block (7 lines) in worker/scripts/sync_funnel_paths.py:222", "shortDescription": {"text": "Commented-code block (7 lines) in worker/scripts/sync_funnel_paths.py:222"}, "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-ee255b221d9807fc", "name": "Commented-code block (5 lines) in worker/scripts/verify_mirrors.py:797", "shortDescription": {"text": "Commented-code block (5 lines) in worker/scripts/verify_mirrors.py:797"}, "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-de72d7d4945384aa", "name": "Commented-code block (6 lines) in worker/scripts/seed_brevo_rich.py:175", "shortDescription": {"text": "Commented-code block (6 lines) in worker/scripts/seed_brevo_rich.py:175"}, "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-ee2c7fe52b1967f5", "name": "Legacy-named symbol `meta_ads_cache_uq_v2` in worker/scripts/sync_meta_ads.py:147", "shortDescription": {"text": "Legacy-named symbol `meta_ads_cache_uq_v2` in worker/scripts/sync_meta_ads.py:147"}, "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-f6bf839696907f22", "name": "Commented-code block (5 lines) in worker/scripts/sync_meta_ads.py:318", "shortDescription": {"text": "Commented-code block (5 lines) in worker/scripts/sync_meta_ads.py:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5532260764fc9db6", "name": "Legacy-named symbol `country_v2` in worker/scripts/test_attribution_chain.py:97", "shortDescription": {"text": "Legacy-named symbol `country_v2` in worker/scripts/test_attribution_chain.py:97"}, "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-ef79ec71b29f4a3d", "name": "Stub function `detect_lang` (body is just `pass`/`return`) \u2014 worker/scripts/sync_x_followers.py:34", "shortDescription": {"text": "Stub function `detect_lang` (body is just `pass`/`return`) \u2014 worker/scripts/sync_x_followers.py:34"}, "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-a2912dbf60d12a17", "name": "Legacy-named symbol `country_v2` in worker/scripts/sync_identity_stitch_brevo.py:159", "shortDescription": {"text": "Legacy-named symbol `country_v2` in worker/scripts/sync_identity_stitch_brevo.py:159"}, "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-e5e5050e9a47ea2c", "name": "Commented-code block (6 lines) in worker/scripts/sync_identity_stitch_brevo.py:175", "shortDescription": {"text": "Commented-code block (6 lines) in worker/scripts/sync_identity_stitch_brevo.py:175"}, "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-d7ec9b35ed7ecfd2", "name": "Legacy-named symbol `generated_copy` in worker/templates/lp_renderer.py:72", "shortDescription": {"text": "Legacy-named symbol `generated_copy` in worker/templates/lp_renderer.py:72"}, "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-c086be586ef27ce5", "name": "Commented-code block (5 lines) in worker/templates/lp_renderer.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in worker/templates/lp_renderer.py:22"}, "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-d2d4c5444001818f", "name": "Legacy-named symbol `platform_copy` in worker/pipeline/stage4_carousel.py:261", "shortDescription": {"text": "Legacy-named symbol `platform_copy` in worker/pipeline/stage4_carousel.py:261"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ccf0360bd87b8f7", "name": "Legacy-named symbol `all_copy` in worker/pipeline/stage4_material_generator.py:58", "shortDescription": {"text": "Legacy-named symbol `all_copy` in worker/pipeline/stage4_material_generator.py:58"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-045dfb521e37a6f6", "name": "Legacy-named symbol `generate_copy` in worker/pipeline/stage_video.py:24", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage_video.py:24"}, "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-9b6c27616cec388e", "name": "Legacy-named symbol `generate_copy` in worker/pipeline/stage4_organic_carousel.py:20", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage4_organic_carousel.py:20"}, "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-a4d2b773012d3399", "name": "Legacy-named symbol `job_description_copy` in worker/pipeline/wp_job_publisher.py:22", "shortDescription": {"text": "Legacy-named symbol `job_description_copy` in worker/pipeline/wp_job_publisher.py:22"}, "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-70d1bc72e647a36a", "name": "Commented-code block (6 lines) in worker/pipeline/wp_job_publisher.py:238", "shortDescription": {"text": "Commented-code block (6 lines) in worker/pipeline/wp_job_publisher.py:238"}, "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-aad6d4616067c66b", "name": "Legacy-named symbol `job_portal_copy` in worker/pipeline/stage3_organic_copy.py:5", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in worker/pipeline/stage3_organic_copy.py:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f87a55cd6e945e0", "name": "Legacy-named symbol `generate_copy` in worker/pipeline/stage6_landing_pages.py:26", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage6_landing_pages.py:26"}, "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-af8d2386a5dbf443", "name": "Legacy-named symbol `stage3_copy` in worker/pipeline/orchestrator.py:16", "shortDescription": {"text": "Legacy-named symbol `stage3_copy` in worker/pipeline/orchestrator.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-1e5d597951a8cb35", "name": "Legacy-named symbol `generate_copy` in worker/pipeline/stage3_copy.py:17", "shortDescription": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage3_copy.py:17"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-225982ddc93cf87d", "name": "Legacy-named symbol `country_v2` in worker/pipeline/hash_join.py:10", "shortDescription": {"text": "Legacy-named symbol `country_v2` in worker/pipeline/hash_join.py:10"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-862edefaf3baabbc", "name": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose_v2.py:94", "shortDescription": {"text": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose_v2.py:94"}, "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-be230e26b56484dd", "name": "Stub function `_noop` (body is just `pass`/`return`) \u2014 worker/pipeline/stage4_compose_v2.py:443", "shortDescription": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 worker/pipeline/stage4_compose_v2.py:443"}, "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-dac483ad366451f9", "name": "Legacy-named symbol `_handle_copy` in worker/pipeline/handle_regenerate_asset.py:50", "shortDescription": {"text": "Legacy-named symbol `_handle_copy` in worker/pipeline/handle_regenerate_asset.py:50"}, "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-3bae698f40ee2387", "name": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose.py:86", "shortDescription": {"text": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose.py:86"}, "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-dc34f3f353d10b99", "name": "Commented-code block (5 lines) in worker/pipeline/stage4_compose.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in worker/pipeline/stage4_compose.py:104"}, "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-75e68c667878583c", "name": "Commented-code block (7 lines) in worker/pipeline/stage_organic_sync.py:145", "shortDescription": {"text": "Commented-code block (7 lines) in worker/pipeline/stage_organic_sync.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55e956953f14a936", "name": "Legacy-named symbol `generate_graphic_copy` in worker/pipeline/stage4_graphic_copy.py:52", "shortDescription": {"text": "Legacy-named symbol `generate_graphic_copy` in worker/pipeline/stage4_graphic_copy.py:52"}, "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-546df0ff96a983c2", "name": "Legacy-named symbol `flyer_copy` in worker/pipeline/_archived/stage4_organic_compose.py:59", "shortDescription": {"text": "Legacy-named symbol `flyer_copy` in worker/pipeline/_archived/stage4_organic_compose.py:59"}, "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-9cdc70470b0adf06", "name": "Legacy-named symbol `_extract_best_copy` in worker/pipeline/_archived/stage4_reference_layout.py:60", "shortDescription": {"text": "Legacy-named symbol `_extract_best_copy` in worker/pipeline/_archived/stage4_reference_layout.py:60"}, "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-f40a1b425380d5e2", "name": "Legacy-named symbol `stage4_graphic_copy` in worker/pipeline/_archived/stage4_compose_v3.py:50", "shortDescription": {"text": "Legacy-named symbol `stage4_graphic_copy` in worker/pipeline/_archived/stage4_compose_v3.py:50"}, "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-a17584259cd54577", "name": "Commented-code block (5 lines) in worker/prompts/html_reference_templates.py:339", "shortDescription": {"text": "Commented-code block (5 lines) in worker/prompts/html_reference_templates.py:339"}, "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-96ea3a6766c3f764", "name": "Commented-code block (8 lines) in worker/prompts/recruitment_copy.py:251", "shortDescription": {"text": "Commented-code block (8 lines) in worker/prompts/recruitment_copy.py:251"}, "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-5ff7d671a8efaccd", "name": "Legacy-named symbol `stage3_copy` in worker/prompts/project_context.py:53", "shortDescription": {"text": "Legacy-named symbol `stage3_copy` in worker/prompts/project_context.py:53"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e483eaa7e44cd9bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/EditorClient.tsx:121", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/EditorClient.tsx:121"}, "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-0d35ee37726096e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/CanvasEditorClient.tsx:156", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/CanvasEditorClient.tsx:156"}, "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-5addfc19e1eb524b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardNav.tsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardNav.tsx:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce85b1b7e5644cb1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardAiChat.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardAiChat.tsx:63"}, "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-14798d4741be7f8e", "name": "Commented-code block (6 lines) in src/components/insights/project-report/ProjectReportClient.tsx:119", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/insights/project-report/ProjectReportClient.tsx:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5375790e384afdc0", "name": "Commented-code block (5 lines) in src/components/insights/deep-dive/SourceAttribution.tsx:86", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/SourceAttribution.tsx:86"}, "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-f8aa81bb5e5a512b", "name": "Commented-code block (5 lines) in src/components/insights/deep-dive/DeepDiveClient.tsx:192", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/DeepDiveClient.tsx:192"}, "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-cb6f9735d1ad847b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:205", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:205"}, "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-cb19d72620602942", "name": "Commented-code block (5 lines) in src/components/insights/deep-dive/path-explorer/layout.ts:147", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/path-explorer/layout.ts:147"}, "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-47f9527ab8bb2ca2", "name": "Commented-code block (7 lines) in src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:128", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb1421314bdc769f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:121", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:121"}, "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-332c1d1c22eeeddf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbf484abe175abfb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/channel-intel/ChannelIntelClient.tsx:143", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/channel-intel/ChannelIntelClient.tsx:143"}, "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-e61960d4e83fea14", "name": "Commented-code block (7 lines) in src/components/insights/post-apply/PostApplyPanel.tsx:158", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/insights/post-apply/PostApplyPanel.tsx:158"}, "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-373793d4337ee055", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ContentIntelClient.tsx:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ContentIntelClient.tsx:80"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-daf1e244b7cd9d8c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/RecentlyTaggedPanel.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/RecentlyTaggedPanel.tsx:21"}, "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-37d6c6997a5be4b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ChannelSections.tsx:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ChannelSections.tsx:22"}, "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-63fcb1cfa3c0da25", "name": "Legacy-named symbol `job_portal_copy` in src/components/campaign/OrganicMaterials.tsx:34", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/campaign/OrganicMaterials.tsx:34"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-148a6fe368fd3e1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/campaign/EditMode.tsx:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/campaign/EditMode.tsx:73"}, "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-b3b538c8be9a8b19", "name": "Legacy-named symbol `job_portal_copy` in src/components/marketing/ApproveTab.tsx:50", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/ApproveTab.tsx:50"}, "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-022b8f2610172a2e", "name": "Legacy-named symbol `job_portal_copy` in src/components/marketing/CopyChannelsTab.tsx:94", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/CopyChannelsTab.tsx:94"}, "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-0587d8455cc8d0b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/marketing/CopyChannelsTab.tsx:271", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/marketing/CopyChannelsTab.tsx:271"}, "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-32ba5949236080fb", "name": "Legacy-named symbol `job_portal_copy` in src/components/marketing/MarketingCommandCenter.tsx:27", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/MarketingCommandCenter.tsx:27"}, "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-0e6cb921df3f5109", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/intake/IntakeWizard.tsx:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/intake/IntakeWizard.tsx:140"}, "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-132c232d29c55924", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/SeedreamEditor.tsx:169", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/SeedreamEditor.tsx:169"}, "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-7202243f7d7a2c21", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/dashboard/DesignerDashboard.tsx:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/dashboard/DesignerDashboard.tsx:47"}, "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-9afd897d5c45f385", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/gallery/DesignerGalleryPanel.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/gallery/DesignerGalleryPanel.tsx:45"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0222d1c5c1d7de69", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/QuickEditor.tsx:136", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/QuickEditor.tsx:136"}, "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-7f07c8e1601537e3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/RegenerateModal.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/RegenerateModal.tsx:92"}, "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-bb1e9a07f0091afd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/figma/ManualUpload.tsx:209", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/figma/ManualUpload.tsx:209"}, "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-424c7fb4c931c096", "name": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/CopyLibrary.tsx:138", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/CopyLibrary.tsx:138"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e07fabe3f532a9c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/CopyLibrary.tsx:315", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/CopyLibrary.tsx:315"}, "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-076220490d04c1f3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/PaidMediaModal.tsx:93", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/PaidMediaModal.tsx:93"}, "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-3b1001749bda6933", "name": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/ChannelStrategy.tsx:35", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/ChannelStrategy.tsx:35"}, "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-93daa28e99ba4e1f", "name": "Legacy-named symbol `flyer_copy` in src/components/recruiter/RequestAssetsModal.tsx:47", "shortDescription": {"text": "Legacy-named symbol `flyer_copy` in src/components/recruiter/RequestAssetsModal.tsx:47"}, "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-a84ea83b09d9d6eb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auth/linkedin/callback/route.ts:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auth/linkedin/callback/route.ts:24"}, "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-0ad2a69e5c3b055c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/keywords/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/keywords/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59dad938ba4422fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/pages/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/pages/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-26baf43e1712a501", "name": "Commented-code block (5 lines) in src/app/api/projects/[id]/post-apply-funnel/route.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/projects/[id]/post-apply-funnel/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31cddacac90b0263", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-funnel/route.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-funnel/route.ts:22"}, "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-0bc844176c578d68", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/subprojects/route.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/subprojects/route.ts:37"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e987bd8d844acb6", "name": "Commented-code block (6 lines) in src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d320bb6092f3132", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85f7ab09e7b7203c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/demographic-fill/route.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/demographic-fill/route.ts:21"}, "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-d8c338cd4569e885", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/locales/route.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/locales/route.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cae1cfe93feca7e9", "name": "Commented-code block (5 lines) in src/app/api/projects/[id]/funnel-path/route.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/projects/[id]/funnel-path/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e5ce8af7c08060e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/funnel-path/route.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/funnel-path/route.ts:22"}, "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-eca7e0e9c47301d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/cities/route.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/cities/route.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6066e38740834b3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-by-day/route.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-by-day/route.ts:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f5e530871364f6e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/ga4-funnel/route.ts:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/ga4-funnel/route.ts:14"}, "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-0e6327f47b297836", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/path/route.ts:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/path/route.ts:16"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-078f116859994864", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-path/route.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-path/route.ts:21"}, "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-6053c9d45a2a6dfe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/countries/route.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/countries/route.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-562455fa2f902eba", "name": "Commented-code block (5 lines) in src/app/api/content-hub/chat/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/content-hub/chat/route.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-037d5f5d77669662", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/chat/route.ts:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/chat/route.ts:73"}, "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-529703e1a7392b38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/llm/stream/route.ts:169", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/llm/stream/route.ts:169"}, "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-402d119e3158badc", "name": "Commented-code block (5 lines) in src/app/api/insights/__tests__/pressure-tests.test.ts:260", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/insights/__tests__/pressure-tests.test.ts:260"}, "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-a29b638346ff411d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/city-breakdown/route.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/city-breakdown/route.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0420838825e43ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/utm-content/route.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/utm-content/route.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed72d60efd74c5be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/funnel/route.ts:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/funnel/route.ts:16"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d56a18887cd2dd1", "name": "Commented-code block (7 lines) in src/app/api/insights/hash-attribution/user-drilldown/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/insights/hash-attribution/user-drilldown/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6715db4b5405aac0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/user-drilldown/route.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/user-drilldown/route.ts:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a54897739f17e719", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/chat/route.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/chat/route.ts:78"}, "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-cc9fdc27d26cd2f9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/ads/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/ads/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3048f154994394fe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/organic-posts/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/organic-posts/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db2cbaba9051b3c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/social/followers/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/social/followers/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c471683c2f8667d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/extract/rfp/route.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/extract/rfp/route.ts:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a4e8b2fd7547e71", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/cron/sync-projects/route.ts:233", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/cron/sync-projects/route.ts:233"}, "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-11d2009ee0cee92a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/channel-summary/route.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/channel-summary/route.ts:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b22e2b6bb0f1572", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/insights/route.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/insights/route.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13cfe6495ace21e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/feed/route.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/feed/route.ts:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5865f31bedaa31f8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/tag/route.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/tag/route.ts:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df233df64350de16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/revise/route.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/revise/route.ts:63"}, "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-72bee8e22f19ce4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/ga4/landing-pages/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/ga4/landing-pages/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c29a84c3aaa190e", "name": "Commented-code block (6 lines) in src/app/api/figma/__tests__/flow.test.ts:258", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/api/figma/__tests__/flow.test.ts:258"}, "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-400821fcdeaf3dfb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/countries/route.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/countries/route.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-441c13ef331194e8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/insights/public/[token]/page.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/insights/public/[token]/page.tsx:21"}, "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-4be8139d1f4efb06", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/artifacts/page.tsx:229", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/artifacts/page.tsx:229"}, "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-00a03bb281fb88ff", "name": "Legacy-named symbol `job_portal_copy` in src/app/intake/[id]/page.tsx:379", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/app/intake/[id]/page.tsx:379"}, "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-b4aa064485fa64da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/intake/[id]/page.tsx:966", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/intake/[id]/page.tsx:966"}, "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-7cba72deef440a92", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/lp/[slug]/route.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/lp/[slug]/route.ts:63"}, "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-368fbce17055a0b4", "name": "Legacy-named symbol `job_portal_copy` in src/app/recruiter/page.tsx:46", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/app/recruiter/page.tsx:46"}, "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-c0ec99b2c26ee024", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/edit-executor.ts:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/edit-executor.ts:52"}, "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-484ecfef050a88a5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/azure-auth.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/azure-auth.ts:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7665ef750033e67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/openrouter.ts:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/openrouter.ts:2"}, "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-8e1762abf8c514c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/nim.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/nim.ts:69"}, "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-86e6396aa4145637", "name": "Commented-code block (5 lines) in src/lib/azure-blob.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/azure-blob.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-5567364fc04fc9a5", "name": "Legacy-named symbol `job_portal_copy` in src/lib/types.ts:215", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/lib/types.ts:215"}, "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-5970e4bfb088b925", "name": "Commented-code block (5 lines) in src/lib/__tests__/figma-helpers.test.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/__tests__/figma-helpers.test.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec9a0c3c72980aa8", "name": "Commented-code block (5 lines) in src/lib/__tests__/figma-roundtrip.test.ts:171", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/__tests__/figma-roundtrip.test.ts:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a2dd0b1e3c7a8ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/platforms/meta-ads.ts:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/platforms/meta-ads.ts:58"}, "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-46c27d5212e01d1f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/notifications/slack.ts:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/notifications/slack.ts:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97b48e2794a489b7", "name": "Legacy-named symbol `generate_oneforma_playbook_v2` in src/lib/content/brand-bible.ts:2", "shortDescription": {"text": "Legacy-named symbol `generate_oneforma_playbook_v2` in src/lib/content/brand-bible.ts:2"}, "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-d086aacb2a5854cf", "name": "Commented-code block (5 lines) in src/lib/content/brand-bible.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/content/brand-bible.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-dd19f983b412fc1b", "name": "Commented-code block (8 lines) in src/lib/content/image.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/content/image.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-d3d592abab31e98b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/image.ts:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/image.ts:107"}, "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-0682c7b448d55c41", "name": "Commented-code block (5 lines) in src/lib/content/seo-client.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/content/seo-client.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea35eb94de62a7ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-client.ts:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-client.ts:108"}, "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-bdec2928116cbd84", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/swarm.ts:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/swarm.ts:122"}, "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-df44fba5773540cf", "name": "Commented-code block (9 lines) in src/lib/content/seo-planner.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/content/seo-planner.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-a937f6308fc88c4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-planner.ts:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-planner.ts:119"}, "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-ea27fa614ad0da56", "name": "Commented-code block (12 lines) in src/lib/content/llm.ts:460", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/content/llm.ts:460"}, "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-0cd3a899b401d386", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/llm.ts:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/llm.ts:191"}, "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-45bb829acbbf9643", "name": "Commented-code block (5 lines) in src/lib/content/publish/index.ts:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/content/publish/index.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-cc52f2e388826bae", "name": "Commented-code block (5 lines) in src/lib/content/research/fetcher.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/content/research/fetcher.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-b3085bfcf3446f17", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/summarizer.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/summarizer.ts:69"}, "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-5857c52b4a47f2bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/search.ts:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/search.ts:49"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-504681c56f76c1c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/pipeline.ts:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/pipeline.ts:3"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-caded4ebb79e68e9", "name": "Commented-code block (6 lines) in src/lib/content/skills/index.ts:81", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/content/skills/index.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7746a86f69c01fce", "name": "Legacy-named symbol `job_portal_copy` in src/lib/db/schema.ts:228", "shortDescription": {"text": "Legacy-named symbol `job_portal_copy` in src/lib/db/schema.ts:228"}, "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-0170d0d9dc6c5bef", "name": "123 env vars used in code but missing from .env.example", "shortDescription": {"text": "123 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AAPANEL_API_KEY`, `AAPANEL_URL`, `AES_IV`, `AES_KEY`, `ATLASCLOUD_API_KEY`, `AZURE_DATABASE_URL`, `AZURE_STORAGE_CONNECTION_STRING`, `AZURE_STORAGE_CONTAINER` + 115 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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:\ndocs/roadmap/generate-gantt-v2.py:style_cell, docs/roadmap/nova-rollout-timeline-v0.py:style_cell\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nworker/scripts/sync_real_funnel.py:main, worker/scripts/sync_city_performance.py:main, worker/scripts/fix_funnel_types.py:main, worker/scripts/sync_organic_landing_pages.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nworker/compositor/schema.py:from_dict, worker/compositor/schema.py:from_dict, worker/compositor/schema.py:from_dict, worker/compositor/schema.py:from_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe1d9311d6aee734", "name": "Near-duplicate function bodies in 12 places", "shortDescription": {"text": "Near-duplicate function bodies in 12 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nworker/compositor/layouts/grow_diagonal_split.py:render, worker/compositor/layouts/shape_multi_grid.py:render, worker/compositor/layouts/earn_hero_badge.py:render, worker/compositor/layouts/grow_bold_type.py:render\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/20361"}, "properties": {"repository": "Steviewonders99/OneTake", "repoUrl": "https://github.com/Steviewonders99/OneTake", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395211, "scanner": "foundry_dataset", "fingerprint": "0bc1817c576efc3811a146ec7909c78880964004ea1dea47e03e37b6666f591d", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_or_ci": 1, "docs_or_claims": 1, "schema_or_data": 1, "source_or_other": 6, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 51, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 9, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 9, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 9, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#7", "issue_number": "7", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d130f07d217536ef", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 4, "docs_or_claims": 4, "schema_or_data": 4, "source_or_other": 24}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#7\nRepo: Steviewonders99/OneTake\nIssue/PR number: 7\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 51\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 9, 'comment_chain_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 6, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'schema_or_data': 1, 'test_or_ci': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-a07e3637baa2ca18", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395210, "scanner": "foundry_dataset", "fingerprint": "cbdd7fa054753468bcbb9bd7c9228c770d533d69b0acbe7684f16af8a2f75469", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "schema_or_data": 1, "source_or_other": 3, "partial blueprint fit": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#6", "issue_number": "6", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-09bed9a189a96c52", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 4, "schema_or_data": 4, "source_or_other": 12}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_high_confidence_link\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#6\nRepo: Steviewonders99/OneTake\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 39\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'source_or_other': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'schema_or_data': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-18182033a1b6ea3e", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395209, "scanner": "foundry_dataset", "fingerprint": "e8638f68dcefebbf1e8508eef3c95a615760bfd642ae67e142a10c4a70946aaa", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_or_ci": 14, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 5, "schema_or_data": 2, "ui_or_frontend": 43, "source_or_other": 7, "dependency_or_build": 2, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 122, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 74, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 94, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 74, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#2", "issue_number": "2", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ca40cdff69013afd", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 56, "api_or_backend": 4, "docs_or_claims": 20, "schema_or_data": 8, "ui_or_frontend": 172, "source_or_other": 28, "dependency_or_build": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#2\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#2\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#2\nRepo: Steviewonders99/OneTake\nIssue/PR number: 2\nGraph consistency label: supported_by_verification_signal\nNodes: 94\nEdges: 122\nNode types: {'pr_file': 74, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 74, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 43, 'test_or_ci': 14, 'source_or_other': 7, 'docs_or_claims': 5, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'schema_or_data': 2, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-addadbd3bd9860ca", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395208, "scanner": "foundry_dataset", "fingerprint": "3c1310d05cc6debee969609d2c47bd485241a7734f6fbb1ed4d23271f546dec0", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "test_ci_gap": 1, "docs_or_claims": 2, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#19", "issue_number": "19", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-4608bdcb29ab20c7", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 8, "source_or_other": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#19\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#19\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#19\nRepo: Steviewonders99/OneTake\nIssue/PR number: 19\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 33\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 3, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-76db2d76a6b0ac46", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395207, "scanner": "foundry_dataset", "fingerprint": "913db8ff64a57f5624e31e5015cfa8314ff833e1b34bb563a75aa4e5fb1e2a06", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "commit_general": 1, "source_or_other": 10, "generated_provenance": 1, "partial blueprint fit": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 10, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 10, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 30, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 10, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#17", "issue_number": "17", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-15092de05c77945d", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 40}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#17\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#17\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#17\nRepo: Steviewonders99/OneTake\nIssue/PR number: 17\nGraph consistency label: supported_by_verification_signal\nNodes: 30\nEdges: 54\nNode types: {'pr_file': 10, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 10, 'comment_chain_touches_file': 10, 'issue_chain_touches_file': 10, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 10, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'generated_provenance': 1, 'commit_general': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-c609691245c2e0fd", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395206, "scanner": "foundry_dataset", "fingerprint": "3fb06581d6e8672c0ff3ad3437bb71e9283f5c9a18cd7d898b9fd8e954f2f13b", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "commit_general": 1, "docs_or_claims": 2, "schema_or_data": 1, "source_or_other": 4, "generated_provenance": 1, "partial blueprint fit": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 45, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 7, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 27, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 7, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#15", "issue_number": "15", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5abaf77b19d5d794", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 8, "schema_or_data": 4, "source_or_other": 16}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#15\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#15\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#15\nRepo: Steviewonders99/OneTake\nIssue/PR number: 15\nGraph consistency label: supported_by_verification_signal\nNodes: 27\nEdges: 45\nNode types: {'pr_file': 7, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 7, 'comment_chain_touches_file': 7, 'issue_chain_touches_file': 7, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 4, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'schema_or_data': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'commit_general': 1, 'generated_provenance': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-ec50eaa12ef91634", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395205, "scanner": "foundry_dataset", "fingerprint": "14b2a14548d76c0f1f30bdf53bfc4a01d6afe51cfa315705efabb2307432fdcd", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "docs_or_claims": 1, "ui_or_frontend": 2, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#14", "issue_number": "14", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5cb4fdabfea5e64b", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 4, "ui_or_frontend": 8, "source_or_other": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#14\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#14\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#14\nRepo: Steviewonders99/OneTake\nIssue/PR number: 14\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 36\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 4, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'issue_chain_touches_file': 4, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'docs_or_claims': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-f5629d76a7f90b28", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395204, "scanner": "foundry_dataset", "fingerprint": "518400cff98f06fc0a9516cf4bde4134a6355f0ca8bff25e9e05787c9d414161", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "ui_or_frontend": 1, "source_or_other": 2, "partial blueprint fit": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#13", "issue_number": "13", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-5e1515ff92da22ec", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4, "source_or_other": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#13\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#13\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#13\nRepo: Steviewonders99/OneTake\nIssue/PR number: 13\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 33\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 3, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'source_or_other': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-7595a9fb9ad14434", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395203, "scanner": "foundry_dataset", "fingerprint": "a44272da5500cb14bbadeed1f4c22cd8672a5acb41bc30d8722d252b72cd8e25", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "ui_workflow": 1, "api_or_backend": 1, "ui_or_frontend": 3, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#11", "issue_number": "11", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-6fc073bec575ba90", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#11\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#11\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#11\nRepo: Steviewonders99/OneTake\nIssue/PR number: 11\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 39\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ui_or_frontend': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'ui_workflow': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-1c7014a9fb0c01ce", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: Steviewonders99/OneTake"}, "properties": {"repobilityId": 395202, "scanner": "foundry_dataset", "fingerprint": "2afb3ac88d75312c301b9100483c907f65c0fcbdc7b9b0f0704db8a54f688751", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 5, "test_or_ci": 11, "test_ci_gap": 1, "api_or_backend": 8, "docs_or_claims": 3, "schema_or_data": 3, "ui_or_frontend": 7, "source_or_other": 5, "mock_placeholder": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 107, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 37, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 6, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 64, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "pr_file": 37, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 2, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#1", "issue_number": "1", "quality_tiers": {"assumption_check": 2, "weak_supervision": 4}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-43295237867deff8", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 55, "api_or_backend": 40, "docs_or_claims": 15, "schema_or_data": 15, "ui_or_frontend": 35, "source_or_other": 25}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#1\nRepo: Steviewonders99/OneTake\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 64\nEdges: 107\nNode types: {'pr_file': 37, 'commit': 9, 'link_quality': 6, 'comment': 2, 'comment_chain': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 37, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'api_or_backend': 8, 'ui_or_frontend': 7, 'source_or_other': 5, 'bug_fix': 5, 'verification_or_tests': 4, 'docs_or_claims': 3, 'schema_or_data': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'test_ci_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-4e1108e0172b54da", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: Steviewonders99/OneTake"}, "properties": {"repobilityId": 374333, "scanner": "foundry_dataset", "fingerprint": "4338c8ab559303b38ab98b9a7f8db581a528743d65b85b101d151f961a76235d", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "Steviewonders99/OneTake#6", "human_labels": ["schema_or_data", "source_or_other", "test_ci_gap", "test_or_ci"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.875, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-805752d09a76209d", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"docs": 6, "schemas": 1, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 5, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "schema_or_data": 1, "source_or_other": 3}, "linked_commit_count": 5, "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_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#6\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 5\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'schema_or_data': 1, 'source_or_other': 3, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4607f478e3d4e43f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/6\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/6\\nTitle: identity-stitch hardening \u2014 C1+C2+C3+H3+M4 (production-readiness audit)\\nBody:\\n## Summary\\n\\nProduction-readiness audit of the hash/join/identity_stitch layer surfaced **3 silent data-correctness bugs** that would corrupt the post-apply funnel + hash-attribution dashboards in production. This PR lands all 4 approved fixes additively (per HASH_ATTRIBUTION_SPEC \u00a70.2 R8).\\n\\nStacks on PR #4 (the post-apply + hash-attribution backend). Base = `feat/post-apply-hash-attribution`.\\n\\n## What broke (and how)\\n\\n| ID | Severity | What was wrong | Impact |\\n|---|---|---|---|\\n| C1 | CRITICAL | `sync_platform_outcomes.sync_all` had no `sync_runs` wrap | Silent failures, no Teams alert, freshness widget stayed green while identity layer rotted |\\n| C2 | CRITICAL | 90-day registration window in accounts query | Returning users registered >90d ago resolved to None \u2192 bucketed Unattributed \u2192 undercounting by tenure |\\n| C3 | CRITICAL | `DELETE FROM identity_stitch` before UPSERT | Multi-minute emptiness window for live read\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f84d091918687ce8\",\n    \"filename\": \"migrations/2026-06-09-identity-stitch-hardening.sql\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"added\",\n    \"additions\": 37,\n    \"deletions\": 0,\n    \"changes\": 37,\n    \"blob_url\": \"https://github.com/Steviewonders99/OneTake/blob/b7267b7ae489b9982b94f47b2758d64d12aa3dcf/migrations%2F2026-06-09-identity-stitch-hardening.sql\"\n  },\n  {\n    \"id\": \"github-pr-file-file-4f0a6a96cf75481d\",\n    \"filename\": \"worker/scripts/sync_ga4_event_user_grain.py\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 90,\n    \"deletions\": 30,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "comment-chain-pattern-assumption_checks-c04daa8b81d3cfff", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: Steviewonders99/OneTake"}, "properties": {"repobilityId": 374332, "scanner": "foundry_dataset", "fingerprint": "b67f7ff7d10e4ec0aab25a4f687c98934abc14b9799f419e0caa26d0f7bb5210", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "Steviewonders99/OneTake#3", "human_labels": ["docs_or_claims", "runtime_failure", "schema_or_data", "source_or_other", "test_or_ci"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-942708ec177ce1d2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"docs": 6, "schemas": 1, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 42, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "docs_or_claims": 2, "schema_or_data": 14, "source_or_other": 23}, "linked_commit_count": 5, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: assumption_checks\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#3\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#3\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 42\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'test_or_ci': 3, 'docs_or_claims': 2, 'schema_or_data': 14, 'source_or_other': 23}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e6ab4afcefab2ef8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/3\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/3\\nTitle: Data mirror bulletproof \u2014 \u00a79 cutover + dashboard truthing\\nBody:\\n## Summary\\n\\nThe DATA_MIRROR_BULLETPROOF_SPEC executed end-to-end. 29 commits covering:\\n\\n**\u00a79.1 PRE-AUTH foundation (Steps 1-15):** sync_runs + Teams alerting (R6), 7 orphan tables backported + 9 UNIQUE constraints + CI bootstrap stub (R3), `meta_dedup.py` with 21 unit tests (R2), `verify_mirrors.py` framework + per-source verifiers (R5), `check_orphan_utms.py` per \u00a70.4, `seed_project_aliases.py` with all 91 prod aliases (R4), Brevo transactional date-bounded upsert, `cron_sync_all.py` ImportError fix, partial GA4 schema extension (city + user counts), Meta `meta_ads_cache` writer + dedup propagation, Meta Organic cron wrapper, LinkedIn Recruiter ON CONFLICT + USD currency fix.\\n\\n**\u00a79.2 POST-AUTH (Steps 17-19):** LinkedIn Ads greenfield, Reddit Ads sync rebuild + NULL-conflict schema fix (18 stale rows safely backed up), X organic \u00a710.5 catch (4 cherry-picks from `feat/content-intel-spec` + spec correction + verifier on deployed s\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-a1ae345c6262a12d\",\n    \"filename\": \".github/workflows/schema-bootstrap.yml\",\n    \"label\": \"test_or_ci\",\n    \"status\": \"added\",\n    \"additions\": 117,\n    \"deletions\": 0,\n    \"changes\": 117,\n    \"blob_url\": \"https://github.com/Steviewonders99/OneTake/blob/b554ed33a96cb5dc2a030c406b30358b33a7b402/.github%2Fworkflows%2Fschema-bootstrap.yml\"\n  },\n  {\n    \"id\": \"github-pr-file-file-a8f30ab7fe44bf7c\",\n    \"filename\": \"docs/DATA_MIRROR_BULLETPROOF_SPEC.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 1636,\n    \"deletions\": 0,\n    \"change\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "comment-chain-pattern-assumption_checks-dc282074b475b74b", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416586, "scanner": "foundry_dataset", "fingerprint": "bcead7b34fc03d6172e67127a4b43f58e0c7befdff501af620cda20c15eae49e", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_or_ci": 1, "test_ci_gap": 1, "schema_or_data": 1, "source_or_other": 3, "partial blueprint fit": 1, "verification_or_tests": 5, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#6", "issue_number": "6", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-dcd2676f38e9afce", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 4, "schema_or_data": 4, "source_or_other": 12}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#6\nRepo: Steviewonders99/OneTake\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 25\nEdges: 39\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'source_or_other': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'schema_or_data': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-2fc2e77a5660368b", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416585, "scanner": "foundry_dataset", "fingerprint": "72c99e4a3782d9c24edef9722080e8ba1e0634d653dc84e25cec08f03defbd42", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_or_ci": 14, "test_ci_gap": 1, "api_or_backend": 1, "docs_or_claims": 5, "schema_or_data": 2, "ui_or_frontend": 43, "source_or_other": 7, "dependency_or_build": 2, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 122, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 74, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 94, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 74, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#2", "issue_number": "2", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-bd166f8d5cebdee5", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 56, "api_or_backend": 4, "docs_or_claims": 20, "schema_or_data": 8, "ui_or_frontend": 172, "source_or_other": 28, "dependency_or_build": 8}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#2\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#2\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#2\nRepo: Steviewonders99/OneTake\nIssue/PR number: 2\nGraph consistency label: supported_by_verification_signal\nNodes: 94\nEdges: 122\nNode types: {'pr_file': 74, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 74, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 43, 'test_or_ci': 14, 'source_or_other': 7, 'docs_or_claims': 5, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'schema_or_data': 2, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-30634c43fa74a0dd", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416584, "scanner": "foundry_dataset", "fingerprint": "f7244b4bfd3d948dda084b23c5d036d7311c84fe48418b54b59d20f0a31e692c", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 4, "test_ci_gap": 1, "docs_or_claims": 2, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#19", "issue_number": "19", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-3bfcb0f7f9a60387", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 8, "source_or_other": 4}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#19\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#19\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#19\nRepo: Steviewonders99/OneTake\nIssue/PR number: 19\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 33\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 3, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-376a80ced53ae62d", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416583, "scanner": "foundry_dataset", "fingerprint": "33870467af5bb54e6eb0b809df961eb3096413a4f56451245e609b3feafc3df0", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "commit_general": 1, "source_or_other": 10, "generated_provenance": 1, "partial blueprint fit": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 54, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 10, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 10, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 30, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 10, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#17", "issue_number": "17", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9856fba41afc7b35", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 40}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#17\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#17\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#17\nRepo: Steviewonders99/OneTake\nIssue/PR number: 17\nGraph consistency label: supported_by_verification_signal\nNodes: 30\nEdges: 54\nNode types: {'pr_file': 10, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 10, 'comment_chain_touches_file': 10, 'issue_chain_touches_file': 10, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 10, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'generated_provenance': 1, 'commit_general': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-9daf15e19a3773d3", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416582, "scanner": "foundry_dataset", "fingerprint": "2ff7e9e88a8ac2458a5160c3448917588411e2b0e2a57e69bcf09844e733e578", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 1, "test_ci_gap": 1, "docs_or_claims": 1, "ui_or_frontend": 2, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 24, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#14", "issue_number": "14", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-16bff2dc5d31e049", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 4, "ui_or_frontend": 8, "source_or_other": 4}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#14\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#14\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#14\nRepo: Steviewonders99/OneTake\nIssue/PR number: 14\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 36\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 4, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'issue_chain_touches_file': 4, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'docs_or_claims': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-56056fb88beec662", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416581, "scanner": "foundry_dataset", "fingerprint": "d68b1d5967648f027e2731e2f910513dba8b597de935924e70ae71355377c881", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "ui_or_frontend": 1, "source_or_other": 2, "partial blueprint fit": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 23, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 3, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#13", "issue_number": "13", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-8f5f05e9694a0cde", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4, "source_or_other": 8}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#13\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#13\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#13\nRepo: Steviewonders99/OneTake\nIssue/PR number: 13\nGraph consistency label: supported_by_verification_signal\nNodes: 23\nEdges: 33\nNode types: {'commit': 5, 'link_quality': 5, 'pr_file': 3, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'issue_chain_touches_file': 3, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'source_or_other': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-aa20ebd477048d39", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416580, "scanner": "foundry_dataset", "fingerprint": "f981d50cd423d1503ed463cea8a7b914507a438a99fc964d1945825ac662be94", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "ui_workflow": 1, "api_or_backend": 1, "ui_or_frontend": 3, "source_or_other": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 5, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 5, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 5, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#11", "issue_number": "11", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-9b493ba97359355e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 12, "source_or_other": 4}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#11\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#11\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#11\nRepo: Steviewonders99/OneTake\nIssue/PR number: 11\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 39\nNode types: {'pr_file': 5, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 5, 'comment_chain_links_commit': 5, 'comment_chain_touches_file': 5, 'chain_has_link_quality': 5, 'issue_chain_touches_file': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ui_or_frontend': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'api_or_backend': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'ui_workflow': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-bc7799d627ce5185", "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": "Steviewonders99/OneTake", "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: Steviewonders99/OneTake"}, "properties": {"repobilityId": 416579, "scanner": "foundry_dataset", "fingerprint": "89df4ba42994bd5aba344812296f99f6db2b8c4819e4e27914f66b4adb9e68da", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 5, "test_or_ci": 11, "test_ci_gap": 1, "api_or_backend": 8, "docs_or_claims": 3, "schema_or_data": 3, "ui_or_frontend": 7, "source_or_other": 5, "mock_placeholder": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 107, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 37, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 6, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 64, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "pr_file": 37, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 2, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#1", "issue_number": "1", "quality_tiers": {"assumption_check": 2, "weak_supervision": 4}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-06f74bb6cd64d67e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 55, "api_or_backend": 40, "docs_or_claims": 15, "schema_or_data": 15, "ui_or_frontend": 35, "source_or_other": 25}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#1\nRepo: Steviewonders99/OneTake\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 64\nEdges: 107\nNode types: {'pr_file': 37, 'commit': 9, 'link_quality': 6, 'comment': 2, 'comment_chain': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 37, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'api_or_backend': 8, 'ui_or_frontend': 7, 'source_or_other': 5, 'bug_fix': 5, 'verification_or_tests': 4, 'docs_or_claims': 3, 'schema_or_data': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'test_ci_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-48b4dcc6f8506139", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: Steviewonders99/OneTake"}, "properties": {"repobilityId": 409223, "scanner": "foundry_dataset", "fingerprint": "990931785d52b7e9801db019324fb27f56135d56dc20fee50ff7cce8e941159a", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 1, "test_or_ci": 1, "docs_or_claims": 1, "schema_or_data": 1, "source_or_other": 6, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 51, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 9, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 9, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 9, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#7", "issue_number": "7", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-bafea581e4852821", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 4, "docs_or_claims": 4, "schema_or_data": 4, "source_or_other": 24}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#7\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#7\nRepo: Steviewonders99/OneTake\nIssue/PR number: 7\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 51\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 9, 'comment_chain_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 6, 'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'schema_or_data': 1, 'test_or_ci': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-96aca678e215b700", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: Steviewonders99/OneTake"}, "properties": {"repobilityId": 409222, "scanner": "foundry_dataset", "fingerprint": "4de703fafd0a9a36be1da1b0a38a25ef3d214102f6712ff47f88bd4d4258863d", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 5, "api_or_backend": 7, "docs_or_claims": 1, "schema_or_data": 1, "source_or_other": 8, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 57, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 17, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 31, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 17, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#4", "issue_number": "4", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-56cb902d2434fe0e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 28, "docs_or_claims": 4, "schema_or_data": 4, "source_or_other": 32}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#4\nRepo: Steviewonders99/OneTake\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 31\nEdges: 57\nNode types: {'pr_file': 17, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 17, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 8, 'api_or_backend': 7, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'docs_or_claims': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-5795a692e70bde0b", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: Steviewonders99/OneTake"}, "properties": {"repobilityId": 409221, "scanner": "foundry_dataset", "fingerprint": "fd1f703a3f7d965dd14b430828e85b98e952ba1f24b0204910ca59d71b0668c7", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "commit_general": 1, "docs_or_claims": 2, "schema_or_data": 1, "source_or_other": 4, "generated_provenance": 1, "partial blueprint fit": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 45, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 7, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 7, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 7, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 27, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 7, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#15", "issue_number": "15", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8e7e045d6d4e7cbe", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 8, "schema_or_data": 4, "source_or_other": 16}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#15\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#15\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#15\nRepo: Steviewonders99/OneTake\nIssue/PR number: 15\nGraph consistency label: supported_by_verification_signal\nNodes: 27\nEdges: 45\nNode types: {'pr_file': 7, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 7, 'comment_chain_touches_file': 7, 'issue_chain_touches_file': 7, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 4, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'schema_or_data': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'commit_general': 1, 'generated_provenance': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-eff6d0ad88da537c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: Steviewonders99/OneTake"}, "properties": {"repobilityId": 406238, "scanner": "foundry_dataset", "fingerprint": "6e244d9784004ef71feba0afac13c293e4105773c2eca034dda9acae06c0a726", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"bug_fix": 1, "docs_or_claims": 2, "runtime_failure": 1, "verification_or_tests": 4, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#5", "issue_number": "5", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-de0ca8232e45945e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 8}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#5\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#5\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#5\nRepo: Steviewonders99/OneTake\nIssue/PR number: 5\nGraph consistency label: supported_by_verification_signal\nNodes: 16\nEdges: 22\nNode types: {'commit': 5, 'link_quality': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'thread_touches_file': 2, 'comment_chain_touches_file': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'bug_fix': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-04ba12de2bd823ba", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "Steviewonders99/OneTake", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: Steviewonders99/OneTake"}, "properties": {"repobilityId": 386353, "scanner": "foundry_dataset", "fingerprint": "fabef81d8122d2bf7afacd06ef723516fa1db258a214decdc8d6b19c0275a12c", "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": "Steviewonders99/OneTake#4", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "schema_or_data", "source_or_other"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-cf2bbd6714158879", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"docs": 6, "schemas": 1, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 17, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 7, "docs_or_claims": 1, "schema_or_data": 1, "source_or_other": 8}, "linked_commit_count": 5, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#4\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 17\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'schema_or_data': 1, 'api_or_backend': 7, 'source_or_other': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8c8dea9c4be61c7e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/4\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/4\\nTitle: Post-apply funnel + hash attribution (POST_APPLY \u00a75 + HASH \u00a77)\\nBody:\\n## Summary\\n\\nPhase 4 build for POST_APPLY_FUNNEL_SPEC and HASH_ATTRIBUTION_SPEC. Inherits every artifact from data-mirror v1.0 (shipped via PR #3 earlier today): canonical ingest shape, sync_runs wrap, schema in migrations, write-time mapping, verify_mirrors framework, orphan bucket pattern.\\n\\n## What ships\\n\\n**Foundation** (`66a7c0d`)\\n- Migration `2026-06-09-ga4-event-user-grain.sql` \u2014 applied to Azure PG (15 cols, 6 indexes/constraints).\\n- `worker/pipeline/attribution.py` \u2014 canonical `resolve_project()` + `attribute_event_to_project()`. Replaces 7 divergent `match_campaign` implementations across sync scripts (TODO.md tracks the consolidation follow-up).\\n- `worker/pipeline/hash_join.py` \u2014 single canonical 3-table chain `ga4_user_hash \u2192 identity_stitch \u2192 crowd_db.user_profile`. Single + batched variants.\\n- `TODO.md` \u2014 every deferred decision logged with status + action + owner.\\n\\n**Post-apply proxy endpoints** (`886cad9`) \u2014 P\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-703c1963ce2cb09b\",\n    \"filename\": \"TODO.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 307,\n    \"deletions\": 0,\n    \"changes\": 307,\n    \"blob_url\": \"https://github.com/Steviewonders99/OneTake/blob/269ba7ed758859efee145e1dd9a1fe0bdd652fbc/TODO.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-45cdd8b0d871e921\",\n    \"filename\": \"migrations/2026-06-09-ga4-event-user-grain.sql\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"added\",\n    \"additions\": 60,\n    \"deletions\": 0,\n    \"changes\": 60,\n    \"blob_url\": \"https://github.com/Steviewonde\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "comment-chain-pattern-bad_chains-cf0da1e479ae9379", "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": "Steviewonders99/OneTake", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: Steviewonders99/OneTake"}, "properties": {"repobilityId": 386352, "scanner": "foundry_dataset", "fingerprint": "59ee09dff0af788fbbbc445919a4b698b8a080dc16566d3ea62f1442d60c98ab", "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": "Steviewonders99/OneTake#10", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "schema_or_data", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "10", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.812, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1db6bcce0737e168", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"docs": 6, "schemas": 1, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 62, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 10, "api_or_backend": 7, "docs_or_claims": 2, "schema_or_data": 5, "ui_or_frontend": 5, "source_or_other": 33}, "linked_commit_count": 5, "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_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#10\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#10\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 62\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'schema_or_data': 5, 'source_or_other': 33, 'api_or_backend': 7, 'ui_or_frontend': 5, 'test_or_ci': 10}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-950027777212e498\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/10\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/10\\nTitle: Phase 4 unify: identity-stitch + post-apply + path-explorer + subproject\\nBody:\\n## Summary\\n\\nSingle image-build PR consolidating PR #6 \u2192 #7 \u2192 #8 \u2192 #9 (stacked code-review PRs) plus subproject-segmentation Phase A+B+C. Bundles 21 commits across 4 workstreams (~5,500 lines added) into one CI Docker build \u2192 one new ACR digest \u2192 one Pengfei deploy.\\n\\n## What's in the image (4 workstreams)\\n\\n### 1. identity_stitch hardening + multi-source (PR #6 + #7)\\n- `sync_runs` wrap on the identity writer; drops 90-day registration window; removes DELETE-then-INSERT race\\n- Two new writers: `sync_identity_stitch_brevo.py` (2.1M Brevo contacts verified) + `sync_identity_stitch_email_forward.py` (lights up on Pengfei's `email_forward_record` GRANT)\\n- 56 canonicalization + parity tests (40 multi-source + 16 hardening)\\n- Migrations: `2026-06-09-identity-stitch-hardening.sql`, `2026-06-09-identity-stitch-multi-source.sql`\\n\\n### 2. Post-apply funnel + hash attribution (PR #4 + #8 + #9 \u00a75)\\n- 3 new proxy endpoints: `/pla\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-ef6104336a740ce8\",\n    \"filename\": \"TODO.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 307,\n    \"deletions\": 0,\n    \"changes\": 307,\n    \"blob_url\": \"https://github.com/Steviewonders99/OneTake/blob/866405f91b72863c5e2a7d70bf7d953298edb92b/TODO.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-bfc226ae04b7d782\",\n    \"filename\": \"docs/PENGFEI_GRANT_REQUEST_20260609.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 94,\n    \"deletions\": 0,\n    \"changes\": 94,\n    \"blo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "comment-chain-pattern-bad_chains-7985c9409147ea04", "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": "Steviewonders99/OneTake", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: Steviewonders99/OneTake"}, "properties": {"repobilityId": 386351, "scanner": "foundry_dataset", "fingerprint": "966dbc834f9e44f4fd81959cf1af81d1583f1024fd4cfad0bbf4ae226f4b547f", "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": "Steviewonders99/OneTake#1", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "schema_or_data", "source_or_other", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f17ca41bcf3a52be", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"docs": 6, "schemas": 1, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 37, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 11, "api_or_backend": 8, "docs_or_claims": 3, "schema_or_data": 3, "ui_or_frontend": 7, "source_or_other": 5}, "linked_commit_count": 10, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 1}, "text": "Comment chain pattern product: bad_chains\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: Steviewonders99/OneTake#1\nRepo: Steviewonders99/OneTake\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 37\nLabels: {'mock_placeholder': 1, 'test_ci_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'source_or_other': 5, 'docs_or_claims': 3, 'schema_or_data': 3, 'test_or_ci': 11, 'api_or_backend': 8, 'ui_or_frontend': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6b1da7c106d39878\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/1\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/1\\nTitle: feat: Designer Portal + Figma plugin full accuracy pass\\nBody:\\n## Summary\\n\\nCloses every gap between the Designer Portal UI and the Nova Creative Studio Figma plugin so every visible button works, plugin pull/push round-trips end-to-end against current Material Generator output, and the auth model is defensible at pentest.\\n\\n**Spec:** `docs/superpowers/specs/2026-06-03-designer-portal-figma-integration-design.md`\\n**Plan:** `docs/superpowers/plans/2026-06-03-designer-portal-figma-integration.md`\\n\\n## What changed (19 tasks, 23 commits)\\n\\n**Foundation**\\n- AES-256-GCM crypto helpers (`src/lib/crypto.ts`) with edge-runtime guard + strict base64 validation\\n- Designer asset-type registry (`src/lib/figma-asset-types.ts`) \u2014 single source of truth for `composed_creative` / `base_creative` / `asset_sheet`\\n- Migration `2026-06-03-designer-figma.sql` consolidating 6 runtime ALTERs + `designer_uploads` table (aligned to live prod schema)\\n\\n**Figma API surfaces**\\n- `/api/figma/connect` \u2014 Figma PAT now AES-256-\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3e0d23c714144621\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/Steviewonders99/OneTake/pull/1#issuecomment-4615987219\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: Steviewonders99/OneTake\\nAuthor: Steviewonders99 (User)\\nURL: https://github.com/Steviewonders99/OneTake/pull/1#issuecomment-4615987219\\nTitle: \\nBody:\\n## E2E Verification Complete \u2705\\n\\nRan full Playwright + Figma MCP round-trip locally. Two p\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "comment-chain-pattern-bad_chains-913c383265aa78d7", "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": "Steviewonders99/OneTake", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake"}, "properties": {"repobilityId": 406869, "scanner": "foundry_dataset", "fingerprint": "173f6c8101434cd211fa95f5ba23970561741666f2f65079372d2af5ac59137b", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "ui_or_frontend": 4, "mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 4, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#8", "issue_number": "8", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-768b949c53f5efba", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 16}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#8\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#8\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#8\nRepo: Steviewonders99/OneTake\nIssue/PR number: 8\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 28\nNode types: {'commit': 5, 'pr_file': 4, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'issue_chain_touches_file': 4, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 4, 'bug_fix': 4, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-4fc5cf0ad908590f", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake"}, "properties": {"repobilityId": 406868, "scanner": "foundry_dataset", "fingerprint": "54d035913132316100909e6fb1fbaf71ff73831132353fb4575dd15e02dcd76e", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 5, "api_or_backend": 7, "docs_or_claims": 1, "schema_or_data": 1, "source_or_other": 8, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 57, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 17, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 31, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 17, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#4", "issue_number": "4", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e6357e7e6aa9bb47", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 28, "docs_or_claims": 4, "schema_or_data": 4, "source_or_other": 32}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#4\nRepo: Steviewonders99/OneTake\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 31\nEdges: 57\nNode types: {'pr_file': 17, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 17, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 8, 'api_or_backend': 7, 'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'docs_or_claims': 1, 'schema_or_data': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-f90eba2fc2db43cf", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake"}, "properties": {"repobilityId": 406867, "scanner": "foundry_dataset", "fingerprint": "52aa9530c17427b56d27993aed62a554f0c773dcbb8fab5f7663165aa72ddc00", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 10, "api_or_backend": 7, "commit_general": 1, "docs_or_claims": 2, "schema_or_data": 5, "ui_or_frontend": 5, "source_or_other": 33, "mock_placeholder": 1, "verification_or_tests": 4, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 102, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 62, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 76, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 62, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#10", "issue_number": "10", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d09056bcce88b354", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 40, "api_or_backend": 28, "docs_or_claims": 8, "schema_or_data": 20, "ui_or_frontend": 20, "source_or_other": 132}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#10\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#10\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#10\nRepo: Steviewonders99/OneTake\nIssue/PR number: 10\nGraph consistency label: supported_by_high_confidence_link\nNodes: 76\nEdges: 102\nNode types: {'pr_file': 62, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 62, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 33, 'test_or_ci': 10, 'api_or_backend': 7, 'schema_or_data': 5, 'ui_or_frontend': 5, 'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'comment_has_related_commit_context': 1, 'commit_general': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-4458c88e81a2b7d2", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: Steviewonders99/OneTake"}, "properties": {"repobilityId": 406866, "scanner": "foundry_dataset", "fingerprint": "7fc0b89c55c59a19ec7e95a3e61af61616efc91ba7d0111c8f33e0487155d621", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 5, "test_or_ci": 11, "test_ci_gap": 1, "api_or_backend": 8, "docs_or_claims": 3, "schema_or_data": 3, "ui_or_frontend": 7, "source_or_other": 5, "mock_placeholder": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 107, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 37, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 6, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 64, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "pr_file": 37, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 2, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "Steviewonders99/OneTake#1", "issue_number": "1", "quality_tiers": {"assumption_check": 2, "weak_supervision": 4}, "repo_full_name": "Steviewonders99/OneTake", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-64f2be7fadb4060c", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 55, "api_or_backend": 40, "docs_or_claims": 15, "schema_or_data": 15, "ui_or_frontend": 35, "source_or_other": 25}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\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: Steviewonders99/OneTake\nThread: Steviewonders99/OneTake#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: Steviewonders99/OneTake#1\nRepo: Steviewonders99/OneTake\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 64\nEdges: 107\nNode types: {'pr_file': 37, 'commit': 9, 'link_quality': 6, 'comment': 2, 'comment_chain': 2, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 37, 'comment_chain_touches_file': 24, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'test_or_ci': 11, 'api_or_backend': 8, 'ui_or_frontend': 7, 'source_or_other': 5, 'bug_fix': 5, 'verification_or_tests': 4, 'docs_or_claims': 3, 'schema_or_data': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'test_ci_gap': 1, 'human_reported_issue_then_fix_attempt': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'claimed_resolved_with_verification_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 2}\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/Steviewonders99/OneTake", "source_id": "graph-query-motif_query-7f83d44387714c84", "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": "Steviewonders99/OneTake", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-20dba66bf8e5aa63", "level": "note", "message": {"text": "Possibly dead Python function: biz_end"}, "properties": {"repobilityId": "3103747f0e7891f3", "scanner": "scanner-primary", "fingerprint": "20dba66bf8e5aa63", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/roadmap/generate-gantt-v2.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b72fa5b4d7a9f4ea", "level": "note", "message": {"text": "Possibly dead Python function: query_ga4_for_slug"}, "properties": {"repobilityId": "5628da1b3b90429c", "scanner": "scanner-primary", "fingerprint": "b72fa5b4d7a9f4ea", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/seed_all_ga4_funnels.py:48"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8dc84e9edbe435e6", "level": "note", "message": {"text": "Possibly dead Python function: fetch_pending_jobs"}, "properties": {"repobilityId": "213c4d3c2fe1bdb3", "scanner": "scanner-primary", "fingerprint": "8dc84e9edbe435e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/neon_client.py:51"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a8f69bbe2b3f233", "level": "note", "message": {"text": "Possibly dead Python function: mark_job_processing"}, "properties": {"repobilityId": "a7ccb9c8b5d1a56c", "scanner": "scanner-primary", "fingerprint": "9a8f69bbe2b3f233", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/neon_client.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5473ac201b718d2d", "level": "note", "message": {"text": "Possibly dead Python function: alert_sync_failure"}, "properties": {"repobilityId": "27197f113f726d63", "scanner": "scanner-primary", "fingerprint": "5473ac201b718d2d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/teams_notify.py:148"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a46c81e96211417c", "level": "note", "message": {"text": "Possibly dead Python function: notify_auto_edit"}, "properties": {"repobilityId": "0ff0af298f8e9210", "scanner": "scanner-primary", "fingerprint": "a46c81e96211417c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/teams_notify.py:318"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f4362c32d14f07c", "level": "note", "message": {"text": "Possibly dead Python function: list_projects"}, "properties": {"repobilityId": "b809d1b6f1dd3be8", "scanner": "scanner-primary", "fingerprint": "4f4362c32d14f07c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/db_proxy.py:254"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44f66437cd3cd80e", "level": "note", "message": {"text": "Possibly dead Python function: normalize_pages"}, "properties": {"repobilityId": "448b2fc23d59be87", "scanner": "scanner-primary", "fingerprint": "44f66437cd3cd80e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/db_proxy.py:707"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-65402d8b28dc4b83", "level": "note", "message": {"text": "Possibly dead Python function: trigger_sync"}, "properties": {"repobilityId": "dfc34abc099e889a", "scanner": "scanner-primary", "fingerprint": "65402d8b28dc4b83", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/db_proxy.py:722"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a09fdd037e455a6e", "level": "note", "message": {"text": "Possibly dead Python function: get_ga4_funnel"}, "properties": {"repobilityId": "0f6bfd36a95aed35", "scanner": "scanner-primary", "fingerprint": "a09fdd037e455a6e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/db_proxy.py:740"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-81f8d15852df2576", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker/generate_sibling_images.js:56"}, "properties": {"repobilityId": "ca48115ee22f9f06", "scanner": "scanner-primary", "fingerprint": "81f8d15852df2576", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e49b5a35c42619af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker/swap_sibling_images.js:65"}, "properties": {"repobilityId": "dc06c9fc329ab169", "scanner": "scanner-primary", "fingerprint": "e49b5a35c42619af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9955f8e909b96b5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker/deploy_humus_siblings.js:181"}, "properties": {"repobilityId": "d05ec09129668df8", "scanner": "scanner-primary", "fingerprint": "9955f8e909b96b5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e961a993b8357b54", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignList.tsx:178"}, "properties": {"repobilityId": "d4e88dec441e7a4a", "scanner": "scanner-primary", "fingerprint": "e961a993b8357b54", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-ab88879769a88327", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/IntakeCard.tsx:31"}, "properties": {"repobilityId": "decc516bfd053a63", "scanner": "scanner-primary", "fingerprint": "ab88879769a88327", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b460ddd4703a8a1d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetCard.tsx:97"}, "properties": {"repobilityId": "4e1eb51d82994f10", "scanner": "scanner-primary", "fingerprint": "b460ddd4703a8a1d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-93a64d862afe6dc1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/CreativeCard.tsx:86"}, "properties": {"repobilityId": "2e240304ae350293", "scanner": "scanner-primary", "fingerprint": "93a64d862afe6dc1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-609f5f4afa767090", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/RecruiterDetailView.tsx:630"}, "properties": {"repobilityId": "18830e3835441b68", "scanner": "scanner-primary", "fingerprint": "609f5f4afa767090", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6a51aa6dff49ea9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AssetReviewPanel.tsx:205"}, "properties": {"repobilityId": "cbe974d2d85c1112", "scanner": "scanner-primary", "fingerprint": "e6a51aa6dff49ea9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc7159b53d2b50f3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/EditableField.tsx:120"}, "properties": {"repobilityId": "2403f0610b3ce60b", "scanner": "scanner-primary", "fingerprint": "cc7159b53d2b50f3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2882d5d28093caca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/CampaignWorkspace.tsx:224"}, "properties": {"repobilityId": "73f82feb9cffd0d8", "scanner": "scanner-primary", "fingerprint": "2882d5d28093caca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7603d77baf931688", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/CampaignWorkspace.tsx:160"}, "properties": {"repobilityId": "ef9e9c1cd7c08a60", "scanner": "scanner-primary", "fingerprint": "7603d77baf931688", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-04ac41981ece9bd6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TikTokFrame.tsx:135"}, "properties": {"repobilityId": "797e80b15dfa6cef", "scanner": "scanner-primary", "fingerprint": "04ac41981ece9bd6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a31607c6bd686525", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/FacebookFeedFrame.tsx:78"}, "properties": {"repobilityId": "caebb5ad663bf5f7", "scanner": "scanner-primary", "fingerprint": "a31607c6bd686525", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e5b83f827a58b46", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/TelegramCardFrame.tsx:49"}, "properties": {"repobilityId": "5bd60aaddc2dd44a", "scanner": "scanner-primary", "fingerprint": "7e5b83f827a58b46", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42f924a91c9dab93", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/LinkedInFeedFrame.tsx:77"}, "properties": {"repobilityId": "cd548c734e2308e5", "scanner": "scanner-primary", "fingerprint": "42f924a91c9dab93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-beb32ecbaf3556ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/platform-mockups/InstagramFeedFrame.tsx:103"}, "properties": {"repobilityId": "96dce1db5836efa3", "scanner": "scanner-primary", "fingerprint": "beb32ecbaf3556ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8a27db8175772ee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/Calendar.tsx:277"}, "properties": {"repobilityId": "5deb7cf16c8b8092", "scanner": "scanner-primary", "fingerprint": "c8a27db8175772ee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fdd77c1ce68ccdc0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/content-hub/SEOPlanCard.tsx:133"}, "properties": {"repobilityId": "a85d3dc37de5a0bb", "scanner": "scanner-primary", "fingerprint": "fdd77c1ce68ccdc0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad5d7880faee58ee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/ShareModal.tsx:70"}, "properties": {"repobilityId": "4504bcb097e04d7a", "scanner": "scanner-primary", "fingerprint": "ad5d7880faee58ee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-087848b000801e47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetRenderer.tsx:68"}, "properties": {"repobilityId": "6d96fb4c37991eed", "scanner": "scanner-primary", "fingerprint": "087848b000801e47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-62e1018ba5175430", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetPalette.tsx:48"}, "properties": {"repobilityId": "48fb76ecc20d3f89", "scanner": "scanner-primary", "fingerprint": "62e1018ba5175430", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03646d0f6a2046f0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/WidgetConfigPanel.tsx:28"}, "properties": {"repobilityId": "1f62cf5726d0c119", "scanner": "scanner-primary", "fingerprint": "03646d0f6a2046f0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a8f7599236618580", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardToolbar.tsx:70"}, "properties": {"repobilityId": "fa9c97fa7e08afb3", "scanner": "scanner-primary", "fingerprint": "a8f7599236618580", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48d2240dc25704d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/DashboardCard.tsx:24"}, "properties": {"repobilityId": "06c9916775d75892", "scanner": "scanner-primary", "fingerprint": "48d2240dc25704d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f5d60295d3f81ce2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/project-report/ProjectReportClient.tsx:254"}, "properties": {"repobilityId": "481373c48e6de4e0", "scanner": "scanner-primary", "fingerprint": "f5d60295d3f81ce2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8abc169f9bd3ceb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:530"}, "properties": {"repobilityId": "38f8c47075ba8f95", "scanner": "scanner-primary", "fingerprint": "c8abc169f9bd3ceb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f4bafec2e044a71", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:302"}, "properties": {"repobilityId": "9b280c29f5d7fdf1", "scanner": "scanner-primary", "fingerprint": "7f4bafec2e044a71", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-493b00138574e3d4", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:29"}, "properties": {"repobilityId": "68500051d877fb69", "scanner": "scanner-primary", "fingerprint": "493b00138574e3d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-65c4728281283463", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/MasterFilterWidget.tsx:54"}, "properties": {"repobilityId": "1dea8fdd40fd6e44", "scanner": "scanner-primary", "fingerprint": "65c4728281283463", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a08e6ea09177edc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscPerformanceWidget.tsx:91"}, "properties": {"repobilityId": "fa51f3841d2946de", "scanner": "scanner-primary", "fingerprint": "9a08e6ea09177edc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a854aa9de1effd34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PlatformAudiencesWidget.tsx:84"}, "properties": {"repobilityId": "aa48acce8f81f3d2", "scanner": "scanner-primary", "fingerprint": "a854aa9de1effd34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e12647290f7d6a4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/FunnelVisualizationWidget.tsx:96"}, "properties": {"repobilityId": "411e7520e4048e1a", "scanner": "scanner-primary", "fingerprint": "5e12647290f7d6a4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fdd9d4d4f498168d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignTimelineWidget.tsx:71"}, "properties": {"repobilityId": "bcada9883857abf4", "scanner": "scanner-primary", "fingerprint": "fdd9d4d4f498168d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3fbe67d32706af58", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/ChannelAttributionWidget.tsx:167"}, "properties": {"repobilityId": "0c927c22bc0113f5", "scanner": "scanner-primary", "fingerprint": "3fbe67d32706af58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-672dcfb027696b7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CategoryBreakdownWidget.tsx:102"}, "properties": {"repobilityId": "d041f9acfbcae961", "scanner": "scanner-primary", "fingerprint": "672dcfb027696b7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d5f504b5b2fdfe50", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/TopCampaignSpendWidget.tsx:175"}, "properties": {"repobilityId": "e48f1c2810ea6aca", "scanner": "scanner-primary", "fingerprint": "d5f504b5b2fdfe50", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ad2f238651df11a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/OrganicTopPostsWidget.tsx:79"}, "properties": {"repobilityId": "d340902c5cc546b5", "scanner": "scanner-primary", "fingerprint": "5ad2f238651df11a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55e565480d27fb8a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/insights/widgets/TargetingVsRealityWidget.tsx:67"}, "properties": {"repobilityId": "28b53a687d6db960", "scanner": "scanner-primary", "fingerprint": "55e565480d27fb8a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d3163524f0496cf5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruiterLeaderboardWidget.tsx:53"}, "properties": {"repobilityId": "0f27969e8f62aebe", "scanner": "scanner-primary", "fingerprint": "d3163524f0496cf5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a69b3224afbc99ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CampaignFunnelWidget.tsx:109"}, "properties": {"repobilityId": "50f035baf8108ae5", "scanner": "scanner-primary", "fingerprint": "a69b3224afbc99ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6feb36246130705c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/GscQueriesWidget.tsx:50"}, "properties": {"repobilityId": "bef3b1cc28925fb5", "scanner": "scanner-primary", "fingerprint": "6feb36246130705c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be23cf02b0dcd96d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecentActivityWidget.tsx:63"}, "properties": {"repobilityId": "ce38c2afba6701f7", "scanner": "scanner-primary", "fingerprint": "be23cf02b0dcd96d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-71f4b068ae7e876e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/HieHeatmapWidget.tsx:32"}, "properties": {"repobilityId": "327e743e948bcb8a", "scanner": "scanner-primary", "fingerprint": "71f4b068ae7e876e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a42d8305ed8ec00", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/PaidCampaignDetailWidget.tsx:76"}, "properties": {"repobilityId": "369d49c9f5587631", "scanner": "scanner-primary", "fingerprint": "1a42d8305ed8ec00", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f32589a3b935398", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/RecruitmentAttributionWidget.tsx:68"}, "properties": {"repobilityId": "1f1d2f0d3e2ca8f5", "scanner": "scanner-primary", "fingerprint": "6f32589a3b935398", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f8a77d560de678f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/widgets/CreativeGalleryWidget.tsx:134"}, "properties": {"repobilityId": "f901c3b7c5300df5", "scanner": "scanner-primary", "fingerprint": "4f8a77d560de678f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bffdef326f2b981f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/CampaignTable.tsx:188"}, "properties": {"repobilityId": "7f8f9c42d5ee4c94", "scanner": "scanner-primary", "fingerprint": "bffdef326f2b981f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c069fe76f8794ba5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/channel-intel/EmailPerformancePanel.tsx:430"}, "properties": {"repobilityId": "f5ba99ca6b33daaf", "scanner": "scanner-primary", "fingerprint": "c069fe76f8794ba5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6dbc9a4a72c0fc78", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/content-intel/ContentCard.tsx:44"}, "properties": {"repobilityId": "953fa31065d1ece6", "scanner": "scanner-primary", "fingerprint": "6dbc9a4a72c0fc78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e4f52dbddb17a5f0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/insights/content-intel/ContentBrief.tsx:64"}, "properties": {"repobilityId": "140e038bd9a7b3da", "scanner": "scanner-primary", "fingerprint": "e4f52dbddb17a5f0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ad1ed9cf70b85267", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/insights/command-center/ProjectTable.tsx:186"}, "properties": {"repobilityId": "1722cfdc81310d70", "scanner": "scanner-primary", "fingerprint": "ad1ed9cf70b85267", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0a5825356404d5d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/AssetBrowser.tsx:207"}, "properties": {"repobilityId": "f06b64fbe3695eb8", "scanner": "scanner-primary", "fingerprint": "e0a5825356404d5d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e1d19da1f590255f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/UploadZone.tsx:217"}, "properties": {"repobilityId": "17c03a7703516103", "scanner": "scanner-primary", "fingerprint": "e1d19da1f590255f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8e8f3efdb284cb2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/designer/DesignerPreviewPanel.tsx:294"}, "properties": {"repobilityId": "0d3a06d9579c3511", "scanner": "scanner-primary", "fingerprint": "8e8f3efdb284cb2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a6cf5549951bad8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/FormatCard.tsx:261"}, "properties": {"repobilityId": "1ee99acab4f9547a", "scanner": "scanner-primary", "fingerprint": "1a6cf5549951bad8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8a26e1f56b28bc95", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/AssetLightbox.tsx:484"}, "properties": {"repobilityId": "74db7ac08bccff40", "scanner": "scanner-primary", "fingerprint": "8a26e1f56b28bc95", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c26f973461a0e2f9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/gallery/VersionGroup.tsx:295"}, "properties": {"repobilityId": "944a4079314896e4", "scanner": "scanner-primary", "fingerprint": "c26f973461a0e2f9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bcaea5da933f1f91", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/edit/QuickEditor.tsx:424"}, "properties": {"repobilityId": "21643b9657d781b7", "scanner": "scanner-primary", "fingerprint": "bcaea5da933f1f91", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-69bc43c2e43cfc27", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/PushToFigmaButton.tsx:86"}, "properties": {"repobilityId": "700984e01b678515", "scanner": "scanner-primary", "fingerprint": "69bc43c2e43cfc27", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4c14550012946429", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaConnectModal.tsx:135"}, "properties": {"repobilityId": "91a50daf4e2aee96", "scanner": "scanner-primary", "fingerprint": "4c14550012946429", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ece7793f695b77a7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaExportButton.tsx:72"}, "properties": {"repobilityId": "a6aa35ce6c8d3b79", "scanner": "scanner-primary", "fingerprint": "ece7793f695b77a7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0d94fdb4b027f305", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/designer/figma/FigmaSyncStatus.tsx:97"}, "properties": {"repobilityId": "0032db26ef7f3039", "scanner": "scanner-primary", "fingerprint": "0d94fdb4b027f305", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-347a956c48f9ae24", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/recruiter/SearchableDropdown.tsx:116"}, "properties": {"repobilityId": "ceb05b9939976406", "scanner": "scanner-primary", "fingerprint": "347a956c48f9ae24", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1ee15f5b99c71087", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/blog/[slug]/page.tsx:176"}, "properties": {"repobilityId": "edc166468e8868e7", "scanner": "scanner-primary", "fingerprint": "1ee15f5b99c71087", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-552b3bc6c0ef17d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/paste/route.ts:11"}, "properties": {"repobilityId": "7ada737153ec72fe", "scanner": "scanner-primary", "fingerprint": "552b3bc6c0ef17d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16204fbad1dc082c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/extract/rfp/route.ts:118"}, "properties": {"repobilityId": "b815c5531b34b060", "scanner": "scanner-primary", "fingerprint": "16204fbad1dc082c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d6ef38ad1a2c1ca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/setup/route.ts:16"}, "properties": {"repobilityId": "cffdb80d983d1cbf", "scanner": "scanner-primary", "fingerprint": "4d6ef38ad1a2c1ca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fedec457839d56f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/figma/sync/[requestId]/route.ts:357"}, "properties": {"repobilityId": "ed281553bc11f259", "scanner": "scanner-primary", "fingerprint": "9fedec457839d56f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3de8eabdf49d700", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/export/figma-package/[requestId]/route.ts:207"}, "properties": {"repobilityId": "cae5212d55744dc9", "scanner": "scanner-primary", "fingerprint": "e3de8eabdf49d700", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c65c1655524b74f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/insights/(dashboard)/InsightsDashboardList.tsx:93"}, "properties": {"repobilityId": "fb18263dea55e273", "scanner": "scanner-primary", "fingerprint": "0c65c1655524b74f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1f390baabdab1b51", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/pipeline/page.tsx:186"}, "properties": {"repobilityId": "13cd255e6d250b26", "scanner": "scanner-primary", "fingerprint": "1f390baabdab1b51", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c41aa4df4f0d4f7b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/schemas/page.tsx:111"}, "properties": {"repobilityId": "b9270d200f4702d2", "scanner": "scanner-primary", "fingerprint": "c41aa4df4f0d4f7b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ee55156df6b9038", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/artifacts/page.tsx:72"}, "properties": {"repobilityId": "e6cee8ed7a814e51", "scanner": "scanner-primary", "fingerprint": "9ee55156df6b9038", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e70e7c2c6fd22864", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/admin/artifacts/page.tsx:85"}, "properties": {"repobilityId": "cf9087ebed958149", "scanner": "scanner-primary", "fingerprint": "e70e7c2c6fd22864", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-abce3b8d4e32fdc6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/intake/[id]/page.tsx:508"}, "properties": {"repobilityId": "7ef451b8f73cfd60", "scanner": "scanner-primary", "fingerprint": "abce3b8d4e32fdc6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e21f991394a1181", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/lib/sanitize.ts:5"}, "properties": {"repobilityId": "2c67af4e82a52bfb", "scanner": "scanner-primary", "fingerprint": "2e21f991394a1181", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ed2a3a1f8b328284", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/platforms/google-ads.ts:47"}, "properties": {"repobilityId": "200d4fecb7e4bef8", "scanner": "scanner-primary", "fingerprint": "ed2a3a1f8b328284", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-268b046013b696d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/teams.ts:15"}, "properties": {"repobilityId": "cf63a9d0f1a5a0bd", "scanner": "scanner-primary", "fingerprint": "268b046013b696d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb197cbb57a68083", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notifications/outlook.ts:9"}, "properties": {"repobilityId": "03a4d8cc9a03cc31", "scanner": "scanner-primary", "fingerprint": "bb197cbb57a68083", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-468058dbb59c39a2", "level": "warning", "message": {"text": "Dockerfile runs as root: worker/Dockerfile"}, "properties": {"repobilityId": "afa47d310a7f3283", "scanner": "scanner-primary", "fingerprint": "468058dbb59c39a2", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-282e0c07973c01d9", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "91df3e82c4ee31f2", "scanner": "scanner-primary", "fingerprint": "282e0c07973c01d9", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/Dockerfile"}, "region": {"startLine": 14}}}]}, {"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-bd8477adedfb78d3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-18.html:1265"}, "properties": {"repobilityId": "97f5e01c61b84ad6", "scanner": "scanner-primary", "fingerprint": "bd8477adedfb78d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/roadmap/OneTake_Gantt_Chart_2026-05-18.html"}, "region": {"startLine": 1265}}}]}, {"ruleId": "scanner-d4835e631b40cba9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/OneTake_Gantt_Chart_2026-05-21.html:1439"}, "properties": {"repobilityId": "71cdcd013f3f7238", "scanner": "scanner-primary", "fingerprint": "d4835e631b40cba9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/roadmap/OneTake_Gantt_Chart_2026-05-21.html"}, "region": {"startLine": 1439}}}]}, {"ruleId": "scanner-49eb66f0feee83c0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/roadmap/Nova_Gantt_Chart_2026-04-23.html:1384"}, "properties": {"repobilityId": "1f15c67845732cc8", "scanner": "scanner-primary", "fingerprint": "49eb66f0feee83c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/roadmap/Nova_Gantt_Chart_2026-04-23.html"}, "region": {"startLine": 1384}}}]}, {"ruleId": "scanner-000482999cf9a40e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verify-composition-engine.mjs:4"}, "properties": {"repobilityId": "7bbbcaee978cc5bb", "scanner": "scanner-primary", "fingerprint": "000482999cf9a40e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-composition-engine.mjs"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-72f241f04c10b33c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in figma-plugin-nova/ui.html:517"}, "properties": {"repobilityId": "1afb776b97c435c3", "scanner": "scanner-primary", "fingerprint": "72f241f04c10b33c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "figma-plugin-nova/ui.html"}, "region": {"startLine": 517}}}]}, {"ruleId": "scanner-7e2bd4b31b8ce0d5", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in figma-plugin-nova/ui.html:490"}, "properties": {"repobilityId": "f8f9d4c806ec0ae7", "scanner": "scanner-primary", "fingerprint": "7e2bd4b31b8ce0d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "figma-plugin-nova/ui.html"}, "region": {"startLine": 490}}}]}, {"ruleId": "scanner-016c6e70d87f50f6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/EditableField.tsx:120"}, "properties": {"repobilityId": "1d2bcc827b970e19", "scanner": "scanner-primary", "fingerprint": "016c6e70d87f50f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/EditableField.tsx"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-1a918ca6c9e497ca", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/insights/content-intel/ContentBrief.tsx:64"}, "properties": {"repobilityId": "0c84c29fb28fd4d0", "scanner": "scanner-primary", "fingerprint": "1a918ca6c9e497ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/insights/content-intel/ContentBrief.tsx"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-0398f032c292ab48", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/FormatCard.tsx:261"}, "properties": {"repobilityId": "d03f4336e4fca2b2", "scanner": "scanner-primary", "fingerprint": "0398f032c292ab48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/gallery/FormatCard.tsx"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-c9fa5bc72dea96e9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/AssetLightbox.tsx:484"}, "properties": {"repobilityId": "c55fa7ad654d1fb0", "scanner": "scanner-primary", "fingerprint": "c9fa5bc72dea96e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/gallery/AssetLightbox.tsx"}, "region": {"startLine": 484}}}]}, {"ruleId": "scanner-b49e22843e3d49fc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/gallery/VersionGroup.tsx:295"}, "properties": {"repobilityId": "70318958e0b252d8", "scanner": "scanner-primary", "fingerprint": "b49e22843e3d49fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/gallery/VersionGroup.tsx"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-cc31d743e01eb51d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/edit/QuickEditor.tsx:424"}, "properties": {"repobilityId": "aef85f34bc351d3c", "scanner": "scanner-primary", "fingerprint": "cc31d743e01eb51d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/edit/QuickEditor.tsx"}, "region": {"startLine": 424}}}]}, {"ruleId": "scanner-2510920a74c53e77", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/PushToFigmaButton.tsx:86"}, "properties": {"repobilityId": "2f9937a7bb21f106", "scanner": "scanner-primary", "fingerprint": "2510920a74c53e77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/figma/PushToFigmaButton.tsx"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-5e17bdbf0899eff5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaConnectModal.tsx:135"}, "properties": {"repobilityId": "eea31e149a3f8e25", "scanner": "scanner-primary", "fingerprint": "5e17bdbf0899eff5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/figma/FigmaConnectModal.tsx"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-c3db83fb78663c5f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaExportButton.tsx:72"}, "properties": {"repobilityId": "e82907b0e775147e", "scanner": "scanner-primary", "fingerprint": "c3db83fb78663c5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/figma/FigmaExportButton.tsx"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-837f15fa2dafe035", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/designer/figma/FigmaSyncStatus.tsx:97"}, "properties": {"repobilityId": "c946d093faae47e1", "scanner": "scanner-primary", "fingerprint": "837f15fa2dafe035", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/designer/figma/FigmaSyncStatus.tsx"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-c2aa74cf6bb20027", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/blog/[slug]/page.tsx:176"}, "properties": {"repobilityId": "df5a2a4c38f975f6", "scanner": "scanner-primary", "fingerprint": "c2aa74cf6bb20027", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/blog/[slug]/page.tsx"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-e03edaf977f91d43", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/admin/artifacts/page.tsx:85"}, "properties": {"repobilityId": "c41e8d3e810b460d", "scanner": "scanner-primary", "fingerprint": "e03edaf977f91d43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/admin/artifacts/page.tsx"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c3fda9e893c533ec", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae63b315ae3ef32f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae63b315ae3ef32f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-48389405bf475f8b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "834ea4aea6db913e", "scanner": "scanner-primary", "fingerprint": "48389405bf475f8b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/schema-bootstrap.yml"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-4f128ae952379bc0", "level": "note", "message": {"text": "Very large file: worker/db_proxy.py (4809 lines)"}, "properties": {"repobilityId": "9f477ec60c10cdab", "scanner": "scanner-primary", "fingerprint": "4f128ae952379bc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c572273902168bfa", "level": "note", "message": {"text": "Very large file: worker/tests/smoke_test.py (1309 lines)"}, "properties": {"repobilityId": "999f7c757ba263ae", "scanner": "scanner-primary", "fingerprint": "c572273902168bfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2c4bdb5c1482a99f", "level": "note", "message": {"text": "Very large file: worker/scripts/sync_real_funnel.py (1464 lines)"}, "properties": {"repobilityId": "925ab77e4125bff2", "scanner": "scanner-primary", "fingerprint": "2c4bdb5c1482a99f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8b64aafe670a5a8a", "level": "note", "message": {"text": "Very large file: worker/scripts/verify_mirrors.py (1250 lines)"}, "properties": {"repobilityId": "20bad8738e01a1e3", "scanner": "scanner-primary", "fingerprint": "8b64aafe670a5a8a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-665e7e5e62902913", "level": "note", "message": {"text": "Very large file: worker/pipeline/stage4_compose_v2.py (1299 lines)"}, "properties": {"repobilityId": "e1d3c894ae55d075", "scanner": "scanner-primary", "fingerprint": "665e7e5e62902913", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-76645c10ba433029", "level": "note", "message": {"text": "Very large file: worker/prompts/recruitment_copy.py (1446 lines)"}, "properties": {"repobilityId": "935975b9dadba5ee", "scanner": "scanner-primary", "fingerprint": "76645c10ba433029", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d1c50b66264a0c5", "level": "note", "message": {"text": "Very large file: worker/prompts/cultural_research.py (1476 lines)"}, "properties": {"repobilityId": "e058ddf7922b89e8", "scanner": "scanner-primary", "fingerprint": "5d1c50b66264a0c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5ac402d9efd9ff1c", "level": "note", "message": {"text": "Very large file: src/components/BriefExecutive.tsx (1032 lines)"}, "properties": {"repobilityId": "cdfbbe4e45af968a", "scanner": "scanner-primary", "fingerprint": "5ac402d9efd9ff1c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0c37b137b5530072", "level": "note", "message": {"text": "Very large file: src/components/insights/deep-dive/DeepDiveClient.tsx (1080 lines)"}, "properties": {"repobilityId": "06f71a0d5233c7c8", "scanner": "scanner-primary", "fingerprint": "0c37b137b5530072", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ada2c80aee6d0493", "level": "note", "message": {"text": "Very large file: src/components/insights/channel-intel/ChannelIntelClient.tsx (1102 lines)"}, "properties": {"repobilityId": "4a69955bf98aa96e", "scanner": "scanner-primary", "fingerprint": "ada2c80aee6d0493", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1d750a3452c1d873", "level": "note", "message": {"text": "Very large file: src/components/insights/client-performance/ClientPerformanceClient.tsx (1043 lines)"}, "properties": {"repobilityId": "1bee0c5109b79475", "scanner": "scanner-primary", "fingerprint": "1d750a3452c1d873", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-728feb1f64d9fca9", "level": "note", "message": {"text": "Very large file: src/lib/db/schema.ts (1486 lines)"}, "properties": {"repobilityId": "8a61261276d0ea7b", "scanner": "scanner-primary", "fingerprint": "728feb1f64d9fca9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "d5c801c7aa831674", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0ef7d4e77463f1d7", "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": "b74c2d9784e5df6c", "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": "599f55bf01c3acb4", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "e86701b339806f7f", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "f9f3a233148909b7", "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": "2543042aecd1050b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-4b4ab71790abbd99", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/memory/tech-decisions.md"}, "properties": {"repobilityId": "54a568f80b24850b", "scanner": "scanner-primary", "fingerprint": "4b4ab71790abbd99", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/memory/tech-decisions.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe3e4aad8bd156d8", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/components/insights/deep-dive/path-explorer/useFunnelGraph.test.ts:5"}, "properties": {"repobilityId": "ea823d2d82e11809", "scanner": "scanner-primary", "fingerprint": "fe3e4aad8bd156d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b205aa8d6b1408d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/workflow/slides/build-pptx.py:47"}, "properties": {"repobilityId": "2c84df6fbcf07af1", "scanner": "scanner-primary", "fingerprint": "9b205aa8d6b1408d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c92962e107697d19", "level": "note", "message": {"text": "Legacy-named symbol `Nova_Gantt_Integrations_v2` in docs/roadmap/generate-gantt-v2.py:5"}, "properties": {"repobilityId": "951a32d4f30b8132", "scanner": "scanner-primary", "fingerprint": "c92962e107697d19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-73fb3e866bf95eab", "level": "note", "message": {"text": "Legacy-named symbol `stage4_compose_v2` in scripts/verify-composition-engine.mjs:126"}, "properties": {"repobilityId": "4bf3f85ed99b61f7", "scanner": "scanner-primary", "fingerprint": "73fb3e866bf95eab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e6a850725968f5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_project_aliases.py:93"}, "properties": {"repobilityId": "2e19a8e43728a7d3", "scanner": "scanner-primary", "fingerprint": "6e6a850725968f5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-707474a8eb710602", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed_all_ga4_funnels.py:110"}, "properties": {"repobilityId": "48fcb682d2f2cc9f", "scanner": "scanner-primary", "fingerprint": "707474a8eb710602", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f89a7ee655ae9ba9", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_creatives` \u2014 worker/backfill_creatives.py:203"}, "properties": {"repobilityId": "8aa5a4ec084498d6", "scanner": "scanner-primary", "fingerprint": "f89a7ee655ae9ba9", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_creatives.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-6973453feab27104", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/generate_sibling_images.js:58"}, "properties": {"repobilityId": "c4017f0eb6619de1", "scanner": "scanner-primary", "fingerprint": "6973453feab27104", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9240dcd279597708", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/run_emily_ugc_video.py:22"}, "properties": {"repobilityId": "79b9db9e2e163bd4", "scanner": "scanner-primary", "fingerprint": "9240dcd279597708", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9d7e00e3a648e406", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/swap_sibling_images.js:55"}, "properties": {"repobilityId": "b37e60c3f83ed1a3", "scanner": "scanner-primary", "fingerprint": "9d7e00e3a648e406", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-582e7d678da1ba83", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_meta` \u2014 worker/backfill_historical.py:173"}, "properties": {"repobilityId": "014271bf3e0208d7", "scanner": "scanner-primary", "fingerprint": "582e7d678da1ba83", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-c22fddbf30fc746f", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_reddit` \u2014 worker/backfill_historical.py:338"}, "properties": {"repobilityId": "5d266fe00b3b9491", "scanner": "scanner-primary", "fingerprint": "c22fddbf30fc746f", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 338}}}]}, {"ruleId": "scanner-902710f6e6aa1640", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:428"}, "properties": {"repobilityId": "e03a21231951478e", "scanner": "scanner-primary", "fingerprint": "902710f6e6aa1640", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 428}}}]}, {"ruleId": "scanner-dba1a02c00606870", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_ga4` \u2014 worker/backfill_historical.py:480"}, "properties": {"repobilityId": "2d886475c1a2b66c", "scanner": "scanner-primary", "fingerprint": "dba1a02c00606870", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 480}}}]}, {"ruleId": "scanner-d418db5982792b3d", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:536"}, "properties": {"repobilityId": "041c182074e616be", "scanner": "scanner-primary", "fingerprint": "d418db5982792b3d", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 536}}}]}, {"ruleId": "scanner-087ca41f77376f30", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_gsc` \u2014 worker/backfill_historical.py:581"}, "properties": {"repobilityId": "46d88f89eff6d86a", "scanner": "scanner-primary", "fingerprint": "087ca41f77376f30", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 581}}}]}, {"ruleId": "scanner-7e2eecd57098b7b6", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_meta_organic` \u2014 worker/backfill_historical.py:651"}, "properties": {"repobilityId": "559a90a927e77e11", "scanner": "scanner-primary", "fingerprint": "7e2eecd57098b7b6", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_historical.py"}, "region": {"startLine": 651}}}]}, {"ruleId": "scanner-db93b3d43dfa241b", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/run_camila_video.py:24"}, "properties": {"repobilityId": "88accda07cb1a58a", "scanner": "scanner-primary", "fingerprint": "db93b3d43dfa241b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9de81317da136b6c", "level": "note", "message": {"text": "Legacy-named symbol `rewrite_copy` in worker/duplicate_humus_page.py:41"}, "properties": {"repobilityId": "a2fb37e0c02b182e", "scanner": "scanner-primary", "fingerprint": "9de81317da136b6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-714afe4f6814eac4", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/db_proxy.py:92"}, "properties": {"repobilityId": "d323b1fb9476b754", "scanner": "scanner-primary", "fingerprint": "714afe4f6814eac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18cce3d9cff0c723", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/deploy_humus_siblings.js:43"}, "properties": {"repobilityId": "2d26872eb08f5785", "scanner": "scanner-primary", "fingerprint": "18cce3d9cff0c723", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e1938db03833bfd", "level": "note", "message": {"text": "Legacy-named symbol `update_centaurus_copy` in worker/update_centaurus_copy.py:7"}, "properties": {"repobilityId": "353a039f4377cd38", "scanner": "scanner-primary", "fingerprint": "7e1938db03833bfd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ff530a0fa734f6fd", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:134"}, "properties": {"repobilityId": "93d833d9fc6c16dc", "scanner": "scanner-primary", "fingerprint": "ff530a0fa734f6fd", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_funnel.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-ce76bf23aa0e6dce", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def backfill_funnel` \u2014 worker/backfill_funnel.py:190"}, "properties": {"repobilityId": "c758487abe7be080", "scanner": "scanner-primary", "fingerprint": "ce76bf23aa0e6dce", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/backfill_funnel.py"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-06029745fac75e49", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 worker/sandbox_compositor.py:275"}, "properties": {"repobilityId": "961db80d638dd3ca", "scanner": "scanner-primary", "fingerprint": "06029745fac75e49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-294e0549fe036ee3", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/platforms/meta_organic.py:21"}, "properties": {"repobilityId": "f30b82b8d0ff2faa", "scanner": "scanner-primary", "fingerprint": "294e0549fe036ee3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b66e2069cf33ed73", "level": "note", "message": {"text": "Legacy-named symbol `platform_copy` in worker/ai/creative_designer.py:36"}, "properties": {"repobilityId": "e1829d092ba1f8db", "scanner": "scanner-primary", "fingerprint": "b66e2069cf33ed73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a331731f961d48ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/ai/sedeo_client.py:38"}, "properties": {"repobilityId": "6767f505b310e65d", "scanner": "scanner-primary", "fingerprint": "a331731f961d48ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55b51436d7149435", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/ai/local_llm.py:124"}, "properties": {"repobilityId": "53d1ba7e0a5b1234", "scanner": "scanner-primary", "fingerprint": "55b51436d7149435", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c1f828f00f54302c", "level": "note", "message": {"text": "Legacy-named symbol `xtts_v2` in worker/ai/tts_engine.py:232"}, "properties": {"repobilityId": "d5ee1fe87ba4fe65", "scanner": "scanner-primary", "fingerprint": "c1f828f00f54302c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8580aea709225665", "level": "note", "message": {"text": "Legacy-named symbol `platform_copy` in worker/ai/overlay_copywriter.py:97"}, "properties": {"repobilityId": "f4dd83041532348d", "scanner": "scanner-primary", "fingerprint": "8580aea709225665", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e67ae436f928e5f9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 worker/ai/wav2lip.py:269"}, "properties": {"repobilityId": "578fa33f093ba6f5", "scanner": "scanner-primary", "fingerprint": "e67ae436f928e5f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53990d49e28b27b0", "level": "note", "message": {"text": "Legacy-named symbol `recruitment_copy` in worker/tests/smoke_test.py:498"}, "properties": {"repobilityId": "727c93b378d23bc4", "scanner": "scanner-primary", "fingerprint": "53990d49e28b27b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7f3d0eed1bf2843", "level": "note", "message": {"text": "Legacy-named symbol `_make_copy` in worker/tests/test_stage4_v3.py:227"}, "properties": {"repobilityId": "1296c7c814de6a3e", "scanner": "scanner-primary", "fingerprint": "d7f3d0eed1bf2843", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-11d07cae27e99e07", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker/scripts/sync_real_funnel.py:62"}, "properties": {"repobilityId": "132487153995a535", "scanner": "scanner-primary", "fingerprint": "11d07cae27e99e07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5d510f5bb654a62", "level": "note", "message": {"text": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails_bulk.py:78"}, "properties": {"repobilityId": "76b22a3f8546f8cb", "scanner": "scanner-primary", "fingerprint": "a5d510f5bb654a62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e3c930caf5a6be7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/scripts/backfill_ga4_event_user_grain.py:72"}, "properties": {"repobilityId": "1b6e2878eeba6fdb", "scanner": "scanner-primary", "fingerprint": "e3c930caf5a6be7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e08a2ecf1208280a", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/scripts/sync_ga4_mp_outbox.py:239"}, "properties": {"repobilityId": "a814f1e6b999dc2b", "scanner": "scanner-primary", "fingerprint": "e08a2ecf1208280a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d32e6a538ff82d", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker/scripts/sync_platform_outcomes.py:221"}, "properties": {"repobilityId": "6c5a92d432a3421a", "scanner": "scanner-primary", "fingerprint": "67d32e6a538ff82d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2aafb2f3f4a63e3d", "level": "note", "message": {"text": "Legacy-named symbol `n_backup` in worker/scripts/rehash_platform_emails.py:97"}, "properties": {"repobilityId": "0138de03a2222581", "scanner": "scanner-primary", "fingerprint": "2aafb2f3f4a63e3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-60e4d95687fb1a18", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/scripts/cron_sync_all.py:82"}, "properties": {"repobilityId": "3c0e286ce6cc68c5", "scanner": "scanner-primary", "fingerprint": "60e4d95687fb1a18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bd1c0b4e519e01d", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker/scripts/sync_funnel_paths.py:222"}, "properties": {"repobilityId": "5cdd894f3ea98cab", "scanner": "scanner-primary", "fingerprint": "0bd1c0b4e519e01d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee255b221d9807fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/scripts/verify_mirrors.py:797"}, "properties": {"repobilityId": "1d51b5330625b399", "scanner": "scanner-primary", "fingerprint": "ee255b221d9807fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de72d7d4945384aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/scripts/seed_brevo_rich.py:175"}, "properties": {"repobilityId": "3cae733f4773584b", "scanner": "scanner-primary", "fingerprint": "de72d7d4945384aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee2c7fe52b1967f5", "level": "note", "message": {"text": "Legacy-named symbol `meta_ads_cache_uq_v2` in worker/scripts/sync_meta_ads.py:147"}, "properties": {"repobilityId": "4b5901ee42624f47", "scanner": "scanner-primary", "fingerprint": "ee2c7fe52b1967f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f6bf839696907f22", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/scripts/sync_meta_ads.py:318"}, "properties": {"repobilityId": "ddca44a39f5ecff9", "scanner": "scanner-primary", "fingerprint": "f6bf839696907f22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5532260764fc9db6", "level": "note", "message": {"text": "Legacy-named symbol `country_v2` in worker/scripts/test_attribution_chain.py:97"}, "properties": {"repobilityId": "2ffb244e65ce7762", "scanner": "scanner-primary", "fingerprint": "5532260764fc9db6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ef79ec71b29f4a3d", "level": "note", "message": {"text": "Stub function `detect_lang` (body is just `pass`/`return`) \u2014 worker/scripts/sync_x_followers.py:34"}, "properties": {"repobilityId": "81a81a7a27599bd2", "scanner": "scanner-primary", "fingerprint": "ef79ec71b29f4a3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a2912dbf60d12a17", "level": "note", "message": {"text": "Legacy-named symbol `country_v2` in worker/scripts/sync_identity_stitch_brevo.py:159"}, "properties": {"repobilityId": "fb24af8df626a202", "scanner": "scanner-primary", "fingerprint": "a2912dbf60d12a17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e5e5050e9a47ea2c", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/scripts/sync_identity_stitch_brevo.py:175"}, "properties": {"repobilityId": "fcbe079781338dd3", "scanner": "scanner-primary", "fingerprint": "e5e5050e9a47ea2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7ec9b35ed7ecfd2", "level": "note", "message": {"text": "Legacy-named symbol `generated_copy` in worker/templates/lp_renderer.py:72"}, "properties": {"repobilityId": "51b00eef407ec9ea", "scanner": "scanner-primary", "fingerprint": "d7ec9b35ed7ecfd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c086be586ef27ce5", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/templates/lp_renderer.py:22"}, "properties": {"repobilityId": "59317fac23f13759", "scanner": "scanner-primary", "fingerprint": "c086be586ef27ce5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2d4c5444001818f", "level": "note", "message": {"text": "Legacy-named symbol `platform_copy` in worker/pipeline/stage4_carousel.py:261"}, "properties": {"repobilityId": "4c30e3f641bf0b69", "scanner": "scanner-primary", "fingerprint": "d2d4c5444001818f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9ccf0360bd87b8f7", "level": "note", "message": {"text": "Legacy-named symbol `all_copy` in worker/pipeline/stage4_material_generator.py:58"}, "properties": {"repobilityId": "c43bc99d7801b3f0", "scanner": "scanner-primary", "fingerprint": "9ccf0360bd87b8f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-045dfb521e37a6f6", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage_video.py:24"}, "properties": {"repobilityId": "85e01993b277a722", "scanner": "scanner-primary", "fingerprint": "045dfb521e37a6f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b6c27616cec388e", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage4_organic_carousel.py:20"}, "properties": {"repobilityId": "34bdd545d9bb7d7f", "scanner": "scanner-primary", "fingerprint": "9b6c27616cec388e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a4d2b773012d3399", "level": "note", "message": {"text": "Legacy-named symbol `job_description_copy` in worker/pipeline/wp_job_publisher.py:22"}, "properties": {"repobilityId": "02afd04d12c15803", "scanner": "scanner-primary", "fingerprint": "a4d2b773012d3399", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-70d1bc72e647a36a", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/pipeline/wp_job_publisher.py:238"}, "properties": {"repobilityId": "c0a65b8f1ef0e52b", "scanner": "scanner-primary", "fingerprint": "70d1bc72e647a36a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aad6d4616067c66b", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in worker/pipeline/stage3_organic_copy.py:5"}, "properties": {"repobilityId": "78af53b9ea6f5859", "scanner": "scanner-primary", "fingerprint": "aad6d4616067c66b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2f87a55cd6e945e0", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage6_landing_pages.py:26"}, "properties": {"repobilityId": "f2aca6467389f0a4", "scanner": "scanner-primary", "fingerprint": "2f87a55cd6e945e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af8d2386a5dbf443", "level": "note", "message": {"text": "Legacy-named symbol `stage3_copy` in worker/pipeline/orchestrator.py:16"}, "properties": {"repobilityId": "2445e880d92c3092", "scanner": "scanner-primary", "fingerprint": "af8d2386a5dbf443", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e5d597951a8cb35", "level": "note", "message": {"text": "Legacy-named symbol `generate_copy` in worker/pipeline/stage3_copy.py:17"}, "properties": {"repobilityId": "d97b63bb87e67359", "scanner": "scanner-primary", "fingerprint": "1e5d597951a8cb35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-225982ddc93cf87d", "level": "note", "message": {"text": "Legacy-named symbol `country_v2` in worker/pipeline/hash_join.py:10"}, "properties": {"repobilityId": "2de71286e3b4cdb1", "scanner": "scanner-primary", "fingerprint": "225982ddc93cf87d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-862edefaf3baabbc", "level": "note", "message": {"text": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose_v2.py:94"}, "properties": {"repobilityId": "514b466dea915424", "scanner": "scanner-primary", "fingerprint": "862edefaf3baabbc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be230e26b56484dd", "level": "note", "message": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 worker/pipeline/stage4_compose_v2.py:443"}, "properties": {"repobilityId": "8f61d410d278505e", "scanner": "scanner-primary", "fingerprint": "be230e26b56484dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-dac483ad366451f9", "level": "note", "message": {"text": "Legacy-named symbol `_handle_copy` in worker/pipeline/handle_regenerate_asset.py:50"}, "properties": {"repobilityId": "2aaabce236e4b8aa", "scanner": "scanner-primary", "fingerprint": "dac483ad366451f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3bae698f40ee2387", "level": "note", "message": {"text": "Legacy-named symbol `channel_copy` in worker/pipeline/stage4_compose.py:86"}, "properties": {"repobilityId": "cac82918f8dd673b", "scanner": "scanner-primary", "fingerprint": "3bae698f40ee2387", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dc34f3f353d10b99", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/pipeline/stage4_compose.py:104"}, "properties": {"repobilityId": "b0cd4dfea6563e57", "scanner": "scanner-primary", "fingerprint": "dc34f3f353d10b99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75e68c667878583c", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker/pipeline/stage_organic_sync.py:145"}, "properties": {"repobilityId": "901c4eb1a927d1c2", "scanner": "scanner-primary", "fingerprint": "75e68c667878583c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55e956953f14a936", "level": "note", "message": {"text": "Legacy-named symbol `generate_graphic_copy` in worker/pipeline/stage4_graphic_copy.py:52"}, "properties": {"repobilityId": "fcce0d89b142b635", "scanner": "scanner-primary", "fingerprint": "55e956953f14a936", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-546df0ff96a983c2", "level": "note", "message": {"text": "Legacy-named symbol `flyer_copy` in worker/pipeline/_archived/stage4_organic_compose.py:59"}, "properties": {"repobilityId": "964916c71bfadca2", "scanner": "scanner-primary", "fingerprint": "546df0ff96a983c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9cdc70470b0adf06", "level": "note", "message": {"text": "Legacy-named symbol `_extract_best_copy` in worker/pipeline/_archived/stage4_reference_layout.py:60"}, "properties": {"repobilityId": "35c06bceb300ea8f", "scanner": "scanner-primary", "fingerprint": "9cdc70470b0adf06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f40a1b425380d5e2", "level": "note", "message": {"text": "Legacy-named symbol `stage4_graphic_copy` in worker/pipeline/_archived/stage4_compose_v3.py:50"}, "properties": {"repobilityId": "84ef1ff2a6fea219", "scanner": "scanner-primary", "fingerprint": "f40a1b425380d5e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a17584259cd54577", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/prompts/html_reference_templates.py:339"}, "properties": {"repobilityId": "3251feb974c2df0d", "scanner": "scanner-primary", "fingerprint": "a17584259cd54577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96ea3a6766c3f764", "level": "none", "message": {"text": "Commented-code block (8 lines) in worker/prompts/recruitment_copy.py:251"}, "properties": {"repobilityId": "c93c12e01672dafd", "scanner": "scanner-primary", "fingerprint": "96ea3a6766c3f764", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ff7d671a8efaccd", "level": "note", "message": {"text": "Legacy-named symbol `stage3_copy` in worker/prompts/project_context.py:53"}, "properties": {"repobilityId": "b80284e7eb349fc7", "scanner": "scanner-primary", "fingerprint": "5ff7d671a8efaccd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e483eaa7e44cd9bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/EditorClient.tsx:121"}, "properties": {"repobilityId": "4373352bbf3db4cf", "scanner": "scanner-primary", "fingerprint": "e483eaa7e44cd9bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d35ee37726096e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/content-hub/CanvasEditorClient.tsx:156"}, "properties": {"repobilityId": "d1a365ca2fbfc9e6", "scanner": "scanner-primary", "fingerprint": "0d35ee37726096e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5addfc19e1eb524b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardNav.tsx:18"}, "properties": {"repobilityId": "3b0bf9dc1e4d5d3d", "scanner": "scanner-primary", "fingerprint": "5addfc19e1eb524b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce85b1b7e5644cb1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/DashboardAiChat.tsx:63"}, "properties": {"repobilityId": "d8f1c29e1e16cf98", "scanner": "scanner-primary", "fingerprint": "ce85b1b7e5644cb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-14798d4741be7f8e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/insights/project-report/ProjectReportClient.tsx:119"}, "properties": {"repobilityId": "71fb146eeae84bb0", "scanner": "scanner-primary", "fingerprint": "14798d4741be7f8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5375790e384afdc0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/SourceAttribution.tsx:86"}, "properties": {"repobilityId": "33c74c18c004a6a0", "scanner": "scanner-primary", "fingerprint": "5375790e384afdc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8aa81bb5e5a512b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/DeepDiveClient.tsx:192"}, "properties": {"repobilityId": "ab5f393b423410df", "scanner": "scanner-primary", "fingerprint": "f8aa81bb5e5a512b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb6f9735d1ad847b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/DeepDiveClient.tsx:205"}, "properties": {"repobilityId": "6867b5159fad8c67", "scanner": "scanner-primary", "fingerprint": "cb6f9735d1ad847b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb19d72620602942", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/insights/deep-dive/path-explorer/layout.ts:147"}, "properties": {"repobilityId": "cf7c479b1368005d", "scanner": "scanner-primary", "fingerprint": "cb19d72620602942", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47f9527ab8bb2ca2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:128"}, "properties": {"repobilityId": "8cd14f44389184fe", "scanner": "scanner-primary", "fingerprint": "47f9527ab8bb2ca2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb1421314bdc769f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/PathExplorer.tsx:121"}, "properties": {"repobilityId": "728d1ca17505ccc5", "scanner": "scanner-primary", "fingerprint": "bb1421314bdc769f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-332c1d1c22eeeddf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/deep-dive/path-explorer/DrillDownPanel.tsx:17"}, "properties": {"repobilityId": "0333ee6139239ee4", "scanner": "scanner-primary", "fingerprint": "332c1d1c22eeeddf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbf484abe175abfb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/channel-intel/ChannelIntelClient.tsx:143"}, "properties": {"repobilityId": "ada9b798bd837119", "scanner": "scanner-primary", "fingerprint": "fbf484abe175abfb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e61960d4e83fea14", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/insights/post-apply/PostApplyPanel.tsx:158"}, "properties": {"repobilityId": "519c56b5c09b5ac6", "scanner": "scanner-primary", "fingerprint": "e61960d4e83fea14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-373793d4337ee055", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ContentIntelClient.tsx:80"}, "properties": {"repobilityId": "8c83939b1e7e2aca", "scanner": "scanner-primary", "fingerprint": "373793d4337ee055", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-daf1e244b7cd9d8c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/RecentlyTaggedPanel.tsx:21"}, "properties": {"repobilityId": "d28e6898d69f3846", "scanner": "scanner-primary", "fingerprint": "daf1e244b7cd9d8c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37d6c6997a5be4b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/insights/content-intel/ChannelSections.tsx:22"}, "properties": {"repobilityId": "8b9cc6a173f2376d", "scanner": "scanner-primary", "fingerprint": "37d6c6997a5be4b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63fcb1cfa3c0da25", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/campaign/OrganicMaterials.tsx:34"}, "properties": {"repobilityId": "8090a77add0be46b", "scanner": "scanner-primary", "fingerprint": "63fcb1cfa3c0da25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-148a6fe368fd3e1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/campaign/EditMode.tsx:73"}, "properties": {"repobilityId": "ac4a00e2730690c1", "scanner": "scanner-primary", "fingerprint": "148a6fe368fd3e1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b3b538c8be9a8b19", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/ApproveTab.tsx:50"}, "properties": {"repobilityId": "1a258de923d2761a", "scanner": "scanner-primary", "fingerprint": "b3b538c8be9a8b19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-022b8f2610172a2e", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/CopyChannelsTab.tsx:94"}, "properties": {"repobilityId": "58f4bb6614df65aa", "scanner": "scanner-primary", "fingerprint": "022b8f2610172a2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0587d8455cc8d0b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/marketing/CopyChannelsTab.tsx:271"}, "properties": {"repobilityId": "36c1df50bfb49775", "scanner": "scanner-primary", "fingerprint": "0587d8455cc8d0b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-32ba5949236080fb", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/marketing/MarketingCommandCenter.tsx:27"}, "properties": {"repobilityId": "52f0468156ddcbd2", "scanner": "scanner-primary", "fingerprint": "32ba5949236080fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0e6cb921df3f5109", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/intake/IntakeWizard.tsx:140"}, "properties": {"repobilityId": "ba1d79a3b530f2ac", "scanner": "scanner-primary", "fingerprint": "0e6cb921df3f5109", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-132c232d29c55924", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/SeedreamEditor.tsx:169"}, "properties": {"repobilityId": "e7966d9fd6ecd638", "scanner": "scanner-primary", "fingerprint": "132c232d29c55924", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7202243f7d7a2c21", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/dashboard/DesignerDashboard.tsx:47"}, "properties": {"repobilityId": "7f3571437872bbe1", "scanner": "scanner-primary", "fingerprint": "7202243f7d7a2c21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9afd897d5c45f385", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/gallery/DesignerGalleryPanel.tsx:45"}, "properties": {"repobilityId": "aa0997990ead5e8d", "scanner": "scanner-primary", "fingerprint": "9afd897d5c45f385", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0222d1c5c1d7de69", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/QuickEditor.tsx:136"}, "properties": {"repobilityId": "1e056efb874ae240", "scanner": "scanner-primary", "fingerprint": "0222d1c5c1d7de69", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f07c8e1601537e3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/edit/RegenerateModal.tsx:92"}, "properties": {"repobilityId": "ef84364df434229d", "scanner": "scanner-primary", "fingerprint": "7f07c8e1601537e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb1e9a07f0091afd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/designer/figma/ManualUpload.tsx:209"}, "properties": {"repobilityId": "3d38d57eefeceb5c", "scanner": "scanner-primary", "fingerprint": "bb1e9a07f0091afd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-424c7fb4c931c096", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/CopyLibrary.tsx:138"}, "properties": {"repobilityId": "d8c9b6bbf92acfac", "scanner": "scanner-primary", "fingerprint": "424c7fb4c931c096", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e07fabe3f532a9c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/CopyLibrary.tsx:315"}, "properties": {"repobilityId": "43e8ca7d678b617b", "scanner": "scanner-primary", "fingerprint": "9e07fabe3f532a9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-076220490d04c1f3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/recruiter/PaidMediaModal.tsx:93"}, "properties": {"repobilityId": "f652838238ab5ed6", "scanner": "scanner-primary", "fingerprint": "076220490d04c1f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b1001749bda6933", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/components/recruiter/ChannelStrategy.tsx:35"}, "properties": {"repobilityId": "880956254cc7912b", "scanner": "scanner-primary", "fingerprint": "3b1001749bda6933", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93daa28e99ba4e1f", "level": "note", "message": {"text": "Legacy-named symbol `flyer_copy` in src/components/recruiter/RequestAssetsModal.tsx:47"}, "properties": {"repobilityId": "615b00c1b4cd6875", "scanner": "scanner-primary", "fingerprint": "93daa28e99ba4e1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a84ea83b09d9d6eb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/auth/linkedin/callback/route.ts:24"}, "properties": {"repobilityId": "8949965dd416fe8e", "scanner": "scanner-primary", "fingerprint": "a84ea83b09d9d6eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ad2a69e5c3b055c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/keywords/route.ts:12"}, "properties": {"repobilityId": "7ce413e7e689862a", "scanner": "scanner-primary", "fingerprint": "0ad2a69e5c3b055c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59dad938ba4422fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/gsc/pages/route.ts:12"}, "properties": {"repobilityId": "b86f4d989dfa7617", "scanner": "scanner-primary", "fingerprint": "59dad938ba4422fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-26baf43e1712a501", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/projects/[id]/post-apply-funnel/route.ts:5"}, "properties": {"repobilityId": "cbd6415ec1ff8628", "scanner": "scanner-primary", "fingerprint": "26baf43e1712a501", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31cddacac90b0263", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-funnel/route.ts:22"}, "properties": {"repobilityId": "c0eb7bd58b498aba", "scanner": "scanner-primary", "fingerprint": "31cddacac90b0263", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bc844176c578d68", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/subprojects/route.ts:37"}, "properties": {"repobilityId": "cc985a1c59f6eb23", "scanner": "scanner-primary", "fingerprint": "0bc844176c578d68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0e987bd8d844acb6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:5"}, "properties": {"repobilityId": "f0cfaa0c9bee4e0d", "scanner": "scanner-primary", "fingerprint": "0e987bd8d844acb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d320bb6092f3132", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-funnel/route.ts:23"}, "properties": {"repobilityId": "2a4817cf97dd6330", "scanner": "scanner-primary", "fingerprint": "5d320bb6092f3132", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85f7ab09e7b7203c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/demographic-fill/route.ts:21"}, "properties": {"repobilityId": "3d3935dc4b4875c6", "scanner": "scanner-primary", "fingerprint": "85f7ab09e7b7203c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8c338cd4569e885", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/locales/route.ts:13"}, "properties": {"repobilityId": "caa21612adfcbf24", "scanner": "scanner-primary", "fingerprint": "d8c338cd4569e885", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cae1cfe93feca7e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/projects/[id]/funnel-path/route.ts:5"}, "properties": {"repobilityId": "0266ccfd1255d601", "scanner": "scanner-primary", "fingerprint": "cae1cfe93feca7e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e5ce8af7c08060e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/funnel-path/route.ts:22"}, "properties": {"repobilityId": "bbf054a71f8acbb8", "scanner": "scanner-primary", "fingerprint": "2e5ce8af7c08060e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eca7e0e9c47301d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/cities/route.ts:13"}, "properties": {"repobilityId": "c1e87ebeedd5e0ed", "scanner": "scanner-primary", "fingerprint": "eca7e0e9c47301d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6066e38740834b3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/post-apply-by-day/route.ts:20"}, "properties": {"repobilityId": "aef893bb96a4bdf2", "scanner": "scanner-primary", "fingerprint": "c6066e38740834b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f5e530871364f6e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/ga4-funnel/route.ts:14"}, "properties": {"repobilityId": "b6ed8dd774bad602", "scanner": "scanner-primary", "fingerprint": "0f5e530871364f6e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0e6327f47b297836", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/path/route.ts:16"}, "properties": {"repobilityId": "dd11584ec02b4060", "scanner": "scanner-primary", "fingerprint": "0e6327f47b297836", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-078f116859994864", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/centaurus-kids-path/route.ts:21"}, "properties": {"repobilityId": "7c6a2b8df2246aa1", "scanner": "scanner-primary", "fingerprint": "078f116859994864", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6053c9d45a2a6dfe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/projects/[id]/countries/route.ts:13"}, "properties": {"repobilityId": "17135bc6daf1c3ce", "scanner": "scanner-primary", "fingerprint": "6053c9d45a2a6dfe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-562455fa2f902eba", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/content-hub/chat/route.ts:1"}, "properties": {"repobilityId": "26902fefe67f339b", "scanner": "scanner-primary", "fingerprint": "562455fa2f902eba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-037d5f5d77669662", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/chat/route.ts:73"}, "properties": {"repobilityId": "e44ce9f65a19d772", "scanner": "scanner-primary", "fingerprint": "037d5f5d77669662", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-529703e1a7392b38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content-hub/llm/stream/route.ts:169"}, "properties": {"repobilityId": "bef6d28a42433e5d", "scanner": "scanner-primary", "fingerprint": "529703e1a7392b38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-402d119e3158badc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/insights/__tests__/pressure-tests.test.ts:260"}, "properties": {"repobilityId": "2cc5ffa6121725e5", "scanner": "scanner-primary", "fingerprint": "402d119e3158badc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a29b638346ff411d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/city-breakdown/route.ts:17"}, "properties": {"repobilityId": "fd4c3fde9fcae2fc", "scanner": "scanner-primary", "fingerprint": "a29b638346ff411d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0420838825e43ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/utm-content/route.ts:17"}, "properties": {"repobilityId": "3a42720432bcada1", "scanner": "scanner-primary", "fingerprint": "a0420838825e43ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed72d60efd74c5be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/funnel/route.ts:16"}, "properties": {"repobilityId": "92ce7acc325f38cb", "scanner": "scanner-primary", "fingerprint": "ed72d60efd74c5be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d56a18887cd2dd1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/insights/hash-attribution/user-drilldown/route.ts:5"}, "properties": {"repobilityId": "38155baaa148ee8a", "scanner": "scanner-primary", "fingerprint": "5d56a18887cd2dd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6715db4b5405aac0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/insights/hash-attribution/user-drilldown/route.ts:20"}, "properties": {"repobilityId": "29b18fb719ba174f", "scanner": "scanner-primary", "fingerprint": "6715db4b5405aac0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a54897739f17e719", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/chat/route.ts:78"}, "properties": {"repobilityId": "4465fb2edbcef5ba", "scanner": "scanner-primary", "fingerprint": "a54897739f17e719", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc9fdc27d26cd2f9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/ads/route.ts:12"}, "properties": {"repobilityId": "3eff821fdf59a1ef", "scanner": "scanner-primary", "fingerprint": "cc9fdc27d26cd2f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3048f154994394fe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/meta/organic-posts/route.ts:12"}, "properties": {"repobilityId": "65c86bc81b6ba556", "scanner": "scanner-primary", "fingerprint": "3048f154994394fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db2cbaba9051b3c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/social/followers/route.ts:12"}, "properties": {"repobilityId": "13bf0324e3da89b8", "scanner": "scanner-primary", "fingerprint": "db2cbaba9051b3c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c471683c2f8667d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/extract/rfp/route.ts:15"}, "properties": {"repobilityId": "35ede8c771847761", "scanner": "scanner-primary", "fingerprint": "5c471683c2f8667d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a4e8b2fd7547e71", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/cron/sync-projects/route.ts:233"}, "properties": {"repobilityId": "e75d1fb5d7d44885", "scanner": "scanner-primary", "fingerprint": "4a4e8b2fd7547e71", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11d2009ee0cee92a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/channel-summary/route.ts:20"}, "properties": {"repobilityId": "f9935dee031ad412", "scanner": "scanner-primary", "fingerprint": "11d2009ee0cee92a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b22e2b6bb0f1572", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/insights/route.ts:13"}, "properties": {"repobilityId": "b336cb097dc93f15", "scanner": "scanner-primary", "fingerprint": "4b22e2b6bb0f1572", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-13cfe6495ace21e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/feed/route.ts:15"}, "properties": {"repobilityId": "48430c3252c9c66f", "scanner": "scanner-primary", "fingerprint": "13cfe6495ace21e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5865f31bedaa31f8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/content/tag/route.ts:20"}, "properties": {"repobilityId": "bab53a00ebb619ae", "scanner": "scanner-primary", "fingerprint": "5865f31bedaa31f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df233df64350de16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/revise/route.ts:63"}, "properties": {"repobilityId": "99d588e9ace49dfc", "scanner": "scanner-primary", "fingerprint": "df233df64350de16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-72bee8e22f19ce4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/ga4/landing-pages/route.ts:12"}, "properties": {"repobilityId": "d5326d9e9ee77c3c", "scanner": "scanner-primary", "fingerprint": "72bee8e22f19ce4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c29a84c3aaa190e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/api/figma/__tests__/flow.test.ts:258"}, "properties": {"repobilityId": "66f8908350e8b0b0", "scanner": "scanner-primary", "fingerprint": "0c29a84c3aaa190e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-400821fcdeaf3dfb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/countries/route.ts:12"}, "properties": {"repobilityId": "f09d03ca57fb2df0", "scanner": "scanner-primary", "fingerprint": "400821fcdeaf3dfb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-441c13ef331194e8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/insights/public/[token]/page.tsx:21"}, "properties": {"repobilityId": "ab697aa5ebbf45fb", "scanner": "scanner-primary", "fingerprint": "441c13ef331194e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4be8139d1f4efb06", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/artifacts/page.tsx:229"}, "properties": {"repobilityId": "d220d9e925c5add0", "scanner": "scanner-primary", "fingerprint": "4be8139d1f4efb06", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00a03bb281fb88ff", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/app/intake/[id]/page.tsx:379"}, "properties": {"repobilityId": "81b51f6644eb9383", "scanner": "scanner-primary", "fingerprint": "00a03bb281fb88ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b4aa064485fa64da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/intake/[id]/page.tsx:966"}, "properties": {"repobilityId": "55782482f040f915", "scanner": "scanner-primary", "fingerprint": "b4aa064485fa64da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7cba72deef440a92", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/lp/[slug]/route.ts:63"}, "properties": {"repobilityId": "e1452552ab2f77e8", "scanner": "scanner-primary", "fingerprint": "7cba72deef440a92", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-368fbce17055a0b4", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/app/recruiter/page.tsx:46"}, "properties": {"repobilityId": "0fdbf4009e24dfef", "scanner": "scanner-primary", "fingerprint": "368fbce17055a0b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c0ec99b2c26ee024", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/edit-executor.ts:52"}, "properties": {"repobilityId": "2037360c883e6382", "scanner": "scanner-primary", "fingerprint": "c0ec99b2c26ee024", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-484ecfef050a88a5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/azure-auth.ts:35"}, "properties": {"repobilityId": "1af4b7947eaa84ab", "scanner": "scanner-primary", "fingerprint": "484ecfef050a88a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d7665ef750033e67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/openrouter.ts:2"}, "properties": {"repobilityId": "ce671d167902a486", "scanner": "scanner-primary", "fingerprint": "d7665ef750033e67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e1762abf8c514c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/nim.ts:69"}, "properties": {"repobilityId": "72fbf3c8c56fdfae", "scanner": "scanner-primary", "fingerprint": "8e1762abf8c514c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86e6396aa4145637", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/azure-blob.ts:1"}, "properties": {"repobilityId": "8289dc6174353e8f", "scanner": "scanner-primary", "fingerprint": "86e6396aa4145637", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5567364fc04fc9a5", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/lib/types.ts:215"}, "properties": {"repobilityId": "0362446ed0b01a87", "scanner": "scanner-primary", "fingerprint": "5567364fc04fc9a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5970e4bfb088b925", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/__tests__/figma-helpers.test.ts:44"}, "properties": {"repobilityId": "a1a85f49c941db95", "scanner": "scanner-primary", "fingerprint": "5970e4bfb088b925", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec9a0c3c72980aa8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/__tests__/figma-roundtrip.test.ts:171"}, "properties": {"repobilityId": "4890cade76622a1d", "scanner": "scanner-primary", "fingerprint": "ec9a0c3c72980aa8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a2dd0b1e3c7a8ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/platforms/meta-ads.ts:58"}, "properties": {"repobilityId": "dabd0472fb90cfbc", "scanner": "scanner-primary", "fingerprint": "4a2dd0b1e3c7a8ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46c27d5212e01d1f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/notifications/slack.ts:11"}, "properties": {"repobilityId": "f293d082b1168f92", "scanner": "scanner-primary", "fingerprint": "46c27d5212e01d1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97b48e2794a489b7", "level": "note", "message": {"text": "Legacy-named symbol `generate_oneforma_playbook_v2` in src/lib/content/brand-bible.ts:2"}, "properties": {"repobilityId": "8f581ac43c39f37d", "scanner": "scanner-primary", "fingerprint": "97b48e2794a489b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d086aacb2a5854cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/content/brand-bible.ts:1"}, "properties": {"repobilityId": "f39fdddc4fff4b83", "scanner": "scanner-primary", "fingerprint": "d086aacb2a5854cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd19f983b412fc1b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/content/image.ts:1"}, "properties": {"repobilityId": "089ff2b759a9aab6", "scanner": "scanner-primary", "fingerprint": "dd19f983b412fc1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3d592abab31e98b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/image.ts:107"}, "properties": {"repobilityId": "db55e91f8ef5b4c0", "scanner": "scanner-primary", "fingerprint": "d3d592abab31e98b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0682c7b448d55c41", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/content/seo-client.ts:4"}, "properties": {"repobilityId": "fda845b4730b2990", "scanner": "scanner-primary", "fingerprint": "0682c7b448d55c41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea35eb94de62a7ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-client.ts:108"}, "properties": {"repobilityId": "656f4158ffa8b52d", "scanner": "scanner-primary", "fingerprint": "ea35eb94de62a7ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bdec2928116cbd84", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/swarm.ts:122"}, "properties": {"repobilityId": "c384dc6cb870061a", "scanner": "scanner-primary", "fingerprint": "bdec2928116cbd84", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df44fba5773540cf", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/content/seo-planner.ts:3"}, "properties": {"repobilityId": "39dbe62208d3917d", "scanner": "scanner-primary", "fingerprint": "df44fba5773540cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a937f6308fc88c4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/seo-planner.ts:119"}, "properties": {"repobilityId": "bdaeff0a0c2da82a", "scanner": "scanner-primary", "fingerprint": "a937f6308fc88c4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea27fa614ad0da56", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/content/llm.ts:460"}, "properties": {"repobilityId": "576f8fc648fcb84c", "scanner": "scanner-primary", "fingerprint": "ea27fa614ad0da56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cd3a899b401d386", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/llm.ts:191"}, "properties": {"repobilityId": "5108ca5dc5704449", "scanner": "scanner-primary", "fingerprint": "0cd3a899b401d386", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45bb829acbbf9643", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/content/publish/index.ts:23"}, "properties": {"repobilityId": "24c7b996c3544f20", "scanner": "scanner-primary", "fingerprint": "45bb829acbbf9643", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc52f2e388826bae", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/content/research/fetcher.ts:3"}, "properties": {"repobilityId": "ae036dfbaa492518", "scanner": "scanner-primary", "fingerprint": "cc52f2e388826bae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3085bfcf3446f17", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/summarizer.ts:69"}, "properties": {"repobilityId": "bb0d1e3093eb66d4", "scanner": "scanner-primary", "fingerprint": "b3085bfcf3446f17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5857c52b4a47f2bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/search.ts:49"}, "properties": {"repobilityId": "6d9e0c5a873e9a7c", "scanner": "scanner-primary", "fingerprint": "5857c52b4a47f2bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-504681c56f76c1c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/content/research/pipeline.ts:3"}, "properties": {"repobilityId": "285ffa7d42f3e146", "scanner": "scanner-primary", "fingerprint": "504681c56f76c1c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-caded4ebb79e68e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/content/skills/index.ts:81"}, "properties": {"repobilityId": "7bdd863385ca4e57", "scanner": "scanner-primary", "fingerprint": "caded4ebb79e68e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7746a86f69c01fce", "level": "note", "message": {"text": "Legacy-named symbol `job_portal_copy` in src/lib/db/schema.ts:228"}, "properties": {"repobilityId": "ab45b302f24564be", "scanner": "scanner-primary", "fingerprint": "7746a86f69c01fce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0170d0d9dc6c5bef", "level": "note", "message": {"text": "123 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "8c92510c455d7e60", "scanner": "scanner-primary", "fingerprint": "0170d0d9dc6c5bef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6511744f3b7d5d4a", "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": "4c9adfc9086d0ea5", "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": "463228e08647c617", "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": "01695b56cf92c12e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "cdd26e3243e1ff1f", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "22f81cf70d2a6381", "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": "4ba05071b9c0f349", "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": "2a401f4d6282bb87", "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": "16e79dde6b6534b2", "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": "79a443e8592a4982", "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": "8a75c2ef907eef13", "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": "ebeeeac7d03fd19b", "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": "04ada4def3885b8e", "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": "c0d420984a024672", "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": "5c2321bfc9670721", "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": "1c2da3b5b82950b7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "aa6844ccce40ae04", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "f670639fe5190bb6", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-fe1d9311d6aee734", "level": "note", "message": {"text": "Near-duplicate function bodies in 12 places"}, "properties": {"repobilityId": "be6d299ebb69e1be", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "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": "806037cee227d6a3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}