{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "foundry_unresolved_feedback", "name": "Foundry mined unresolved feedback: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#8\nRepo: rahmanef63/resource-site\nIssue/PR number: 8\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_ou"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#55\nRepo: rahmanef63/resource-site\nIssue/PR number: 55\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 56\nNode types: {'pr_file': 12, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#9\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#9\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1af417b14147d8e3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad"}, "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: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined test ci gap after feedback: rahmanef63/resource-site"}, "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: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#56\nRepo: rahmanef63/resource-site\nIssue/PR number: 56\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 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: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined schema ui api mismatch: rahmanef63/resource-site"}, "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: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#57\nRepo: rahmanef63/resource-site\nIssue/PR number: 57\nGraph consistency label: weak_supervision_needs_review\nNodes: 36\nEdges: 62\nNode types: {'pr_file': 22, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outc"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#8\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d86f57daa218cd20\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#6\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#6\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#6\nRepo: rahmanef63/resource-site\nIssue/PR number: 6\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 17\nNode types: {'commit': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file'"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: rahmanef63/resource-site", "shortDescription": {"text": "Foundry mined mock as real or placeholder: rahmanef63/resource-site"}, "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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#50\nRepo: rahmanef63/resource-site\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-de051d89c3c22013", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-item.tsx:173", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-item.tsx:173"}, "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-f705c8346a873c90", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-crumbs.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-crumbs.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d14ed9df5698c9f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-details.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-details.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-cbeaef3cb6d6f5d2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/files-sidebar.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/files-sidebar.tsx:83"}, "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-a211b5323a19bb69", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/index.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/index.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-85031295849f3698", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/dir.tsx:143", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/dir.tsx:143"}, "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-3e2e4de2fb295321", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/PendingInvites.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/PendingInvites.tsx:35"}, "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-63bbfa7bcd3068d0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamsPanel.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamsPanel.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f18d2127a077c24b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/AccessMatrix.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/AccessMatrix.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-f28f40bc384b2ce2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamDetail.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamDetail.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-e874e912d4c01905", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/MembersTable.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/MembersTable.tsx:74"}, "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-6c622c0dfcfb4d84", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CheckoutSummary.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CheckoutSummary.tsx:21"}, "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-b064c631f04926ca", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CartWidget.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CartWidget.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-7779bf3842c605bc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/CommandPalette.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/CommandPalette.tsx:126"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9ec693c703bc6f2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/SearchModal.tsx:151", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/SearchModal.tsx:151"}, "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-77aa89d5160f20f9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/palette/CommandGroups.tsx:5", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/palette/CommandGroups.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-e3ac6d6a613e3fbc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:37"}, "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-250f41130c720b04", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:163"}, "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-20d8e5b55a838c20", "name": "Stray `console.log` in TS/JS \u2014 frontend/slices/icon-picker/lib/lucide-icons.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/icon-picker/lib/lucide-icons.ts:19"}, "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-f44b3ea876b73ef8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/theme-presets/components/ThemePresetSwitcher.tsx:15", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/theme-presets/components/ThemePresetSwitcher.tsx:157"}, "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-74f9b67d6dea48e9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/SlashMenu.tsx:137", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/SlashMenu.tsx:137"}, "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-54c3a7f7045d34f7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/row-properties/PropertyNameCel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/row-properties/PropertyNameCell.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a8a62e8a541cd5e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/components/MentionTypeahead.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/components/MentionTypeahead.tsx:149"}, "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-4a7a175251cd2726", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MoveToSubmenu.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MoveToSubmenu.tsx:85"}, "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-00564ca6d57947b3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MenuRows.tsx:11", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MenuRows.tsx:11"}, "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-6b45d31dd58747c8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/TocBlock.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/TocBlock.tsx:75"}, "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-76c095e33537f7f0", "name": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/NestedBlockControls.tsx:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/NestedBlockControls.tsx:95"}, "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-bfc1bc8c2c2b6902", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/NestedCont", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/NestedContent.tsx:118"}, "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-1f4a9d70f7afd75c", "name": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/handlers.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/handlers.ts: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-1670603c00e50dbd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.tsx:52"}, "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-65869b8bd03def46", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/Subpages.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/Subpages.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be1070b09661694a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion/shared/lib/katex-lazy.tsx:45", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion/shared/lib/katex-lazy.tsx:45"}, "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-d09dafc64c07e1bf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bf697afa3cc6f8f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.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-5567f97f257a3708", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.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-cc35a536d2f01be7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files/components/FileChip.tsx:27", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files/components/FileChip.tsx:27"}, "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-9cf1d2b6fb4d1a2d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/UnsplashTab.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/UnsplashTab.tsx:80"}, "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-9112a6c077cae28c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/Subpages.tsx:36", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/Subpages.tsx:36"}, "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-2e491914c2677b75", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/MentionTypeahead.tsx:124", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/MentionTypeahead.tsx:124"}, "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-795de957c4f720c7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/SlashMenu.tsx:87", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/SlashMenu.tsx:87"}, "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-6c3091663af19c34", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/PageBreadcrumbs.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/PageBreadcrumbs.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-6643da82000656c1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/EquationBlock.tsx:2", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/EquationBlock.tsx:28"}, "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-2c4f18fd3b7bba7f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96"}, "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-8e5a20c331cc39f7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/EmbedRenderer.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/EmbedRenderer.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-980c3510c5878089", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/PageLinkBlock.tsx:21", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/PageLinkBlock.tsx:21"}, "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-c52ff6838f981611", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/FilterBuilder-value.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/FilterBuilder-value.tsx:89"}, "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-0b25e6f1fd52bc43", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionProperty.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionProperty.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ab1d10333f4e82e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/ColumnHeaderMenu.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/ColumnHeaderMenu.tsx:83"}, "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-ec78375636ffc011", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionDatabase.tsx:135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionDatabase.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-c37ce5e95afd4362", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/io/csv-mapping.tsx:39", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/io/csv-mapping.tsx:39"}, "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-9db6c8097e7e7d97", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/column-header/items.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/column-header/items.tsx:25"}, "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-4711ed253f5fe4a7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/RelationCell.tsx:9", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/RelationCell.tsx:92"}, "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-4611148b1209cc65", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/PersonCell.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/PersonCell.tsx:51"}, "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-d5dcc2d87751fb3c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/FilesCell.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/FilesCell.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d574ea06c7d8e94", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/DateCell.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/DateCell.tsx:74"}, "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-bcde83b2e09f1c56", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/LinkCell.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/LinkCell.tsx:57"}, "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-2386c91552bd329d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/FeedView.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/FeedView.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-dc94a3837864ce86", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TableView.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TableView.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b256f0cbe0080c6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/timeline-bar.tsx:9", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/timeline-bar.tsx:90"}, "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-750b01042521ef91", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/DashboardView.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/DashboardView.tsx:125"}, "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-01ef810ffea25ff7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TimelineView.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TimelineView.tsx:151"}, "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-dd93cb3edf947736", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalcFooter.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalcFooter.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ebbf3faf88249d6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/GalleryView.tsx:45", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/GalleryView.tsx:45"}, "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-ccf55c697c7476d4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/dashboard-parts.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/dashboard-parts.tsx:43"}, "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-aff734f0275d3948", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/MapView.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/MapView.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-d6ffdc6b8a27b905", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/form-settings.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/form-settings.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-8f1e77d7a63a0ec9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalendarView.tsx:8", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalendarView.tsx:81"}, "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-3501d2db96d282d7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/ListView.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/ListView.tsx:35"}, "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-bbca04dacd470096", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.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-01a636388060a9ab", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.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-64de2c73d9303ec7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101"}, "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-65e8d39f734be85e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89"}, "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-7699406eb87ce30f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37"}, "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-fcb822bc88726875", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.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-3a1dae9968a8f8f2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.tsx:134", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.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-696f645eb376d73d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-switcher.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-switcher.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-27f38451f7e6bcac", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:85"}, "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-186617a68a4b5998", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140"}, "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-cfad86aec5ec0fc7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:148", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:148"}, "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-23ddb43cf20fcc6e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:62"}, "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-dec0a507ae00eb0d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.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-48afcfc052c60288", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.tsx:142"}, "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-c84a6ab065c7c47a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cda03fe8ee3ce264", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.tsx:4", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.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-31b7f5683f7e578e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.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-6c77237946a9a873", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:105"}, "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-ac64aa23bffa02f1", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-part", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-parts.tsx:46"}, "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-9118087dd0855294", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-island.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f7c1d59681dbad1", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets.tsx:67"}, "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-ee3e79a04aa51877", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight.tsx:169"}, "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-1719f1bc9448988e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-ov", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-overlay.tsx:81"}, "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-88940ceae3cf7623", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.tsx:37"}, "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-66a19a39b567d3f7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110"}, "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-f84fa56f9a3f3094", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.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-7b127bf3c656fd6a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:69", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:69"}, "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-54169f084f283a93", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/components/MermaidBlock.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/components/MermaidBlock.tsx:52"}, "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-48d8629dc5a033bc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/lib/katex-lazy.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/lib/katex-lazy.tsx:44"}, "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-7bd534b2e9224673", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.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-422148c6347c530c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:65", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:65"}, "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-1cc0386ba0ec649a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.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-7d72b59d36f873c6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2f82bbd51c07bda", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/create-app.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/create-app.tsx:115"}, "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-57f4ae7a111dff62", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3b8cab3f1938456", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45"}, "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-e919a8c6d7146463", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.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-95885dd3132a5cb0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.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-7d30ab093f8705b3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.tsx:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.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-63376749717d078b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:101"}, "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-6ba0421ab37ac02b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:37"}, "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-3f9010db674f09e0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:90"}, "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-0207874d6b5b5acd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98"}, "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-7a7d69c2d0818c13", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx:36"}, "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-306ac7344fd5de98", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85"}, "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-4091f42f5922e97c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163"}, "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-d9e74bb81dfdc95b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156"}, "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-96babb5b9aa4c225", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.tsx:71", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.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-f31ebf092f03b8c9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52"}, "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-b24d722ec469cbfe", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.tsx:31", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.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-55a75372a1029b01", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d19aad7c364c958", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:88", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:88"}, "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-58d61a3e5d5119d0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/index.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/index.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-8196803000831d56", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/dir.tsx:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/dir.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ee3c790f905d67f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:137", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:137"}, "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-ca720114064224bb", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/seo/slice.contract.ts:36", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/seo/slice.contract.ts:36"}, "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-6c0b861d7f37ea78", "name": "TODO/FIXME marker in shipping code \u2014 tests/e2e/site.spec.ts:48", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 tests/e2e/site.spec.ts:48"}, "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-4adf74bee79c35a1", "name": "`truncate` class without `title=` for hover reveal \u2014 shared/ui/FileUpload/FileUpload.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 shared/ui/FileUpload/FileUpload.tsx:140"}, "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-625505dc293402b6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 shared/lib/sanitizeHtml.ts:5", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 shared/lib/sanitizeHtml.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-e0c61f5362ee1929", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/slices/initFeatureSettings.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/slices/initFeatureSettings.ts:18"}, "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-f8fed84e322192e6", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/renderer/components/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/renderer/components/Renderer.tsx:197"}, "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-e7213eea8e61b00c", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/No", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/NodeContextMenu.tsx:100"}, "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-c52c45d4dc2f428b", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/Gr", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/GroupNode.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-138176687be14100", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/Sh", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/ShadcnNode.tsx:137"}, "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-c896581aa744d0fd", "name": "Icon-only button without accessible name \u2014 template-base/frontend/slices/studio/ui/slices/inspector/components/AIGenerat", "shortDescription": {"text": "Icon-only button without accessible name \u2014 template-base/frontend/slices/studio/ui/slices/inspector/components/AIGenerationModal.tsx:52"}, "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-01e07d3a8164a04e", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/widgets/ui/navItem/manifest", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/widgets/ui/navItem/manifest.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6927edf5272ede6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/slices/studio/ui/lib/converters.ts:556", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/slices/studio/ui/lib/converters.ts:556"}, "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-4cd0312daec3dc23", "name": "Custom React Flow node registered without explicit width/height \u2014 template-base/frontend/slices/studio/ui/hooks/__tests_", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 template-base/frontend/slices/studio/ui/hooks/__tests__/useConvexCMSPersistence.test.ts:185"}, "fullDescription": {"text": "When you register a custom node type via `nodeTypes`, the RFNode object you build must include `width` and `height` props. Without them, MiniMap renders ZERO mini-nodes for that type and `fitView` underestimates the bounds (cuts off lane labels, etc.). Add `width: \u2026, height: \u2026` to the node object. See P-I.\n\nWhy: P-I in CHECKLIST.md \u2014 RF MiniMap + fitView need explicit dims on custom nodes.\nRule id: fq.rfnode.no-dims"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-091b7e8f3df663a5", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/BuilderDashboard.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/BuilderDashboard.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-e77b2a0d2e25685c", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/TemplatesGallery.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/TemplatesGallery.tsx:178"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03684917ea2fd889", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/AutomationNode.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/AutomationNode.tsx:115"}, "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-04e85ccf3485b56c", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/StudioAIModelPicker", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/StudioAIModelPicker.tsx:82"}, "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-240ef2c0c6a6cdde", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/studio/lib/__tests__/schemaToHtml.test.ts:292", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/studio/lib/__tests__/schemaToHtml.test.ts:292"}, "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-7da211c90c2225c5", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/workflo", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/workflow/schema/n8n-converter.ts:312"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17314868fc58f955", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/pages/S", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/pages/StudioPage.tsx:369"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-031c4b41bafeec1b", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/views/StudioEditorTabs.tsx:202", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/views/StudioEditorTabs.tsx:202"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d58e18c65da7343", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/example/settings/index.ts:73", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/example/settings/index.ts:73"}, "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-e6a073e4e4eab9de", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/reports/hooks/useReports.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/reports/hooks/useReports.ts:14"}, "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-3c8fc6ffce6a0997", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/ContextBad", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/ContextBadge.tsx:42"}, "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-3536eb5714a0735a", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/MenuSetPic", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/MenuSetPicker.tsx:90"}, "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-7f6becab29deb9e2", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/WorkspaceS", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/WorkspaceSwitcher.tsx:108"}, "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-a491da84a6e856e8", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/MenusTab.tsx:12", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/MenusTab.tsx:129"}, "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-772a90eb0a3b59ce", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/TreeTab.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/TreeTab.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-5c78d7a856418ba7", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/workspace/HierarchySettings.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/workspace/HierarchySettings.tsx:628"}, "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-e195d38a1d88351b", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsButton.tsx:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsButton.tsx:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdcba219e05c81b4", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPa", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPanel.tsx:173"}, "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-f623c0e2da29baaf", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPanel.tsx:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPanel.tsx:63"}, "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-6ed5d2814b34b782", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsLi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsListPanel.tsx:245"}, "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-61dc9dbb9e0e7554", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/DynamicSettingsSi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/DynamicSettingsSidebar.tsx:119"}, "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-de28541d6b0ffa12", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/comprehensive/layout.tsx:428", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/comprehensive/layout.tsx:428"}, "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-87fc7353f2618b25", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ai/components/AgentSelector.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ai/components/AgentSelector.tsx:56"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e37c200d9d1596d4", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/SlashCommands", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/SlashCommands.tsx:395"}, "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-807ee141921b6b49", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/AttachmentMen", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/AttachmentMenu.tsx:137"}, "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-7bc8c147d7109534", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/UniversalComp", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/UniversalComposer.tsx:504"}, "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-15c252136b8b1124", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/Mentions.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/Mentions.tsx:288"}, "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-2464a435f35961e2", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/message/UnifiedMessage", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/message/UnifiedMessageBubble.tsx:300"}, "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-6a21e789c789fb6d", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/sources.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/sources.tsx:127"}, "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-220fa9893c00bed7", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/prompt-i", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/prompt-input.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-4400a51375f867da", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/inline-c", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/inline-citation.tsx:339"}, "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-078ba1af63a2e357", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/grok-chat/i", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/grok-chat/index.tsx:511"}, "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-cb71b497db037cce", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/config/commandRegistry.ts:18", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/config/commandRegistry.ts:18"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1de0e8944048cd5b", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/ChatHe", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/ChatHeader.tsx:80"}, "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-18b24386248b0eb3", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/components/ChatInput.tsx:84", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/components/ChatInput.tsx:84"}, "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-4932879578bb0c5b", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member/sections/GroupsSection.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-5b5a19e99b7a1299", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member/sections/FilesSection.tsx:58"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c94dbdbf5faf3b14", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:61", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:61"}, "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-332355beb53cb193", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/chatClient.ts:32", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/chatClient.ts:32"}, "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-db71034d266a22db", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/ogPreview.ts:27", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/ogPreview.ts:27"}, "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-76f53f8cc23aa30b", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChatPresence.ts:49", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChatPresence.ts:49"}, "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-746b132df2b9a535", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChat.ts:299", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChat.ts:299"}, "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-8dd95ea8ca0884d3", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useMessageActions.ts:169", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useMessageActions.ts:169"}, "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-149c89df23325a04", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/conversation/Conversat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/conversation/ConversationListCard.tsx:287"}, "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-a54319c2523f7ece", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileProf", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileProfileSheet.tsx:69"}, "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-290040af7bf14db1", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileDash", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileDashboardDock.tsx:115"}, "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-8f69c52e4e81edbb", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileTopB", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileTopBar.tsx:130"}, "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-13b16385a4233c1f", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileWork", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileWorkspaceLauncher.tsx:152"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b3bcc9183695bf1", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobilePort", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobilePortalHome.tsx:433"}, "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-26fc67fac9248dd9", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/split-view/SplitV", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/split-view/SplitView.tsx:121"}, "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-68868b713fb95263", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/Feat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/FeatureThreeColumnLayout.tsx:156"}, "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-fd1b7b813a850ea3", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/mobi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/mobile/MobileHeader.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-de6faaab596fecbe", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/EnhancedWorkspaceSwitcher.tsx:199"}, "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-ae165f2ab55d430d", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/WorkspaceSwitcherStack.tsx:190"}, "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-d43513a40b0f5cd5", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/WorkspaceSwitcher.tsx:75"}, "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-fb71324286e001eb", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/components/SecondaryList.", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/components/SecondaryList.tsx:61"}, "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-1ac99787fff28a4a", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/component", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/components/SecondarySidebar.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5348f583f8ce6395", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/lib/built", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/lib/built-in-variants.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-7c4c2e11b97dc917", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUserActi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUserActions.tsx:129"}, "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-94c545bc20f08ac5", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavPinned.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavPinned.tsx:160"}, "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-13c191e3b03e7ef5", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUser.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUser.tsx:67"}, "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-dcf42a03c68a4d35", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/components/site-hea", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/components/site-header.tsx:105"}, "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-515bd5278a4967d2", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/MobileHeader.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/MobileHeader.tsx:56"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f06cdfc0a9de038", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/components/HeaderCon", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/components/HeaderControls.tsx:428"}, "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-96d769f01732cae0", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/ai-assistant/chat/RecentChatsPanel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/ai-assistant/chat/RecentChatsPanel.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-d28fb2987d94b2c9", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/dashboard/ActivityListItem.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/dashboard/ActivityListItem.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-e9f5802d6bcd5380", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/theme-preset-switcher.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/theme-preset-switcher.tsx:126"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd7eb1d9ad7dd762", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload-queue.tsx:4", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload-queue.tsx:433"}, "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-c0c8d6abbbc03717", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/device-mockup.tsx:119", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/device-mockup.tsx:119"}, "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-49a9a2f4e04e89b1", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload.tsx:253", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload.tsx:253"}, "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-f0b6739de35b9c31", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/invitations/PendingCont", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/invitations/PendingContactRequestsCard.tsx:121"}, "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-bfa5a764ed3ea1d8", "name": "\"active\" state uses light bg in a dark theme \u2014 template-base/frontend/shared/ui/components/navigation/NavigationMenu.tsx", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 template-base/frontend/shared/ui/components/navigation/NavigationMenu.tsx:54"}, "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-f717cb77ff4d9baf", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/components/utils/componentFactory.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/components/utils/componentFactory.ts:16"}, "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-cba6a4ed091a2cfc", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/FileUploadZone.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/FileUploadZone.tsx:138"}, "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-28c1df308950bdd0", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/AssetGallery.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/AssetGallery.tsx:107"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a265be4255c1101d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/shared/ui/components/rich-text/index.tsx:30", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/shared/ui/components/rich-text/index.tsx:309"}, "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-a49449e952cea546", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gantt/index.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gantt/index.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-98c6bcf8046c6484", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gallery/inde", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gallery/index.tsx:191"}, "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-e2c8a9ddfaee75e8", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/calendar/ind", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/calendar/index.tsx:487"}, "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-bc5d45ad99874fa1", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/date-picker/components/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/date-picker/components/EventList.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-6d571d575f61b53c", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/theme/hooks/themes.ts:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/theme/hooks/themes.ts:4"}, "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-90936b625a9577e2", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/index.ts:43", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/index.ts:43"}, "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-281d3aca7e202da4", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/Crea", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/CreateWorkspaceAdvancedDialog.tsx:184"}, "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-dea2173f1f66f1d9", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/Impo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/ImportAndJoinTabs.tsx:39"}, "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-08362969626c4b1e", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/Onbo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/OnboardingFlow.tsx:243"}, "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-eac7c1ed017a00d4", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/Impo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/ImportWorkspacePanel.tsx:179"}, "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-8cb9416cea1d434f", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/Crea", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/CreateWorkspaceDrawer.tsx:85"}, "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-38d39f5e938b8b3a", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/compon", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/components/NotificationCenter.tsx:185"}, "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-abe24ce692eacb83", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/featur", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/features-preview/index.tsx:67"}, "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-ed0c8f7d9abf7f04", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/registry/Registry.ts:352", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/registry/Registry.ts:352"}, "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-d871c437ba651819", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33"}, "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-4853ce7c575cb2b9", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/starred/features-pre", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/starred/features-preview/index.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b6338b3338aa43f", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/core/performance.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/core/performance.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c947d6cba7537654", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/comments/components/CommentsPanel.ts", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/comments/components/CommentsPanel.tsx:122"}, "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-fc6565727c4a58c6", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/lib/features/registry.ts:226", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/lib/features/registry.ts:226"}, "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-fec90ca867074c47", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/preview/FeatureListPanel.tsx:251", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/preview/FeatureListPanel.tsx:251"}, "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-8aa8374bd06ffc57", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/preview/FeaturePreviewWrapper.tsx:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/preview/FeaturePreviewWrapper.tsx:115"}, "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-6843af1964a0af10", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/flows/registry.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/flows/registry.ts:14"}, "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-b3a3fc2f4317e0e1", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/UnifiedLibrary.tsx:11", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/UnifiedLibrary.tsx:118"}, "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-9713582cc8688b4c", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/TemplateLibrary.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/TemplateLibrary.tsx:149"}, "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-f86f46c1a587dec4", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/DraggableLibraryItem.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/DraggableLibraryItem.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-a2c999c8c1db1ab3", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/templates/registry.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/templates/registry.ts:14"}, "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-f4291ade9f390326", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/sections/registry.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/sections/registry.ts:14"}, "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-34900f15b9bb7669", "name": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/elements/registry.ts:15", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/elements/registry.ts:15"}, "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-cf7b87168042c5f9", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/canvas/nodes/BaseNode.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/canvas/nodes/BaseNode.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-f844e33505b0d175", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Profile/ProfileBlock.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Profile/ProfileBlock.tsx:127"}, "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-20b2f6b0b0abc07e", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Events/EventsBlock.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Events/EventsBlock.tsx:131"}, "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-1373641605175aca", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/File/FileBlock.tsx:114", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/File/FileBlock.tsx:114"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8690b838700f8794", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Activity/ActivityBlock", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Activity/ActivityBlock.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-a43822595fa67f20", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/List/ListBlock.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/List/ListBlock.tsx:101"}, "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-d2dcd78f51940803", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Kanban/KanbanBlock.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Kanban/KanbanBlock.tsx:231"}, "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-f96815e807cc6522", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/DynamicInspector.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/DynamicInspector.tsx:572"}, "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-9151525069903dcc", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChatAI.tsx:264", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChatAI.tsx:264"}, "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-78a2e714b7b3c8c3", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChildrenManager.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChildrenManager.tsx:251"}, "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-648609c9baa563f8", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/SectionP", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/SectionPicker.tsx:130"}, "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-2859acbf60d517fe", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/Inspecto", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/InspectorSection.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-ba524873d1add499", "name": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/export/data-export-registry.ts:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/export/data-export-registry.ts:152"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae33a1bc6c687f2b", "name": "Stray `console.log` in TS/JS \u2014 template-base/tests/features/studio/studio-executor.test.ts:235", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/tests/features/studio/studio-executor.test.ts:235"}, "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-f1d69bacaa77da4a", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/docs/generate-slice-docs.ts:183", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/docs/generate-slice-docs.ts:183"}, "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-afd41e940787a77d", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/feature-naming.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/feature-naming.ts:41"}, "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-201c39f4aca74369", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-crud-coverage.ts:188", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-crud-coverage.ts:188"}, "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-cbc8acca17cfa70c", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-test-gaps.ts:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-test-gaps.ts:204"}, "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-09e88d731a0cc8d0", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/conversation.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/conversation.ts:53"}, "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-d1a5bc1a8d07f2bf", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/audit-ui-consistency.ts:186", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/audit-ui-consistency.ts:186"}, "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-0a0cff184ee9efe2", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/next-build-budgets.ts:179", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/next-build-budgets.ts:179"}, "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-caa25fa38961e7b7", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/edit.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/edit.ts:38"}, "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-ec0a28239130af9a", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-init-imports.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-init-imports.ts: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-198576aa28ab7b5d", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-previews.ts:160", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-previews.ts:160"}, "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-8cb914372843f103", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-preview-registry.ts:228", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-preview-registry.ts:228"}, "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-9ba97496e47ea3a8", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-manifest.ts:286", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-manifest.ts:286"}, "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-f26cb2cff761c617", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-registry.ts:337", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-registry.ts:337"}, "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-1337956b9c71f854", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync-agents.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync-agents.ts:8"}, "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-12322a641209a339", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/add-export-import.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/add-export-import.ts:34"}, "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-2c6b290f3b736126", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/test-registry.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/test-registry.ts:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-672bdca0883ce75a", "name": "TODO/FIXME marker in shipping code \u2014 template-base/scripts/features/create.ts:583", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/scripts/features/create.ts:583"}, "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-1c53ffb06d5614a2", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/create.ts:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/create.ts:72"}, "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-7ee668eb0213525a", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-export-registry.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-export-registry.ts:82"}, "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-5e53323ebbeca2b6", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync.ts:110"}, "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-461bd25ba83f47d0", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/list.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/list.ts:29"}, "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-51750e6a481a7185", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/delete.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/delete.ts:34"}, "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-ef0e6378814cdaef", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-bundles.ts:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-bundles.ts:258"}, "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-7f7955ee6072864d", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/analyze-feature.ts:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/analyze-feature.ts:255"}, "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-217a8d179a35860d", "name": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-slice-structure.ts:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-slice-structure.ts:143"}, "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-4cd6e98a488afb35", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/filters.tsx:1036", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/filters.tsx:1036"}, "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-c5b450c8791e2070", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/chart.tsx:95", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/chart.tsx:95"}, "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-e8d57517a669055d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/server.tsx:60", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/server.tsx:60"}, "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-14e0ea59af0406dd", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:372", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:372"}, "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-855e0c118b13a1fd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:616", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:616"}, "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-e69d23f2db818179", "name": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/ai/inline-citation.tsx:253", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/ai/inline-citation.tsx:253"}, "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-10b16c1048b5e413", "name": "TODO/FIXME marker in shipping code \u2014 template-base/convex/auth/helpers.ts:35", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/convex/auth/helpers.ts:35"}, "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-477172579c61bad9", "name": "TODO/FIXME marker in shipping code \u2014 template-base/convex/lib/quota.ts:18", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/convex/lib/quota.ts:18"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88d81af8c0937b02", "name": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/executor.ts:305", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/executor.ts:305"}, "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-ffeb4401bccf0ec5", "name": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/sla.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/sla.ts:30"}, "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-22b136f0f5fadad5", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shared/layout/AppSidebar.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/layout/AppSidebar.tsx:117"}, "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-ba52a209e64b66c9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/ui/chart.tsx:95", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/ui/chart.tsx:95"}, "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-702178091e02e001", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/analytics/Analytic", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/analytics/AnalyticsView.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-093d94da81643c61", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/dashboard/Dashboar", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/dashboard/DashboardSections.tsx:62"}, "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-94113b9a9f13182c", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/blog/BlogSidebar.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/blog/BlogSidebar.tsx:98"}, "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-cfbddbe8215928c2", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/admin/dashboard/Dashboar", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/admin/dashboard/DashboardView.tsx:42"}, "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-52ea5575596e6c34", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/analytics/AnalyticsView.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/analytics/AnalyticsView.tsx:138"}, "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-cc9947548f463402", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/dashboard/DashboardView.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/dashboard/DashboardView.tsx:45"}, "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-7e7bdfb852b018c1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/collaborators/Collaborat", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/collaborators/CollaboratorsView.tsx:125"}, "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-173eeab483c6911e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/analytics/AnalyticsView", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/analytics/AnalyticsView.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-3210357ea7791fa9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/dashboard/DashboardView", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/dashboard/DashboardView.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-b8e1f7a2566b2e12", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/calendar/CalendarView.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/calendar/CalendarView.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-3a209c7127ff8598", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/analytics/AnalyticsView", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/analytics/AnalyticsView.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-3beae8e3d30a8fc3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/dashboard/DashboardView", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/dashboard/DashboardView.tsx:51"}, "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-75470c4cf82657e8", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/analytics/Analytics", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/analytics/AnalyticsView.tsx:105"}, "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-61175195a99eee79", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/projects/ProjectsLi", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/projects/ProjectsList.tsx:38"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41745cae16c88948", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/dashboard/Dashboard", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/dashboard/DashboardView.tsx:41"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b9175cffef678fe", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/notion-page-clone/slices/notion-app/WorkspaceT", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/notion-page-clone/slices/notion-app/WorkspaceTopBar.tsx:65"}, "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-31e7a831061ef940", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/testimonials/Testimonial", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/testimonials/TestimonialsCard.tsx:26"}, "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-5ffb5cb16484eeac", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/monetization/Monet", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/monetization/MonetizationView.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-77d0beec275f4972", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/analytics/Analytic", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/analytics/AnalyticsView.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac17b43c056f3f57", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/dashboard/Dashboar", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/dashboard/DashboardSections.tsx:33"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3334cbd665f3c9d4", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/workspace-switcher.tsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/workspace-switcher.tsx:66"}, "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-1503c4f71f6e59b4", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-nav-items.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-nav-items.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-6563eddb91516e15", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-sidebar.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-sidebar.tsx:92"}, "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-cc705b8241ea1c2a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/secondary-sidebar.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/secondary-sidebar.tsx:62"}, "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-c960bf9e010a73ec", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/integratio", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/integration-grid.tsx:22"}, "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-a46f3aa979b29cfe", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/api-keys-l", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/api-keys-list.tsx:35"}, "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-d615017e06d79e02", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/users/UsersBlockVie", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/users/UsersBlockView.tsx:122"}, "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-01de6e0778007c81", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/analytics/funnel-an", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/analytics/funnel-and-pages.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-5b480b5d5e23060d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/event-row", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/event-row.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-40a91b1605e42c65", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/diff-tree", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/diff-tree.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-b7dc079352c8afad", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/ai-config/provider-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/ai-config/provider-card.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-17f5e37f1f958071", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/delivery-t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/delivery-table.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82267c2ce4a9f9a8", "name": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/endpoint-r", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/endpoint-row.tsx:36"}, "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-ad670d9e27627c08", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview-pane.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview-pane.tsx:89"}, "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-47f32d47571aa8b3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/command-palette.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/command-palette.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-9c87e45bd7ff81b7", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/code-block.tsx:19", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/code-block.tsx:19"}, "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-1c6bf35f331f26d8", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail.tsx:117"}, "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-83fa52c10182566d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-block.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-block.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-388717b1e57300b3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f32f09e5e7af9ed", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/assembler-inspector.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/assembler-inspector.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-99220079f5af4f09", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/related-features.tsx:87", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/related-features.tsx:87"}, "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-f6bc9b690272b0cf", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-kit/composer.tsx:87", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-kit/composer.tsx:87"}, "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-6b1a680db23d64cd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview/split-pane.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview/split-pane.tsx:82"}, "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-a96253b25653c0ad", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/code-view.tsx:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/code-view.tsx:34"}, "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-3838494f80506b94", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/tree-node.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/tree-node.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1a7376709128144", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/theme-preset/preset-list.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/theme-preset/preset-list.tsx:57"}, "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-a9228b4f3c63f500", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/catalog/showcase-card.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/catalog/showcase-card.tsx:62"}, "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-1a478c4ca94a84d6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-grouped-items.tsx:99", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-grouped-items.tsx:99"}, "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-4d1fedb9aaed89b1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-list-group.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-list-group.tsx:75"}, "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-000624d1706258c9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/code-tab.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/code-tab.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-f0a8a2745e060412", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/static-inspector.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/static-inspector.tsx:37"}, "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-fa43db0047ffc375", "name": "`truncate` class without `title=` for hover reveal \u2014 components/site/docs-sidebar/nav-parts.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/docs-sidebar/nav-parts.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-172332223145ab88", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/app-sidebar.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/app-sidebar.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-15f2e9c08d4aa485", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/list-editor.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/list-editor.tsx:82"}, "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-686e6aab37031fb1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/nav-user.tsx:45", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/nav-user.tsx:45"}, "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-d6436e9b7b7c2a1e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/PanelHeader.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/PanelHeader.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-c052e16282731593", "name": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/mobile/MobileHeader.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/mobile/MobileHeader.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-b887bf5e01db47b3", "name": "Stray `console.log` in TS/JS \u2014 app/preview/slices/file-explorer/page.tsx:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/file-explorer/page.tsx:19"}, "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-448fa590a32f52b0", "name": "Stray `console.log` in TS/JS \u2014 app/preview/slices/create-your-mcp/page.tsx:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/create-your-mcp/page.tsx:79"}, "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-0712be0119d44819", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/theme-presets/theme-widgets-b.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/theme-presets/theme-widgets-b.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-b10d90b8e9768a1e", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/audit-log/page.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/audit-log/page.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-7bbb7f7d23c81735", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/testimonials/page.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/testimonials/page.tsx:51"}, "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-2897946652fbe9c3", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-admin/tabs-catalog.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-admin/tabs-catalog.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-3b011fa35c0676e5", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/panels.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/panels.tsx:75"}, "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-6d29c45f2d2b1be3", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/page.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/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-31aa3d2087b14ec8", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/search/page.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/search/page.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-642409a5af40cc3b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-agents/page.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-agents/page.tsx:139"}, "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-e7c8a7cfb95e29c6", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/services/page.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/services/page.tsx:67"}, "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-de7682e6d66f12ee", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/event-tracking/page.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/event-tracking/page.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-39d990c89b73e0bd", "name": "Stray `console.log` in TS/JS \u2014 app/preview/slices/image-editor/page.tsx:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/image-editor/page.tsx:18"}, "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-deb8d5d0f3605100", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/workspace-shell/nav.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/workspace-shell/nav.tsx:38"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d29f4d4ab88a0e03", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/seo/page.tsx:27", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/seo/page.tsx:27"}, "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-42087a0246e78892", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-ide/explorer.tsx:60", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-ide/explorer.tsx:60"}, "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-946b0eb2902d7a04", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-mobile-dock/sections.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-mobile-dock/sections.tsx:90"}, "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-eb5f364b8bd81d17", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/cms-public-storefront/page.tsx:113", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/cms-public-storefront/page.tsx:113"}, "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-bba02cf9e59df60f", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-three-column/sections.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-three-column/sections.tsx:57"}, "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-8fb5502644e460b6", "name": "`truncate` class without `title=` for hover reveal \u2014 app/preview/three-column-trio/page.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/three-column-trio/page.tsx:82"}, "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-db596b4cfb571cd1", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/hero-strip.tsx:23", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/hero-strip.tsx:23"}, "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-c5fa88d9c2223ae8", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/slice-detail-header.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/slice-detail-header.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-9ec7fbc0eee589c2", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/directory/page.tsx:36", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/directory/page.tsx:36"}, "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-984b8515f997cdb5", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/agents/agent-index.tsx:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/agents/agent-index.tsx:33"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5b85da7be2fc1cb", "name": "Stray `console.log` in TS/JS \u2014 lib/content/slices.ts:186", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/content/slices.ts:186"}, "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-fa55c1b0b961dc8c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/content/changelog/part-01.ts:10", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/content/changelog/part-01.ts:10"}, "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-00c674fbbb652fad", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/shared/src/lib/sanitizeHtml.ts:5", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/shared/src/lib/sanitizeHtml.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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: 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-8987d6d1c30c7202", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "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-385e842d703d3beb", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "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-c159551451a00fe1", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "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-b9e7f5e69909d3f8", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inlineDecorator.test.ts:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inlineDecorator.test.ts:15"}, "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-d09d82777f8389d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inline-decorator/caret.test.t", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inline-decorator/caret.test.ts:42"}, "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-600e140dc349843b", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion/shared/lib/katex-lazy.tsx:45", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion/shared/lib/katex-lazy.tsx:45"}, "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-83305715afeeec96", "name": "Possible secret in frontend/slices/convex-auth/README.md", "shortDescription": {"text": "Possible secret in frontend/slices/convex-auth/README.md"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-b5737f2e52d214f5", "name": "Possible secret in frontend/slices/convex-auth/lib/labels.ts", "shortDescription": {"text": "Possible secret in frontend/slices/convex-auth/lib/labels.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-0d294feff7615bf2", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96"}, "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-6be04c6adb5f8399", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/components/MermaidBlock.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/components/MermaidBlock.tsx:52"}, "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-2ac8cbc32ffbd982", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/lib/katex-lazy.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/lib/katex-lazy.tsx:44"}, "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-09715a9deb40d733", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:88", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:88"}, "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-b53832856e09b59d", "name": "Insecure pattern 'node_child_process' in scripts/capture-shots.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/capture-shots.mjs:16"}, "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-8dd9bd1875e144fb", "name": "Insecure pattern 'node_child_process' in scripts/validate-all.mjs:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validate-all.mjs:19"}, "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-d5ed1bcdb848ec6f", "name": "Insecure pattern 'node_child_process' in scripts/deploy-convex-functions.mjs:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/deploy-convex-functions.mjs:21"}, "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-a961f003e57a1e8d", "name": "Insecure pattern 'node_child_process' in scripts/smoke-migrate-doku.mjs:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/smoke-migrate-doku.mjs:12"}, "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-c7144a994ca324be", "name": "Insecure pattern 'node_child_process' in scripts/apply-midtrans-collision-fix.mjs:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/apply-midtrans-collision-fix.mjs:21"}, "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-0a15a496c3524f4a", "name": "Insecure pattern 'node_child_process' in scripts/validation/validate-changelog.test.mjs:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validation/validate-changelog.test.mjs:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc1e6451be98d5fb", "name": "Insecure pattern 'node_child_process' in scripts/validation/validate-contract-shape.mjs:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validation/validate-contract-shape.mjs:8"}, "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-7d166108e7bf246b", "name": "Insecure pattern 'node_child_process' in scripts/features/modify-slice.mjs:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/features/modify-slice.mjs:21"}, "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-c7e8624d08118a9d", "name": "Insecure pattern 'node_child_process' in scripts/features/scaffold-slice.mjs:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/features/scaffold-slice.mjs:19"}, "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-c8828b526257cfa9", "name": "Insecure pattern 'dangerous_innerhtml' in components/ui/chart.tsx:95", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/ui/chart.tsx:95"}, "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-3bb5f486e036dc61", "name": "Insecure pattern 'exec_used' in lib/content/slices.ts:564", "shortDescription": {"text": "Insecure pattern 'exec_used' in lib/content/slices.ts:564"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e618bbc2b251115", "name": "Insecure pattern 'dangerous_innerhtml' in lib/content/changelog/part-01.ts:10", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in lib/content/changelog/part-01.ts:10"}, "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-dff98fe7c9f557da", "name": "Insecure pattern 'cors_wildcard' in packages/mcp/src/http-transport.mjs:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/mcp/src/http-transport.mjs:19"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca7b01115a35c65d", "name": "Insecure pattern 'new_function_used' in packages/cli/scripts/parse-content.mjs:80", "shortDescription": {"text": "Insecure pattern 'new_function_used' in packages/cli/scripts/parse-content.mjs:80"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2eaffe30769ddfb1", "name": "Insecure pattern 'node_child_process' in packages/cli/scripts/validate.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/scripts/validate.mjs:7"}, "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-0d3d63ef88b0925c", "name": "Insecure pattern 'node_child_process' in packages/cli/lib/alias-resolution.test.mjs:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/alias-resolution.test.mjs:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c2dfb3ba4a6426f", "name": "Insecure pattern 'exec_used' in packages/cli/lib/manifest.json:1544", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/cli/lib/manifest.json:1544"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81b750242b3a20ff", "name": "Insecure pattern 'node_child_process' in packages/cli/lib/snapshot.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/snapshot.mjs:10"}, "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-2b9e5b0ff07e0935", "name": "Insecure pattern 'node_child_process' in packages/cli/lib/compose-solver-loader.mjs:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/compose-solver-loader.mjs:9"}, "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-b23d5e666f5ff5c3", "name": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/smoke-test.mjs:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/smoke-test.mjs:8"}, "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-dd36d0e38b1071e9", "name": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/setup-auth.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/setup-auth.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b8453e542e16554", "name": "Insecure pattern 'node_child_process' in packages/cr/src/commands/install.mjs:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/install.mjs:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3116c147b2a2acd9", "name": "Possible secret in packages/cr/src/commands/local.mjs", "shortDescription": {"text": "Possible secret in packages/cr/src/commands/local.mjs"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5124a6ef542a976c", "name": "Insecure pattern 'node_child_process' in packages/cr/src/commands/local.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/local.mjs:7"}, "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-0fe0f40477067477", "name": "Insecure pattern 'node_child_process' in packages/cr/src/commands/doctor.mjs:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/doctor.mjs:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8bf9bdcef224095f", "name": "Insecure pattern 'node_child_process' in packages/cr/src/lib/clipboard.mjs:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/lib/clipboard.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-416b578a2435e795", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f65c0d17687c9f3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e78155a8f7757ab6", "name": "Very large file: template-base/frontend/slices/studio/ui/types/StudioUISchema.ts (1082 lines)", "shortDescription": {"text": "Very large file: template-base/frontend/slices/studio/ui/types/StudioUISchema.ts (1082 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-a754f91516d25ba8", "name": "Very large file: template-base/frontend/slices/studio/agent/index.ts (1255 lines)", "shortDescription": {"text": "Very large file: template-base/frontend/slices/studio/agent/index.ts (1255 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-e72ab19eab113aca", "name": "Very large file: template-base/frontend/shared/builder/inspector/DynamicInspector.tsx (1604 lines)", "shortDescription": {"text": "Very large file: template-base/frontend/shared/builder/inspector/DynamicInspector.tsx (1604 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fbd94a7b731041b4", "name": "Very large file: template-base/components/ui/filters.tsx (2138 lines)", "shortDescription": {"text": "Very large file: template-base/components/ui/filters.tsx (2138 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-a13bb43836d054ff", "name": "Very large file: lib/content/slices.ts (2474 lines)", "shortDescription": {"text": "Very large file: lib/content/slices.ts (2474 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-1477fba581e6103f", "name": "Very large file: lib/content/layouts.ts (1464 lines)", "shortDescription": {"text": "Very large file: lib/content/layouts.ts (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-77ca4ba7d56f736e", "name": "Very large file: lib/content/changelog/part-01.ts (1474 lines)", "shortDescription": {"text": "Very large file: lib/content/changelog/part-01.ts (1474 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "128 test file(s) for 4389 source file(s) (ratio 0.03). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7cc752c030017dc8", "name": "89 TODO/FIXME markers", "shortDescription": {"text": "89 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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-2699d5f16ae11282", "name": "Node manifest has dependencies but no lockfile: packages/shared/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-64b28722a10084e8", "name": "Node manifest has dependencies but no lockfile: packages/browser-extension/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/browser-extension/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba561cccbb17b315", "name": "Node manifest has dependencies but no lockfile: packages/browser-protocol/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/browser-protocol/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec8437d3d9df047c", "name": "Node manifest has dependencies but no lockfile: packages/cr/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cr/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 803 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 1619 placeholder/mock markers across 674 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-388646417c492fea", "name": "Agent authority lacks a verifier contract: template-base/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: template-base/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c41d1856c8b772ba", "name": "Agent authority lacks a verifier contract: template-base/frontend/slices/studio/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: template-base/frontend/slices/studio/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac46a67fd3742d60", "name": "Agent authority lacks a verifier contract: packages/cr/src/prompts/claude.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: packages/cr/src/prompts/claude.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-122570bd19f570a0", "name": "Commented-code block (6 lines) in next.config.mjs:119", "shortDescription": {"text": "Commented-code block (6 lines) in next.config.mjs: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-b13bf810dde7d293", "name": "Commented-code block (6 lines) in proxy.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in proxy.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9eaadc9aa1dad2f7", "name": "Commented-code block (13 lines) in frontend/slices/file-explorer/adapter/live.ts:17", "shortDescription": {"text": "Commented-code block (13 lines) in frontend/slices/file-explorer/adapter/live.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-464830ddfac29590", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/file-explorer/adapter/live.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/file-explorer/adapter/live.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-e00f55290e0e07d5", "name": "Commented-code block (5 lines) in frontend/slices/file-explorer/adapter/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/adapter/types.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-5bbaad9a9b3fa41a", "name": "Commented-code block (10 lines) in frontend/slices/file-explorer/adapter/convex.ts:17", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/slices/file-explorer/adapter/convex.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f945b7ac19fed6e5", "name": "Commented-code block (7 lines) in frontend/slices/file-explorer/lib/backend.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/file-explorer/lib/backend.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-225221fbf015a86e", "name": "Commented-code block (5 lines) in frontend/slices/file-explorer/lib/read-drop.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/lib/read-drop.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-d042d01f06852964", "name": "Commented-code block (5 lines) in frontend/slices/file-explorer/hooks/use-dnd.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/hooks/use-dnd.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44ba1aa69ce9c97e", "name": "Commented-code block (5 lines) in frontend/slices/user-management/components/MembersPanel.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/user-management/components/MembersPanel.tsx: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-1fb760b98630d250", "name": "Commented-code block (5 lines) in frontend/slices/user-management/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/user-management/lib/tools.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-23b0bed96dda9d15", "name": "Commented-code block (10 lines) in frontend/slices/create-your-mcp/index.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/slices/create-your-mcp/index.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-8798ffe136d0fe27", "name": "Commented-code block (7 lines) in frontend/slices/create-your-mcp/routes/oauth-token.route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/create-your-mcp/routes/oauth-token.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-7650c9183582dcc4", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e3812eddb242a05", "name": "Commented-code block (7 lines) in frontend/slices/os-terminal/index.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62e25aeeb2d306d5", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8094610f5356e8a8", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/pty-terminal.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/pty-terminal.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a77d1359a6a79b5b", "name": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/use-pty.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/use-pty.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-2a17df30ba3ba745", "name": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/host.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-142fb135e5ad1361", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/fs-model.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/fs-model.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-423ea61c52834b2d", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/host-mock.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/host-mock.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-3cdfde75cfe2a822", "name": "Commented-code block (6 lines) in frontend/slices/os-terminal/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/os-terminal/lib/tools.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-741ebea775683a6c", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.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-20a3457b442668c1", "name": "Commented-code block (5 lines) in frontend/slices/icon-picker/lib/picker-handlers.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/icon-picker/lib/picker-handlers.ts: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-e75b14e7b0392f72", "name": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/keyboardHandler.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/keyboardHandler.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92378542134a2541", "name": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/slashHandler.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/slashHandler.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68bd8fefb758c7f0", "name": "Legacy-named symbol `hasLegacy` in frontend/slices/notion/slices/editor/lib/layoutAdapter.ts:32", "shortDescription": {"text": "Legacy-named symbol `hasLegacy` in frontend/slices/notion/slices/editor/lib/layoutAdapter.ts:32"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb152b3cd64b6f3f", "name": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/hooks/useFullPage.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/hooks/useFullPage.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-2240e681b7e6e6fe", "name": "Commented-code block (9 lines) in frontend/slices/notion/slices/editor/blocks/DatabasePicker.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/slices/notion/slices/editor/blocks/DatabasePicker.tsx: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-8596d5747992426f", "name": "Commented-code block (12 lines) in frontend/slices/notion/slices/editor/page-editor/PageTitle.tsx:4", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/slices/notion/slices/editor/page-editor/PageTitle.tsx: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-28e179b680cef037", "name": "Commented-code block (7 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.tsx: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-dec79f069afda359", "name": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/page-editor/PageNotFound.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/page-editor/PageNotFound.tsx: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-ab17c27562b66752", "name": "Commented-code block (10 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderActions.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderActions.tsx: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-1e35cafd05cb0452", "name": "Commented-code block (5 lines) in frontend/slices/notion/shared/types/blocks.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/notion/shared/types/blocks.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-09b8e44ffac36509", "name": "Commented-code block (5 lines) in frontend/slices/media-viewer/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/media-viewer/index.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ffd8f0a2f165272", "name": "Commented-code block (7 lines) in frontend/slices/media-viewer/components/app-frame.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/media-viewer/components/app-frame.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0987d251a6b7e0f7", "name": "Commented-code block (8 lines) in frontend/slices/media-viewer/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/media-viewer/lib/host.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-866a22c6605d49ff", "name": "Commented-code block (5 lines) in frontend/slices/media-viewer/lib/samples.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/media-viewer/lib/samples.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-2e1cd9a1dc8420e0", "name": "Commented-code block (6 lines) in frontend/slices/media-viewer/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/media-viewer/lib/tools.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-b29f23b81dacbbcf", "name": "Commented-code block (6 lines) in frontend/slices/landing-sections/index.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/landing-sections/index.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6686c98ad1a0097f", "name": "Commented-code block (5 lines) in frontend/slices/platform-admin/index.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/platform-admin/index.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-b878edc30f7e56d4", "name": "Commented-code block (5 lines) in frontend/slices/platform-admin/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/platform-admin/lib/tools.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-7b74c0c021da3281", "name": "Commented-code block (5 lines) in frontend/slices/doku-payment/slice.contract.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/doku-payment/slice.contract.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a66b82930b9cfe4d", "name": "Commented-code block (8 lines) in frontend/slices/notion-shell/index.ts:19", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/notion-shell/index.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24c15eef8095b6f4", "name": "Commented-code block (5 lines) in frontend/slices/notion-database/components/cells/DateCellEditor.tsx:66", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/notion-database/components/cells/DateCellEditor.tsx:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd11fb362081e48e", "name": "Commented-code block (5 lines) in frontend/slices/quicklinks/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/quicklinks/index.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cca9dfddfe2e11b", "name": "Commented-code block (5 lines) in frontend/slices/quicklinks/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/quicklinks/lib/host.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-4db438eb0b5464f1", "name": "Commented-code block (5 lines) in frontend/slices/ai-agents/runner.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/ai-agents/runner.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-f2e542af95d786ea", "name": "Commented-code block (5 lines) in frontend/slices/shell-settings/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/shell-settings/index.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-611287130ffc6b26", "name": "Commented-code block (6 lines) in frontend/slices/appshell/index.ts:180", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/index.ts:180"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f1aa54308917b0e", "name": "Commented-code block (5 lines) in frontend/slices/appshell/agentic.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/agentic.tsx: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-7f841127d2ced2a7", "name": "Commented-code block (7 lines) in frontend/slices/appshell/defaults.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/defaults.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-90fb167068750c7f", "name": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2036bc2e5548c71a", "name": "Commented-code block (5 lines) in frontend/slices/appshell/provider/app-shell.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/provider/app-shell.tsx:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bb4ae8764cbdc9c", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-caebae8c3d5d4ab7", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86975b5b40f71fa5", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c45a7160e858767", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0e538e40605dfc8", "name": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c189c47ef95bbb4", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37631dce9566accf", "name": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eefd6935e81e49f9", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:34", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efdb5451e0ee157f", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f81de6be2b9eec2a", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9acf1a9490da839f", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d21df7773f7015e4", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.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-2091b26ab952c6e5", "name": "Commented-code block (8 lines) in frontend/slices/appshell/lib/mock-capabilities.ts:12", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/lib/mock-capabilities.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-077601174f8a4a99", "name": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8", "shortDescription": {"text": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-296a28680c8d6891", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.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-65d28a98af57ee99", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1508a0a85200894b", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/tools.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-f5df63591bec3183", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.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-e1f1a10c527c20cf", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6752e49a0df96bc0", "name": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8eecf08d9180147", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5eec0b6bff76133", "name": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9168feaae9418684", "name": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fa850c6274f88c9", "name": "Commented-code block (5 lines) in frontend/slices/assistant/index.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-364786f193448112", "name": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:40", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a408ed9152428771", "name": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.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-945dabed3172fdef", "name": "Commented-code block (5 lines) in frontend/slices/assistant/lib/agentic-host.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/agentic-host.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-e3b43e719db72770", "name": "Commented-code block (7 lines) in frontend/slices/ai-router/components/chat-fab.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/ai-router/components/chat-fab.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-407d6f878a949fb3", "name": "Commented-code block (5 lines) in frontend/slices/media-studio/app.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/media-studio/app.tsx: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-8465851b0ba52214", "name": "Commented-code block (5 lines) in frontend/slices/media-studio/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/media-studio/index.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f75cf5fd8d238630", "name": "Commented-code block (6 lines) in frontend/slices/media-studio/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/media-studio/lib/host.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-4582f5607b6684d0", "name": "Commented-code block (5 lines) in frontend/slices/system-monitor/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/system-monitor/index.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51f9c3f441ab07fe", "name": "Commented-code block (6 lines) in frontend/slices/system-monitor/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/system-monitor/lib/host.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-f154837c06ee73fa", "name": "Commented-code block (5 lines) in frontend/slices/onboarding-wizard/components/theme-preset-field.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/onboarding-wizard/components/theme-preset-field.tsx: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-9508161848cbc027", "name": "Commented-code block (6 lines) in frontend/slices/app-store/index.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f42d9214acd0b6c9", "name": "Commented-code block (5 lines) in frontend/slices/app-store/components/host-frame.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/components/host-frame.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89eb804fce0e7532", "name": "Commented-code block (5 lines) in frontend/slices/app-store/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/host.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-8970b10173b98e8f", "name": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.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-cc1b19700e5c62b0", "name": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts: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-198ec30e16b5240a", "name": "Commented-code block (5 lines) in frontend/slices/app-store/lib/tools.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/tools.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-60cc2e095150f06e", "name": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86281adbd5accf05", "name": "Commented-code block (5 lines) in frontend/slices/motion-kit/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/motion-kit/index.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-a9f789122e25cf79", "name": "Commented-code block (6 lines) in frontend/slices/browser/index.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/browser/index.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c56c6b12bd98aadb", "name": "Commented-code block (5 lines) in frontend/slices/browser/components/mock-pane.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/browser/components/mock-pane.tsx: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-40920f91289e8931", "name": "Commented-code block (6 lines) in frontend/slices/browser/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/browser/lib/host.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-239d128ba76a7ee9", "name": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-screencast.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-screencast.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-a0cbb972bbe85816", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:38"}, "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-fb92ea937a76016f", "name": "Commented-code block (5 lines) in frontend/slices/browser/lib/demo-browser.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/demo-browser.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-ac75d95fb1987b4e", "name": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-remote-browser.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-remote-browser.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-6b18f932e06a1029", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/server.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/server.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-df541229de111fe3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/image-editor.tsx:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/image-editor.tsx: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-25f1087496aaa2f9", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/commands/types.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/commands/types.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-028f762ff1b8a455", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a173d326dac37c7", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb262773296d8b8e", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82094b5734c4eb5f", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db625dfd68943c6f", "name": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8428f8e8cc353c73", "name": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/host.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/host.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-11634bdc199e46e7", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.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-df39f674414467d3", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.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-494d390699e7ca08", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b79c2253cec4f701", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2630eb5739eb73f0", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.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-9623840709579c42", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b84bed01e71ee2e4", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:17", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1e9f923f6d56745", "name": "Commented-code block (8 lines) in frontend/slices/reel-editor/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/reel-editor/lib/host.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-bcf27f39687bd28b", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.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-ceb6f0a23ca598fa", "name": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.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-9cc9bdb8bace05ab", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.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-450aa2e85bfd17cb", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.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-b469c9dec485c9a4", "name": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5590a9ae8649103a", "name": "Commented-code block (5 lines) in frontend/slices/code-editor/index.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ab164d5f98fd3ee", "name": "Commented-code block (6 lines) in frontend/slices/code-editor/components/file-tree/dir.tsx:38", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/components/file-tree/dir.tsx: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-b4dbf3b431e717ed", "name": "Commented-code block (7 lines) in frontend/slices/code-editor/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/code-editor/lib/host.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-01ce676f89c840b1", "name": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/highlight.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/highlight.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-0bf6a4a781b0ea9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/capture-shots.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/capture-shots.mjs:38"}, "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-f6f23c5298ea644c", "name": "Commented-code block (6 lines) in scripts/deploy-convex-functions.mjs:45", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/deploy-convex-functions.mjs:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4815ecd8d8567e40", "name": "Commented-code block (5 lines) in scripts/apply-midtrans-collision-fix.mjs:10", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/apply-midtrans-collision-fix.mjs:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca24a4b54d3d6370", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dokploy-redeploy.mjs:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dokploy-redeploy.mjs:46"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ef147dcd3c416c2", "name": "Commented-code block (7 lines) in scripts/validation/audit-templates.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/validation/audit-templates.mjs: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-41590fa611553148", "name": "Commented-code block (6 lines) in scripts/validation/audit-templates-helpers.mjs:14", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/validation/audit-templates-helpers.mjs:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef5c159cf79a632b", "name": "Commented-code block (5 lines) in scripts/validation/audit-docs-primitives.mjs:9", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validation/audit-docs-primitives.mjs:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59fc829dd2309716", "name": "Commented-code block (6 lines) in scripts/validation/validate-changelog.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/validation/validate-changelog.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d990d12fb4ac65b", "name": "Commented-code block (7 lines) in scripts/validation/audit-slice-helpers.mjs:141", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/validation/audit-slice-helpers.mjs:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43e2bf91c1033071", "name": "Commented-code block (5 lines) in scripts/validation/audit-file-size.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validation/audit-file-size.mjs: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-c671c3047fa828dc", "name": "Commented-code block (5 lines) in scripts/validation/report-slices-drift.mjs:6", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validation/report-slices-drift.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70f8cfd32ecc6722", "name": "Commented-code block (6 lines) in scripts/validation/report-ui-drift.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/validation/report-ui-drift.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab0a84b8ed2d30bd", "name": "Commented-code block (10 lines) in scripts/validation/audit-convex-features.mjs:4", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/validation/audit-convex-features.mjs: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-c44fde39574cd583", "name": "Commented-code block (5 lines) in scripts/validation/audit-slice.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validation/audit-slice.mjs: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-9902e0abbf3634a0", "name": "Commented-code block (7 lines) in scripts/features/scaffold-slice.mjs:7", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/features/scaffold-slice.mjs:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c6f5c98bc8a7306", "name": "Commented-code block (5 lines) in scripts/features/scaffold-template.mjs:12", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/features/scaffold-template.mjs:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f4efc4e7f71bd19", "name": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/types/StudioUISchema.ts:58", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/types/StudioUISchema.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5161dfa469341bb1", "name": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/widgets/registry.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/widgets/registry.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eeb369f0334c2405", "name": "Commented-code block (9 lines) in template-base/frontend/slices/studio/registry/studioLibraryTabs.ts:32", "shortDescription": {"text": "Commented-code block (9 lines) in template-base/frontend/slices/studio/registry/studioLibraryTabs.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e84cb7d4657f193", "name": "Commented-code block (6 lines) in template-base/frontend/slices/studio/lib/__tests__/validateLayoutRichness.test.ts:144", "shortDescription": {"text": "Commented-code block (6 lines) in template-base/frontend/slices/studio/lib/__tests__/validateLayoutRichness.test.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6831491142dd6d45", "name": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/index.ts:27", "shortDescription": {"text": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/index.ts: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-7d542ccd43afa4dd", "name": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/n8n-converter.ts:285", "shortDescription": {"text": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/n8n-converter.ts:285"}, "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-c608a5629245b513", "name": "Commented-code block (5 lines) in template-base/frontend/shared/settings/user-settings/api/index.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/settings/user-settings/api/index.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12dce8024688391c", "name": "Commented-code block (5 lines) in template-base/frontend/shared/bindings/ai/frontend-agent-registry.generated.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/bindings/ai/frontend-agent-registry.generated.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-5761826dec5894dd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/utils/api-key-validation.ts:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/utils/api-key-validation.ts:185"}, "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-1c6639c90ef5767d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/lib/index.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/lib/index.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-754695e094382773", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/index.ts:325", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/index.ts:325"}, "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-0b10ebd15250d169", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/useSubAgentRouter.ts:386", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/useSubAgentRouter.ts:386"}, "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-62ac9d287eb82176", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9205caeb4057d792", "name": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/feature-shell/FeatureShell.tsx:137", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/feature-shell/FeatureShell.tsx:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-602106ff7aae9c4d", "name": "Commented-code block (6 lines) in template-base/frontend/shared/ui/layout/container/index.ts:18", "shortDescription": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/ui/layout/container/index.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3066bec57df61c7", "name": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/container/two-column/TwoColumnLayout.tsx:88", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/container/two-column/TwoColumnLayout.tsx:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dc4998c48aafbfd", "name": "Commented-code block (6 lines) in template-base/frontend/shared/ui/components/event-calendar/SharedCalendar.tsx:80", "shortDescription": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/ui/components/event-calendar/SharedCalendar.tsx:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-697dcb381240e71e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/theme/theme-presets.ts:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/theme/theme-presets.ts:84"}, "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-b42f3f78eb503cec", "name": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/index.ts:13", "shortDescription": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/index.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93169ccddf0bae2e", "name": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/registry/index.ts:24", "shortDescription": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/registry/index.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a14f9a20d4acbbca", "name": "Commented-code block (5 lines) in template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd539eff5dedfb44", "name": "Commented-code block (7 lines) in template-base/frontend/shared/foundation/hooks/assets/useUploadAsset.ts:35", "shortDescription": {"text": "Commented-code block (7 lines) in template-base/frontend/shared/foundation/hooks/assets/useUploadAsset.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49edbff6d3a65796", "name": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/lib/theme-presets.ts:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/lib/theme-presets.ts:84"}, "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-f430da6a030d5fd0", "name": "Legacy-named symbol `withoutOld` in template-base/frontend/shared/builder/canvas/core/SharedCanvasProvider.tsx:495", "shortDescription": {"text": "Legacy-named symbol `withoutOld` in template-base/frontend/shared/builder/canvas/core/SharedCanvasProvider.tsx:495"}, "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-3f19f4494bec62d0", "name": "Commented-code block (5 lines) in template-base/frontend/shared/builder/inspector/DynamicInspector.tsx:78", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/builder/inspector/DynamicInspector.tsx:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3808ec3a0c4fdeb8", "name": "Commented-code block (5 lines) in template-base/convex/schema.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/convex/schema.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfa505ffb56d17f2", "name": "Commented-code block (5 lines) in template-base/convex/features/notion/schema.ts:130", "shortDescription": {"text": "Commented-code block (5 lines) in template-base/convex/features/notion/schema.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ec5baf4aaa1bd64", "name": "Commented-code block (5 lines) in components/templates/kreator-studio/shared/nav-config.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in components/templates/kreator-studio/shared/nav-config.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30bb89f7db79ddc6", "name": "Commented-code block (5 lines) in components/templates/_shared/stage.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/templates/_shared/stage.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-7d0ad1a5d7606b8e", "name": "Commented-code block (5 lines) in components/templates/_shared/config/template-paths.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/templates/_shared/config/template-paths.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-8d561c5ea10b9a86", "name": "Commented-code block (10 lines) in components/templates/_shared/admin-panel/ui/tones.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in components/templates/_shared/admin-panel/ui/tones.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-d27429d6f232de76", "name": "Legacy-named symbol `wh_old` in components/templates/_shared/admin-panel/blocks/audit-log/seed.ts:133", "shortDescription": {"text": "Legacy-named symbol `wh_old` in components/templates/_shared/admin-panel/blocks/audit-log/seed.ts:133"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ace3de6399fe86c0", "name": "Commented-code block (5 lines) in components/templates/_shared/admin-panel/blocks/audit-log/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/templates/_shared/admin-panel/blocks/audit-log/types.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-558b710b19c47d68", "name": "Commented-code block (7 lines) in components/site/catalog/poster-thumbnail.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in components/site/catalog/poster-thumbnail.tsx: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-6a859c092c021a86", "name": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-parts.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-parts.test.tsx: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-9aa1621e2f2081d9", "name": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-types.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-types.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-55d9dcf210cba09e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/admin-shell.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/admin-shell.tsx:88"}, "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-dea8357f510d25f5", "name": "Commented-code block (5 lines) in convex/features/library/mutation.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/library/mutation.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-82db615ebd6877a6", "name": "Commented-code block (5 lines) in convex/features/library/_schema.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/library/_schema.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-13005487befede65", "name": "Commented-code block (10 lines) in convex/features/activity/mutation.ts:10", "shortDescription": {"text": "Commented-code block (10 lines) in convex/features/activity/mutation.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4daf102d37f16abc", "name": "Commented-code block (5 lines) in convex/features/activity/_schema.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/activity/_schema.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-69ec841d3212d394", "name": "Commented-code block (5 lines) in convex/features/rate_limit/mutation.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/rate_limit/mutation.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-5dc3d906cd0c0e2e", "name": "Commented-code block (5 lines) in convex/features/aiChat/_schema.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/aiChat/_schema.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-47c8d9f8e975d1e6", "name": "Commented-code block (5 lines) in convex/features/create_your_mcp/mutation.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/create_your_mcp/mutation.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c33d03fe2edde703", "name": "Commented-code block (7 lines) in convex/features/telemetry/_schema.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in convex/features/telemetry/_schema.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e63d8fdd154fc7a", "name": "Commented-code block (5 lines) in convex/features/payment/mutation.ts:142", "shortDescription": {"text": "Commented-code block (5 lines) in convex/features/payment/mutation.ts:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a9f94214dd808f8", "name": "Commented-code block (6 lines) in convex/features/payment/http.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in convex/features/payment/http.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-6d354cdf55728116", "name": "`fetch()` without try/.catch or AbortSignal \u2014 convex/features/payment/doku/client.ts:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 convex/features/payment/doku/client.ts: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-ac23d9b39d32b15f", "name": "Commented-code block (6 lines) in convex/features/seo/_seo_prompt.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in convex/features/seo/_seo_prompt.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-6df6cce85bab86ad", "name": "Commented-code block (5 lines) in app/preview/slices/file-explorer/page.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in app/preview/slices/file-explorer/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aaf99d2db65099a7", "name": "Commented-code block (7 lines) in app/preview/slices/media-viewer/page.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/preview/slices/media-viewer/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e396421c52be72ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/preview/slices/ai-chat/mock-data.tsx:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/preview/slices/ai-chat/mock-data.tsx: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-89a5270e1e2c3914", "name": "Commented-code block (5 lines) in app/preview/slices/media-studio/page.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in app/preview/slices/media-studio/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98ad612c2fbb6f97", "name": "Commented-code block (9 lines) in app/preview/slices/image-editor/page.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in app/preview/slices/image-editor/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b0d72f2c97c76db", "name": "Commented-code block (7 lines) in app/preview/slices/reel-editor/page.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/preview/slices/reel-editor/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f45736999ebacba8", "name": "Commented-code block (6 lines) in app/preview/slices/code-editor/page.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/preview/slices/code-editor/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2998ed1c0efba006", "name": "Commented-code block (6 lines) in app/preview/dashboard-ide/mock-data.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in app/preview/dashboard-ide/mock-data.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60e3237b5520959a", "name": "Commented-code block (7 lines) in app/preview/dashboard-ide/explorer.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in app/preview/dashboard-ide/explorer.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53298f9dacaa3f4c", "name": "Commented-code block (7 lines) in app/(docs)/slices/[slug]/details-tab.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in app/(docs)/slices/[slug]/details-tab.tsx: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-711b325859b77460", "name": "Commented-code block (5 lines) in lib/preview-presets.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/preview-presets.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-e2273b7eb85a7208", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/shared/agentic/sse-client.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/shared/agentic/sse-client.ts:28"}, "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-bfd8ee5871b1cc78", "name": "Commented-code block (10 lines) in lib/theme/theme-presets.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in lib/theme/theme-presets.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-b0ca02c22786d515", "name": "Commented-code block (6 lines) in lib/content/template-subdomains.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in lib/content/template-subdomains.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6910aa01e3c9a07", "name": "Commented-code block (5 lines) in lib/content/slices.ts:737", "shortDescription": {"text": "Commented-code block (5 lines) in lib/content/slices.ts:737"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68a6e542b0f86a53", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/content/slices.ts:1212", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/content/slices.ts:1212"}, "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-a4adb5f10b8e387a", "name": "Commented-code block (5 lines) in lib/content/resources.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in lib/content/resources.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-1fe5892dffa087e6", "name": "Commented-code block (5 lines) in lib/content/best-practices.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/content/best-practices.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-c13224f3a7f935c2", "name": "Legacy-named symbol `u_old` in lib/content/changelog/part-04.ts:263", "shortDescription": {"text": "Legacy-named symbol `u_old` in lib/content/changelog/part-04.ts:263"}, "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-bd002fa45b93abac", "name": "Commented-code block (5 lines) in convex-templates/personal-brand-os/update.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/update.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96012578cb1dd8d3", "name": "Commented-code block (5 lines) in convex-templates/personal-brand-os/authReset.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/authReset.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-585d30289d02709b", "name": "Commented-code block (5 lines) in convex-templates/personal-brand-os/seedPoster.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/seedPoster.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-011a7c0d8a7fe415", "name": "Commented-code block (6 lines) in packages/mcp/scripts/check-peer.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in packages/mcp/scripts/check-peer.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20c26d731e16b34c", "name": "Commented-code block (5 lines) in packages/mcp/src/data-loader.mjs:13", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mcp/src/data-loader.mjs:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71a884655ddac556", "name": "Commented-code block (8 lines) in packages/mcp/src/oauth.mjs:3", "shortDescription": {"text": "Commented-code block (8 lines) in packages/mcp/src/oauth.mjs: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-5007b51a2a5dc1a8", "name": "Commented-code block (5 lines) in packages/shared/src/formulaEngine/ParserClass.ts:37", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/formulaEngine/ParserClass.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1952340a7082414e", "name": "Commented-code block (9 lines) in packages/cli/scripts/validate-structure.mjs:7", "shortDescription": {"text": "Commented-code block (9 lines) in packages/cli/scripts/validate-structure.mjs:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9a47754b894db3a", "name": "Commented-code block (6 lines) in packages/cli/scripts/gen-preview-registry.mjs:23", "shortDescription": {"text": "Commented-code block (6 lines) in packages/cli/scripts/gen-preview-registry.mjs: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-566e0ec181771834", "name": "Commented-code block (5 lines) in packages/cli/scripts/parse-content.mjs:94", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/scripts/parse-content.mjs:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0da4d253e3b2b72b", "name": "Commented-code block (5 lines) in packages/cli/scripts/gen-manifest.mjs:145", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/scripts/gen-manifest.mjs: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-0069efae41abb070", "name": "Commented-code block (5 lines) in packages/cli/scripts/validate-slice.mjs:7", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/scripts/validate-slice.mjs:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-952c769df9df2cd0", "name": "Commented-code block (5 lines) in packages/cli/lib/migration-plan.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/migration-plan.mjs: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-4ae2b9887a1f6008", "name": "Commented-code block (7 lines) in packages/cli/lib/contract-types.ts:101", "shortDescription": {"text": "Commented-code block (7 lines) in packages/cli/lib/contract-types.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a1b04396c9198e7", "name": "Commented-code block (5 lines) in packages/cli/lib/dna.mjs:7", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/dna.mjs:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0339b429416c3c74", "name": "Commented-code block (5 lines) in packages/cli/lib/compose-solver.mjs:6", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/compose-solver.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2900bf6faf23fe5d", "name": "Commented-code block (5 lines) in packages/cli/lib/merge3.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/merge3.mjs: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-5ffe265b2d16022b", "name": "Commented-code block (5 lines) in packages/cli/lib/starter/scripts/setup-auth.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/starter/scripts/setup-auth.mjs: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-55eee644d6684dd7", "name": "Commented-code block (7 lines) in packages/cli/lib/starter/convex/schema.ts:27", "shortDescription": {"text": "Commented-code block (7 lines) in packages/cli/lib/starter/convex/schema.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f6cf5f835d2afb0", "name": "Commented-code block (5 lines) in packages/cli/lib/starter/convex/update.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cli/lib/starter/convex/update.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-37902bc3f99d1d08", "name": "Commented-code block (5 lines) in packages/cr/src/lib/prompt-builder.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cr/src/lib/prompt-builder.mjs: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-4d4fd1c073e365ad", "name": "Commented-code block (7 lines) in plugins/rresource/skills/rate-limit/src/convex/_shared/rateLimit.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in plugins/rresource/skills/rate-limit/src/convex/_shared/rateLimit.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5c9df5191d269d4", "name": "Commented-code block (8 lines) in plugins/rresource/skills/audit-log/src/convex/audit.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/rresource/skills/audit-log/src/convex/audit.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e41c9b1903bfadd9", "name": "Commented-code block (5 lines) in plugins/rresource/skills/markdown-editor/src/convex/markdownDoc.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in plugins/rresource/skills/markdown-editor/src/convex/markdownDoc.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7158d37b86fe232", "name": "Commented-code block (7 lines) in plugins/rresource/skills/kanban-board/src/convex/kanban.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in plugins/rresource/skills/kanban-board/src/convex/kanban.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa27c56869a30047", "name": "Commented-code block (6 lines) in plugins/rresource/skills/feedback-widget/src/convex/feedback.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in plugins/rresource/skills/feedback-widget/src/convex/feedback.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca523559db56313e", "name": "Commented-code block (8 lines) in plugins/rresource/skills/public-profile/src/convex/profile.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in plugins/rresource/skills/public-profile/src/convex/profile.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c9d02364e09e13c", "name": "55 env vars used in code but missing from .env.example", "shortDescription": {"text": "55 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_EMAIL`, `ADMIN_PASSWORD`, `ADMIN_SIGNUP_KEY`, `ANTHROPIC_API_KEY`, `APP`, `CALCOM_WEBHOOK_SECRET`, `CONVEX_DEPLOY_KEY`, `CONVEX_SITE_URL` + 47 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}}]}}, "automationDetails": {"id": "repobility/17798"}, "properties": {"repository": "rahmanef63/resource-site", "repoUrl": "https://github.com/rahmanef63/resource-site", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429024, "scanner": "foundry_dataset", "fingerprint": "bf83fd0b006a521708e49e46df8db0de800cd7d8c6b06c74797342b3b9999f54", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"source_or_other": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#8", "issue_number": "8", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a58e8a19cb1d985b", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#8\nRepo: rahmanef63/resource-site\nIssue/PR number: 8\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-abed2c60c8d51e30", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429023, "scanner": "foundry_dataset", "fingerprint": "50268b5b5386becc5bd1045d8a9e5a608ebafafc59191c2d1d86e9f4cbd91a37", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 3, "deployment_env_gap": 1, "dependency_or_build": 3, "security_auth_secret": 1, "ci_pending_or_incomplete": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#56", "issue_number": "56", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-acb33f4e7cbdf77c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#56\nRepo: rahmanef63/resource-site\nIssue/PR number: 56\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'dependency_or_build': 3, 'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-c806b1ba614b2328", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429022, "scanner": "foundry_dataset", "fingerprint": "1ff465edf0b684072bebd60b41a486059c4ab614795dcf9a51ffc2ce10c5aadb", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#49", "issue_number": "49", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c242052c22993b4e", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#49\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#49\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#49\nRepo: rahmanef63/resource-site\nIssue/PR number: 49\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-a129dd2665dae861", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429021, "scanner": "foundry_dataset", "fingerprint": "cfe9898d5504794e8d95c0f655cffeff64e0cd869cb3f699252bf277613c185f", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#48", "issue_number": "48", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-20a83c0249938578", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#48\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#48\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#48\nRepo: rahmanef63/resource-site\nIssue/PR number: 48\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-46ce313374b323de", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429020, "scanner": "foundry_dataset", "fingerprint": "e9b483eb73b18a218d99fe966d9a952d91946a4f2c51559fccd8608061af97f9", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#46", "issue_number": "46", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-0596b9fb0228d5df", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#46\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#46\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#46\nRepo: rahmanef63/resource-site\nIssue/PR number: 46\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-db099b680d4e547d", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429019, "scanner": "foundry_dataset", "fingerprint": "498e862de822a766f994de91114db171bbc6a3e1aecca3f2ee9ba8a6960e0176", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#44", "issue_number": "44", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7cf0c3ccf034bec1", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#44\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#44\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#44\nRepo: rahmanef63/resource-site\nIssue/PR number: 44\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-ab4d0c2b7f3541db", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429018, "scanner": "foundry_dataset", "fingerprint": "fa4b6ed2efcf7c7e3d0e877ca24b9220e27dd213d16153cc88c806b4fe2fbe38", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#43", "issue_number": "43", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-56bf87c129b067c6", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#43\nRepo: rahmanef63/resource-site\nIssue/PR number: 43\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-1a30132f2214160d", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429017, "scanner": "foundry_dataset", "fingerprint": "e0720fbe78d239f4960c7dd3c74ba88e3d2ef194ffa9f9f7ac275330a6650b7b", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#39", "issue_number": "39", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fdb476377cc40d3c", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#39\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#39\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#39\nRepo: rahmanef63/resource-site\nIssue/PR number: 39\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-43a09d54e5505cfb", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429016, "scanner": "foundry_dataset", "fingerprint": "0f881e6e34577c0a2c9d7083cbc1a926fd1307f3d07495755ef34ac8af25f7d0", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#37", "issue_number": "37", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-cea23501fc2f24b6", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#37\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#37\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#37\nRepo: rahmanef63/resource-site\nIssue/PR number: 37\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-cc828a2a1c2e419a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429015, "scanner": "foundry_dataset", "fingerprint": "12e84e8907a3aaac10c6915e88d11f9a2402cd6bc805a51b7c99ef72a2aa313f", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#36", "issue_number": "36", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5efdbde44b18a7c3", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#36\nRepo: rahmanef63/resource-site\nIssue/PR number: 36\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-2ef6224def617554", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429014, "scanner": "foundry_dataset", "fingerprint": "9fa25baf25483af2968e358aa7d8ddca871c4ea3cf228c46106117398c598dfe", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#34", "issue_number": "34", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-e0eacc08c7d8db48", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#34\nRepo: rahmanef63/resource-site\nIssue/PR number: 34\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-e21372d8141374cd", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429013, "scanner": "foundry_dataset", "fingerprint": "f2f078b6ee010b2ef1f7d430783e062be9436837187177f7e9b7f68988410f86", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#33", "issue_number": "33", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fe24e9626e18dd5c", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#33\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#33\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#33\nRepo: rahmanef63/resource-site\nIssue/PR number: 33\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-f7c4ff0973f3db98", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429012, "scanner": "foundry_dataset", "fingerprint": "704a8809c977215c13577bbac1de36911745e98e2a51eff002b376b350745ec9", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#27", "issue_number": "27", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-8c6be6b93cf80177", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#27\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#27\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#27\nRepo: rahmanef63/resource-site\nIssue/PR number: 27\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-fc853d9b7bfd7d61", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429011, "scanner": "foundry_dataset", "fingerprint": "4ad7d787f666da9741f893f0f8a0c63512ca41660bb90a23f5fe9629fdc360b9", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#26", "issue_number": "26", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f089409368397ff3", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#26\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#26\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#26\nRepo: rahmanef63/resource-site\nIssue/PR number: 26\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-7f5817dbc505a329", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429010, "scanner": "foundry_dataset", "fingerprint": "aae95a57a788cee0bd7ae1f2533f6fda17a387bf252c351425bcc0dc4d0daa6d", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#25", "issue_number": "25", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f61406e7003524e8", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#25\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#25\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#25\nRepo: rahmanef63/resource-site\nIssue/PR number: 25\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-77b88bf2a3e8a416", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429009, "scanner": "foundry_dataset", "fingerprint": "26151eb1b91c798a7fbf3d123303ad1c88d20d816f6b5def57fbbe79b009a11d", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#24", "issue_number": "24", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-0c375d80a9dfabdf", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#24\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#24\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#24\nRepo: rahmanef63/resource-site\nIssue/PR number: 24\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-e3f0ae222bf9b2e5", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429008, "scanner": "foundry_dataset", "fingerprint": "295a70eac20c593e07c2fe555d14bfe8531242196da9a2d31a587e2b2551f90b", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"ui_or_frontend": 2, "ui_workflow_gap": 1, "dependency_or_build": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 27, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#23", "issue_number": "23", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-720c311f593c5b84", "graph_gold_label": "assumption_check", "changed_file_labels": {"ui_or_frontend": 8, "dependency_or_build": 8}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#23\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#23\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#23\nRepo: rahmanef63/resource-site\nIssue/PR number: 23\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 27\nNode types: {'pr_file': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'issue_chain_touches_file': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'dependency_or_build': 2, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-576bf3990faf9620", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429007, "scanner": "foundry_dataset", "fingerprint": "d9812f535d9ac2db1ffbcd9b6dae3cd9e61f9ebd42bad292fc2134b847acadee", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#22", "issue_number": "22", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c4040f9a8f4f50fe", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#22\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#22\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#22\nRepo: rahmanef63/resource-site\nIssue/PR number: 22\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-e39c741690a79c29", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429006, "scanner": "foundry_dataset", "fingerprint": "450495898531909ac229a0f9a7677f4e8ae286bf45db2726a0f28b2df076f872", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#21", "issue_number": "21", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-60d4d10ad2b751cc", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#21\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#21\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#21\nRepo: rahmanef63/resource-site\nIssue/PR number: 21\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-820ac7d5f07bf7aa", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429005, "scanner": "foundry_dataset", "fingerprint": "1e37010eb68659e01a19a0d368d63733daa59dafae70503e1bbbdec102357648", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#20", "issue_number": "20", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2597e7726c0de7d0", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#20\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#20\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#20\nRepo: rahmanef63/resource-site\nIssue/PR number: 20\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-e29a3aca988434ce", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: rahmanef63/resource-site"}, "properties": {"repobilityId": 429004, "scanner": "foundry_dataset", "fingerprint": "817ec0d0d8e4154c9243016ec5c2390f4fa9e9d3fc2fa7a7eb860b2eba1c5755", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"agent_instruction_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#19", "issue_number": "19", "quality_tiers": {"unresolved": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-c195d91c8f12abdc", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#19\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#19\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#19\nRepo: rahmanef63/resource-site\nIssue/PR number: 19\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-a13adb28de3b15c7", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402816, "scanner": "foundry_dataset", "fingerprint": "610e0a4136326bfa129c5b60166c6f16c23e2fbe6c6c2e878af32076e2b40570", "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, "source_or_other": 12, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 12, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 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": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 12, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#55", "issue_number": "55", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-a64ddf95e26ffa25", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 48}}, "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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#55\nRepo: rahmanef63/resource-site\nIssue/PR number: 55\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 56\nNode types: {'pr_file': 12, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 12, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'source_or_other': 12, 'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-1b35a2e6e250d540", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402815, "scanner": "foundry_dataset", "fingerprint": "5567d4b3fa141df22df40cc7b3ece63e2aeb0b475c110f20992f4422462274a4", "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, "ui_or_frontend": 1, "ui_workflow_gap": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#54", "issue_number": "54", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-7f261503d0c240e6", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#54\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#54\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#54\nRepo: rahmanef63/resource-site\nIssue/PR number: 54\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-9706d09958565697", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402814, "scanner": "foundry_dataset", "fingerprint": "506cc91c6e8d2a3330ca0648d2805cb146bae1eaa3e32368efbf7c4d11db40dc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "test_ci_gap": 1, "source_or_other": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#52", "issue_number": "52", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-a604cc3b69974ff2", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#52\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#52\nRepo: rahmanef63/resource-site\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-66ca60580313874c", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402813, "scanner": "foundry_dataset", "fingerprint": "459f480a8e69c6060ca3bec04d7d1cd15db0fa5f6ae5810860e08fcf9f76db83", "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": 8, "test_ci_gap": 1, "mock_placeholder": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 6, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#50", "issue_number": "50", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ebb3cc49594d3861", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#50\nRepo: rahmanef63/resource-site\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 8, '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, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-8d861168b1469756", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402812, "scanner": "foundry_dataset", "fingerprint": "cc24a3ca6d9adb84759bbd52de5511813fc5537db0e9ec9c797277e8d715107b", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#43", "issue_number": "43", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-9a3660c22604ab4f", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#43\nRepo: rahmanef63/resource-site\nIssue/PR number: 43\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-d86321dabaee0af8", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402811, "scanner": "foundry_dataset", "fingerprint": "b719386faa6e7a70c6ac8d44ec3619cb49d463e8438c9d028c63c6f17d0a106e", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#36", "issue_number": "36", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-c876e95614c0e610", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#36\nRepo: rahmanef63/resource-site\nIssue/PR number: 36\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-dddaa1bba3ef09a9", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402810, "scanner": "foundry_dataset", "fingerprint": "34e0a89a05714936367addcf6edcfb255b601965484c9405c85ecfe861d33296", "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": {"verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#35", "issue_number": "35", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-b5551f2b83adbe0d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#35\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#35\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#35\nRepo: rahmanef63/resource-site\nIssue/PR number: 35\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 16\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-f58ba35b50560aa8", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402809, "scanner": "foundry_dataset", "fingerprint": "17a4cf80cc8f711e7021f9036331b6ef0a2b1dc4a70349a47e2d13813b26a7aa", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#34", "issue_number": "34", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-582e622600718fe9", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#34\nRepo: rahmanef63/resource-site\nIssue/PR number: 34\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-824e31ec9d0ab1a5", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402808, "scanner": "foundry_dataset", "fingerprint": "8acfd88a83fa35cc8b2253f357a23e8866270255a840f490cf27f5f4998734f5", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#33", "issue_number": "33", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-3d384f5a55cdc072", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#33\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#33\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#33\nRepo: rahmanef63/resource-site\nIssue/PR number: 33\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-0da6c2839cb44243", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402807, "scanner": "foundry_dataset", "fingerprint": "c24730a19c437e596e4388354e77e482c7cc09ac8f9e5dd7006576a453aec12e", "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, "verification_or_tests": 2, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#32", "issue_number": "32", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-7a69195aa3df4500", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#32\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#32\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#32\nRepo: rahmanef63/resource-site\nIssue/PR number: 32\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-49fca4f412b360a6", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402806, "scanner": "foundry_dataset", "fingerprint": "8ddf05c24c19dcaf9ea7786012c861d303081f155e14225709827a0ae5f3ce46", "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, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#28", "issue_number": "28", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-eaba71687214d38d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#28\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#28\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#28\nRepo: rahmanef63/resource-site\nIssue/PR number: 28\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 17\nNode types: {'link_quality': 4, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-0032df5c658786f2", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402805, "scanner": "foundry_dataset", "fingerprint": "1fe1821154cb678b4953132ad07ab6c457af6486aabf986f1434a990d122e4e1", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#26", "issue_number": "26", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-16d867c53be4b56c", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#26\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#26\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#26\nRepo: rahmanef63/resource-site\nIssue/PR number: 26\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-952d82e4e7ae7306", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402804, "scanner": "foundry_dataset", "fingerprint": "c6178f720d5aaeade72e56514eb26292548e90e2eb4e8c8b6a97a1f07dd30e08", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"ui_or_frontend": 2, "ui_workflow_gap": 1, "dependency_or_build": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 27, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 4, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#23", "issue_number": "23", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ed2ae13568c40dc1", "graph_gold_label": "assumption_check", "changed_file_labels": {"ui_or_frontend": 8, "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: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#23\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#23\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#23\nRepo: rahmanef63/resource-site\nIssue/PR number: 23\nGraph consistency label: assumption_check\nNodes: 16\nEdges: 27\nNode types: {'pr_file': 4, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'issue_chain_touches_file': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'dependency_or_build': 2, 'ui_or_frontend': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-8eb02e69625121c9", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402803, "scanner": "foundry_dataset", "fingerprint": "46fff73f079a2c0122144db201df378dcf0397c5913ef2d81992c2b24bbcd288", "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, "ui_or_frontend": 2, "api_integration_gap": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 24, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#18", "issue_number": "18", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-559bb6fc04f8bc7b", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"ui_or_frontend": 8}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#18\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#18\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#18\nRepo: rahmanef63/resource-site\nIssue/PR number: 18\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 24\nNode types: {'link_quality': 4, 'commit': 3, 'pr_file': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'comment_chain_links_commit': 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, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'claimed_resolved_with_verification_signal': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-825c9d32262c3676", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402802, "scanner": "foundry_dataset", "fingerprint": "872bfba772737efee715b6a7a1a7f94fea4528b8c25049997a281f6e9fb43154", "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, "source_or_other": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#15", "issue_number": "15", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-49bd35fb7e194cf8", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#15\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#15\nRepo: rahmanef63/resource-site\nIssue/PR number: 15\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-55bb6bcc07c77344", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: rahmanef63/resource-site"}, "properties": {"repobilityId": 402801, "scanner": "foundry_dataset", "fingerprint": "61221d9403b68dfacd4e98c5904a89b47880c982fb6391edcbf0d2fb6c8002bc", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "data_schema": 1, "source_or_other": 1, "verification_or_tests": 2, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#12", "issue_number": "12", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-89e73fd7c9ace0c5", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#12\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#12\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#12\nRepo: rahmanef63/resource-site\nIssue/PR number: 12\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'data_schema': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-6ffd3f9d3cc337be", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381379, "scanner": "foundry_dataset", "fingerprint": "768df9271851162107e7e1f5b82fed33c19912c4c3cb8161b6ad24fa400e1e6c", "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": "rahmanef63/resource-site#9", "human_labels": ["deployment_env_gap", "source_or_other"], "issue_number": "9", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-7704a0d9ef4fb8f2", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 1, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#9\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#9\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1af417b14147d8e3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/9\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/9\\nTitle: feat(ssot/phase1): mdx-blog slice.manifest\\nBody:\\nStacks on #5. Static MDX blog manifest \u2014 content category, no Convex/env, npm deps for MDX pipeline (@next/mdx, gray-matter, rehype-pretty-code).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-e5b5d98e47f18652\",\n    \"filename\": \"frontend/slices/mdx-blog/slice.manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 38,\n    \"deletions\": 0,\n    \"changes\": 38,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/a667d15555955a945b101a09b7b07cd0650701a4/frontend%2Fslices%2Fmdx-blog%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8f001b6fd28fbdf6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-97a32a4f455cdb50", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381378, "scanner": "foundry_dataset", "fingerprint": "fdd4118784d0385b2109d1d8e4764476b6ef1a2b281b11e5a59099452c068532", "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": "rahmanef63/resource-site#6", "human_labels": ["security_auth_secret", "security_or_auth"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f38d6156cab52afa", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"security_or_auth": 1}, "linked_commit_count": 3, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#6\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: rahmanef63/resource-site#6\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'security_or_auth': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7d78bf61e4ba11a1\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/6\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/6\\nTitle: feat(ssot/phase1): convex-auth slice.manifest\\nBody:\\n## Summary\\nStacks on top of #5. Adds second sample slice manifest for `convex-auth` slice.\\n\\n## Highlights\\n- **Namespaced tables**: `auth_users`, `auth_accounts`, `auth_sessions`, `auth_verifiers` \u2014 avoid collision with consumer's existing `users` table during dual-auth migration period\\n- **Env**: `AUTH_GOOGLE_ID` + `AUTH_GOOGLE_SECRET` marked optional. **Critical note**: consumer MUST reuse same Google client ID + secret when migrating from Clerk (per Phase 5.5 zero-data-loss invariant \u2014 Google `sub` is the join key)\\n- **postInstall hook**: prints next-steps reminder\\n- **check**: verify required env vars in `.env.example`\\n- **compatibility.auth**: `convex-auth`\\n\\n## Validator output\\n- 2 valid (ai-router + convex-auth)\\n- 8 still needing manifests\\n\\n## Test plan\\n- [x] `npm run validate:manifests` confirms valid\\n- [ ] After PR #5 + this merge: scaffold remaining 8 manifests\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-85b14015727d85ec\",\n    \"filename\": \"frontend/slices/convex-auth/slice.manifest.json\",\n    \"label\": \"security_or_auth\",\n    \"status\": \"added\",\n    \"additions\": 113,\n    \"deletions\": 0,\n    \"changes\": 113,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/11d560b8f2638813fb6738055ef0d32f8614da47/frontend%2Fslices%2Fconvex-auth%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c7b350b1cadb3fca\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode typ\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-3bd97750c20b8ae8", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381377, "scanner": "foundry_dataset", "fingerprint": "80808b5342eefb29e696e26c22dee782d45c2c35e263d0dcaac7f6744871cca6", "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": "rahmanef63/resource-site#57", "human_labels": ["docs_or_claims", "schema_or_data", "security_auth_secret", "source_or_other", "ui_or_frontend"], "issue_number": "57", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-8c29656d187d5c6d", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 22, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1, "schema_or_data": 1, "ui_or_frontend": 8, "source_or_other": 12}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\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: rahmanef63/resource-site#57\nRepo: rahmanef63/resource-site\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: 22\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 12, 'schema_or_data': 1, 'docs_or_claims': 1, 'ui_or_frontend': 8}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f1154040115c81de\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/57\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/57\\nTitle: harvest: document-checklist slice from CareerPack\\nBody:\\n## Summary\\n\\nHarvested job-search document tracker from `rahmanef63/CareerPack` (13 frontend files, 3 Convex files, 1098 \u2192 ~1300 LOC after sanitization) as kitab tier-3 slice `document-checklist`.\\n\\n- `frontend/slices/document-checklist/` \u2014 `<DocumentChecklist>` + `<CountryTemplateCard>` + `useChecklistData(bindings)` hook, plus the per-item detail dialog, category filter, progress grid, and Indonesian seed list.\\n- `convex/features/document-checklist/` \u2014 `schema.ts` (exports `documentChecklistTables`), `queries.ts`, `mutations.ts`. Tables slug-prefixed: `document_checklist_items` + `document_checklist_templates`. User-scoped via `requireUser`.\\n- Registry: appended `SliceEntry` to `lib/content/slices.ts`; regenerated `packages/cli/lib/manifest.json`.\\n\\n## Sanitization applied\\n\\n- Imports rewritten to kitab aliases (`@/components/ui/*`, `@/lib/utils`, `@convex/*`).\\n- 4 raw `<button>` \u2192 `<Button>` (CategoryFilter \u00d72, ChecklistItemCard, Coun\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-089a7707702f672d\",\n    \"filename\": \"convex/features/document-checklist/mutations.ts\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 272,\n    \"deletions\": 0,\n    \"changes\": 272,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/e8fe1ac2ce215807dd1bdda6578ee7236fd1bc3d/convex%2Ffeatures%2Fdocument-checklist%2Fmutations.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-fef3510c78537543\",\n    \"filename\": \"convex/features/document-checklist/queries.ts\",\n    \"label\": \"source_or_other\",\n    \"status\": \"adde\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-d0be8895f804ca34", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381376, "scanner": "foundry_dataset", "fingerprint": "20b5dc694c67c32e1a2c1723862484f72edbcd97fbfb6f840a8d96f3719f48b9", "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": "rahmanef63/resource-site#56", "human_labels": ["dependency_or_build", "deployment_env_gap", "security_auth_secret"], "issue_number": "56", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-984cf23f0ba928dd", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"dependency_or_build": 1}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#56\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 5\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1, 'security_auth_secret': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9b709515c25d198d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/56\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/56\\nTitle: fix(build): exclude slice.contract.ts from Next typecheck (Docker build)\\nBody:\\n## Summary\\n\\nUnblocks Docker build. The deploy failed with:\\n\\n\\\\`\\\\`\\\\`\\nType error: Cannot find module '../../../packages/cli/lib/contract' or its corresponding type declarations.\\n./frontend/slices/admin/slice.contract.ts:10:37\\n\\\\`\\\\`\\\\`\\n\\n## Root cause\\n\\n- \\\\`.dockerignore\\\\` strips \\\\`packages/\\\\` from the runtime context (correct \u2014 CLI/MCP aren't served by the Next site).\\n- 9 \\\\`slice.contract.ts\\\\` files under \\\\`frontend/slices/\\\\` import \\\\`defineSliceContract\\\\` from \\\\`packages/cli/lib/contract\\\\`.\\n- Next's \\\\`tsc\\\\` pass during \\\\`next build\\\\` walks them. Locally the file exists; in Docker it doesn't.\\n\\n## Fix\\n\\nAdd \\\\`frontend/slices/**/slice.contract.ts\\\\` to \\\\`tsconfig.exclude\\\\`. These are CLI build-time contract definitions, not runtime code \u2014 \\\\`audit-slice.mjs\\\\` already special-cases them (\\\"by design imports defineSliceContract from packages/cli/lib/contract. Skip the import walk for that single file.\\\").\\n\\n## Test plan\\n\\n- [x] \\\\`\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3cbc9de285c6afac\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/56#issuecomment-4449790178\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: issue_comment\\nRepo: rahmanef63/resource-site\\nAuthor: github-actions[bot] (Bot)\\nURL: https://github.com/rahmanef63/resource-site/pull/56#issuecomment-4449790178\\nTitle: \\nBody:\\n### audit-bp (fallback mode) \u2014 CLEAN\\n\\n| metric | count |\\n|---|---:|\\\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-dfb1b5ab84df50b0", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381375, "scanner": "foundry_dataset", "fingerprint": "dadc45069c6ea369b71b440690ee3b7846666a4e300a1314458b0146e554b8b1", "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": "rahmanef63/resource-site#53", "human_labels": ["agent_instruction_gap", "source_or_other"], "issue_number": "53", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b79f23914130364b", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 4}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#53\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#53\nRepo: rahmanef63/resource-site\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: 4\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1d005f385008b667\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/53\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/53\\nTitle: fix(slices): harmonize config.ts titles with slice.json (4 slices)\\nBody:\\n## Summary\\n\\nCleared the last 4 audit warnings. slice.json is canonical (public manifest, shown by `rahman-resources list features`); config.ts now matches.\\n\\n- broadcast-channel-sync \u2192 \\\"BroadcastChannel \u2014 Cross-tab Sync\\\"\\n- doku-payment           \u2192 \\\"DOKU \u2014 Indonesia Payment\\\"\\n- midtrans-payment       \u2192 \\\"Midtrans \u2014 Indonesia Payment\\\"\\n- resend-newsletter      \u2192 \\\"Resend \u2014 Transactional & Newsletter\\\"\\n\\n## Test plan\\n\\n- [x] `node scripts/validation/audit-slice.mjs` \u2192 `\u2713 10 slice(s) OK` (was 4 warnings)\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-7e802765ba216cf8\",\n    \"filename\": \"frontend/slices/broadcast-channel-sync/config.ts\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/b0d318619658e4093f979d718f0157b2bfcae233/frontend%2Fslices%2Fbroadcast-channel-sync%2Fconfig.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-6016fe2d86f71b27\",\n    \"filename\": \"frontend/slices/doku-payment/config.ts\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/b0d318619658e4093f979d718f0157b2bfcae233/frontend%2Fslices%2Fdoku-payment%2Fconfig.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-4a547215a12a4d66\",\n    \"filename\": \"frontend/slices/midtrans-payment/config.ts\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-38e09c060a6ac874", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381374, "scanner": "foundry_dataset", "fingerprint": "e93b64038ec792beb83819c5c4c6ce62fee231a2250dea14d4d9fbb46c3ce8fe", "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": "rahmanef63/resource-site#51", "human_labels": ["agent_instruction_gap"], "issue_number": "51", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-7a32fec7fde62415", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#51\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#51\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-171a66da3bc1b428\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/51\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/51\\nTitle: fix(sidebar): stronger 4-tier hierarchy in DocsSidebar\\nBody:\\n## Summary\\n\\nBefore: section/branch/leaf-depth0/leaf-depth1 all shared `text-muted-foreground text-[13px] font-normal`. Hierarchy was visible only via indent. When a branch collapsed, you couldn't tell parent from sibling.\\n\\nAfter: 4-step weight scale (bold \u2192 semibold \u2192 medium \u2192 normal), 4-step size scale (11/14/13/12), 4 distinct fill states (bg-muted, bg-accent/30, bg-primary/15, bg-accent/50 hover).\\n\\n| Tier | Element | Size | Weight | Color | Fill |\\n|---|---|---|---|---|---|\\n| 0 | Section | 11px upper | bold | muted-fg | **bg-muted when subtree active** |\\n| 1 | Branch (parent) | 14px (text-sm) | semibold | foreground | bg-accent/30 when active |\\n| 1 | Leaf depth=0 | 13px | medium | foreground/80 | \u2014 |\\n| 2 | Leaf depth=1 | 12px (text-xs) | normal | muted-foreground | dot bullet \u2022 |\\n\\nContainer `pt-6 pb-8 gap-4` (was `py-4 gap-1`) \u2192 groups breathe.\\nActive leaf: `bg-primary/15 font-semibold text-primary` (was hardcoded blue-500).\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-01677daa95e14252\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bu\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-cf4cbbd65678c170", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381373, "scanner": "foundry_dataset", "fingerprint": "abeda3b5443ae5b15f8ed8b4d08b56557e4a4653548aecc5f1b5e48ebf3df6ed", "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": "rahmanef63/resource-site#48", "human_labels": ["human_feedback_general"], "issue_number": "48", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-1c032acde00bc04f", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#48\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#48\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2b22b0250c631a84\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/48\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/48\\nTitle: docs: Phase 5 final state recap\\nBody:\\nRecords Phase 5 achievement: rahman-shared@0.2.0 LIVE + 4/5 consumers adopted.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-796e12e5e5cbf816\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-4f2987d26e63b0cf", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381372, "scanner": "foundry_dataset", "fingerprint": "65a8ffd6b2974453ce5a9a7a0c5286b5f899a49747d6828ecf945e906b958338", "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": "rahmanef63/resource-site#47", "human_labels": ["security_auth_secret"], "issue_number": "47", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f8775f6dcf0d63bb", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#47\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: rahmanef63/resource-site#47\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e53724eaf3ac389c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/47\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/47\\nTitle: feat(rahman-shared): populate utils + hooks (0.2.0)\\nBody:\\nv0.1.0 was an empty stub. This bump wires the actual primitives.\\n\\n**Added:**\\n- `src/lib/{utils,formatDate,sanitizeHtml}.ts`\\n- `src/hooks/{useDebounce,useClickOutside,useResponsive}.ts`\\n- Runtime deps: clsx, tailwind-merge, date-fns, sanitize-html\\n\\n**Distribution split:**\\n| Channel | Content |\\n|---|---|\\n| `pnpm add rahman-shared` | Pure utils + hooks (cn, formatDate, useDebounce, etc.) |\\n| `npx rahman-resources add <slug>` | UI components (consumer customizes) |\\n\\nComponents need consumer-side Tailwind config + theme tokens. CLI copy lets each consumer own the file.\\n\\nAfter merge: `cd packages/shared && npm publish` (browser OTP).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d4584317b29537ce\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-97d901e124302293", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381371, "scanner": "foundry_dataset", "fingerprint": "3aa576950ca4c540a3c6eb86caabe495c7d975435710e052a0d57298d3f8a6f5", "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": "rahmanef63/resource-site#45", "human_labels": ["agent_instruction_gap"], "issue_number": "45", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f33f82105ec65fe1", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#45\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#45\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2351fcea7d37aa90\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/45\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/45\\nTitle: fix(structure): rename template-base admin \u2192 admin-panel (R1 cleanup)\\nBody:\\n## Summary\\n\\n\\\\`prepublishOnly\\\\` of \\\\`packages/cli\\\\` was failing on \\\\`validate-structure\\\\` R1:\\n\\n\\\\`\\\\`\\\\`\\n\u2716 [R1] slice \\\\\\\"admin\\\\\\\" lives in BOTH frontend/slices/ and template-base/frontend/slices/\\n\\\\`\\\\`\\\\`\\n\\nTwo different slices accidentally shared the directory name \\\\`admin\\\\`:\\n- \\\\`frontend/slices/admin/\\\\` \u2192 simple admin shell (slug \\\\`admin\\\\`, harvest from rahmanef.com, PR #33)\\n- \\\\`template-base/frontend/slices/admin/\\\\` \u2192 17-section panel (slug \\\\`admin-panel\\\\`, from superspace)\\n\\nR1 was right \u2014 same slug name in both trees breaks the canonical-path contract. Fix is to rename the template-base copy so its directory matches its actual slug \\\\`admin-panel\\\\`.\\n\\n## Changes\\n\\n**Renamed (git mv):**\\n- \\\\`template-base/frontend/slices/admin\\\\` \u2192 \\\\`admin-panel\\\\`\\n- \\\\`template-base/convex/features/admin\\\\` \u2192 \\\\`admin-panel\\\\`\\n\\n**Refs updated:**\\n- \\\\`CLAUDE.md\\\\` Source Map\\n- \\\\`lib/content/slices.ts\\\\` (manifest source \u2014 2 entries)\\n- \\\\`template-ba\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1e891c07381bdd6a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_arti\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-36f18acdda9250cb", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381370, "scanner": "foundry_dataset", "fingerprint": "aa1fed0cd42c7282d7f9e69e83d08d43a8863396f9b0a04ef8990dbc2d91b191", "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": "rahmanef63/resource-site#44", "human_labels": ["human_feedback_general"], "issue_number": "44", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-85a3e7bd7e5137eb", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#44\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#44\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0fee5e17d8087de9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/44\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/44\\nTitle: fix(structure): scaffold canonical slice layout + shared/types base\\nBody:\\naudit-structure --fix output. Layout gaps 14\u21922, base-ext 7\u21926. Adds shared/types/index.ts (BaseEntity, WorkspaceScoped, UserOwned). Empty canonical barrels per slice. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-afb5267b12a1e726\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-cba6f77c5c783a2d", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381369, "scanner": "foundry_dataset", "fingerprint": "f41102fd7ca5938fc74a4e2f3116cc840327b4d3db059d39bf6674c591e2550f", "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": "rahmanef63/resource-site#42", "human_labels": ["human_feedback_general"], "issue_number": "42", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-491279c451c15aac", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#42\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#42\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7700457a3dd3efb2\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/42\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/42\\nTitle: ssot(phase0): URGENT restore deps lost in squash-merge sweep\\nBody:\\nSquash-merges from stale-base branches overwrote package.json deps. Restore 17 deps. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7f9759855e862410\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-51bec48e744458c0", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381368, "scanner": "foundry_dataset", "fingerprint": "428afa3f9ecc2f564422bbabd38ed0b32f549fe079cdf5ea227d0dbbb9d4d48a", "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": "rahmanef63/resource-site#40", "human_labels": ["security_auth_secret"], "issue_number": "40", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-4d4351839ca7828c", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#40\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#40\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-38e5e4feae7725af\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/40\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/40\\nTitle: ssot(phase5): docker-compose.yml + extend .env.example (si-coder Dokploy prep)\\nBody:\\n## Summary\\nFile-only Dokploy deploy prep:\\n- `docker-compose.yml` \u2014 Next.js frontend + self-hosted Convex backend (CareerPack pattern, proven on Dokploy)\\n- `.env.example` extended w/ auth slice (JWT_PRIVATE_KEY/JWKS/OAuth/super-admin), DOKU + SEO envs, CONVEX_SITE/CLOUD_ORIGIN\\n\\n## What this does NOT do\\n- \u274c Does NOT deploy anything\\n- \u274c Does NOT change runtime config\\n- \u2705 Provides artifact for `node ~/.agents/skills/si-coder/scripts/deploy.js` to consume when operator is ready\\n\\n## si-coder rules embedded as YAML comments\\n- Pin convex-backend image (no `:latest` in prod)\\n- 127.0.0.1 bind (Dokploy reverse proxy via internal network)\\n- Healthcheck on /version\\n- convex_data volume backup discipline\\n- PBKDF2 already in convex/features/auth/auth.ts \u2014 don't switch to Scrypt\\n\\n## Validation\\n- \u2713 tsc clean, build green\\n- \u2713 docker-compose.yml syntactically valid (services structure mirrors CareerPack production)\\n\\n\ud83e\udd16 Gener\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-df4b3c0e98f60798\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"re\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-07960f010705c7bc", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381367, "scanner": "foundry_dataset", "fingerprint": "f1e452c2585f82d1484fd90853a001743860662ffcd6f1164553f6b72f7ef03f", "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": "rahmanef63/resource-site#39", "human_labels": ["human_feedback_general"], "issue_number": "39", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b8e6ad6fa2b77412", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#39\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#39\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7ec7079cffc75fee\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/39\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/39\\nTitle: ssot(phase3): decomposition recipes for oversized slices\\nBody:\\nOperator playbook for 5 [!] slices (workspaces/editor/databases/file-upload/blog). Per-slice multi-PR split plan, file groupings, LOC estimates, deps, caveats.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6a9db0368a370422\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-340da6625db9ed07", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381366, "scanner": "foundry_dataset", "fingerprint": "e10962a10ffe63bb4c298459dd978c35e9514b0c946e3958ad8d98f2b1c596bc", "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": "rahmanef63/resource-site#38", "human_labels": ["human_feedback_general"], "issue_number": "38", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b002937a8e88aee2", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#38\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#38\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-bdbce4d54b5f7002\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/38\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/38\\nTitle: ssot(phase4): `rahman-resources update slice` command\\nBody:\\nNew CLI command: `update <slug> [target] [--dry-run]`. Wraps runLift for re-pull diff after kitab updates. Slices only. tsc + build green; smoke-tested.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-117c0a043819d1e6\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-b3465a9525e57a82", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381365, "scanner": "foundry_dataset", "fingerprint": "28f7cc3bc2940b3807a5f490f49b6afc0a1c83a86aa6a083d3de500f16c4e839", "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": "rahmanef63/resource-site#37", "human_labels": ["human_feedback_general"], "issue_number": "37", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-4a08deba82b7d589", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#37\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#37\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-939320eedb1f0401\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/37\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/37\\nTitle: ssot(phase6): VERSIONING.md + Renovate config\\nBody:\\nPhase 6 docs: semver policy for slices + @rahman/shared. Renovate config: auto-merge minor/patch, batch major weekly. Pin react/react-dom majors. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-0630fa97071cf1d9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-6c6fe27487720249", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381364, "scanner": "foundry_dataset", "fingerprint": "8fd3de7d0b805972de379884348b2ace69cc24152327c6fdac4385e0fcdc874c", "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": "rahmanef63/resource-site#35", "human_labels": ["data_schema_persistence"], "issue_number": "35", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-a3ac09815d5d2d37", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#35\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#35\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5a42ff0fe628427e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/35\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/35\\nTitle: ssot(phase3): harvest comments slice (Convex core + useComments hook)\\nBody:\\nComments Convex core (schema+queries+mutations) + useComments hook + types + config. UI components deferred (notion-coupled). tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1ca0be92d303801d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-0b8f29f8fbdb83d3", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381363, "scanner": "foundry_dataset", "fingerprint": "546293d8cf71db7a98bea7c4b9f023508e23324a857bf34b5f61d5e52cb407d0", "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": "rahmanef63/resource-site#31", "human_labels": ["api_or_backend", "security_auth_secret", "ui_or_frontend"], "issue_number": "31", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-27a58ec843b15f7f", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"api_or_backend": 1, "ui_or_frontend": 2}, "linked_commit_count": 4, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#31\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: rahmanef63/resource-site#31\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 3\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 1, 'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e634512b8120e88f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/31\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/31\\nTitle: ssot(phase3): frontend auth (LoginPage + ConvexClientProvider HTTP routing)\\nBody:\\n## Summary\\n- \\\\`providers/ConvexClientProvider.tsx\\\\` (53 LOC) \u2014 **CRITICAL si-coder fix**: routes \\\\`auth:*\\\\` actions via HTTP client (not WS). Avoids \\\"Connection lost while action was in flight\\\" mid-action when Dokploy proxy kills idle WebSocket.\\n- \\\\`components/LoginPage.tsx\\\\` (210 LOC) \u2014 login-or-register Tabs UI:\\n  - Probe \\\\`userExistsByEmail\\\\` \u2192 \\\\`signIn(flow)\\\\`\\n  - Password show/hide, min-8 hint\\n  - Google OAuth button\\n  - Sonner toast + inline Alert on error\\n- \\\\`convex/_generated/api.d.ts\\\\` \u2014 codegen stub (consumer runs \\\\`npx convex dev --once\\\\` post-install).\\n\\n## Stack\\nStacks on #30 (Convex auth pipeline). Together = end-to-end harvested auth.\\n\\n## Validation\\n- \u2713 \\\\`tsc --noEmit\\\\` clean\\n- \u2713 \\\\`next build\\\\` green\\n- \u2713 263 LOC under 500 budget\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-884c3c4d6359a29f\",\n    \"filename\": \"convex/_generated/api.d.ts\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"added\",\n    \"additions\": 18,\n    \"deletions\": 0,\n    \"changes\": 18,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/ea4bb571458c765ccc1a8ce2f2de02d1678754ea/convex%2F_generated%2Fapi.d.ts\"\n  },\n  {\n    \"id\": \"github-pr-file-file-20034921ebfaac9e\",\n    \"filename\": \"frontend/slices/convex-auth/components/LoginPage.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 220,\n    \"deletions\": 0,\n    \"changes\": 220,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/ea4b\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-25babb91280ede92", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381362, "scanner": "foundry_dataset", "fingerprint": "bce34f8a21f8d0eb446f1e8e2afa164372affe59c5a72975bdc23eb73e19b7e7", "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": "rahmanef63/resource-site#30", "human_labels": ["security_auth_secret"], "issue_number": "30", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.642, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e3703e3598ba7334", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#30\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: rahmanef63/resource-site#30\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1b759640d4ea1d54\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/30\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/30\\nTitle: ssot(phase3): harvest Convex auth pipeline (PBKDF2 100k + guards)\\nBody:\\n## Summary\\nHarvest battle-tested Convex auth from CareerPack (Dokploy self-hosted production):\\n\\n- \\\\`convex/features/auth/auth.ts\\\\` \u2014 convexAuth() w/ Password + Anonymous + Google. **PBKDF2-SHA256 100k iter** (NOT Scrypt \u2014 Scrypt times out on Dokploy >60s).\\n- \\\\`convex/features/auth/auth.config.ts\\\\` \u2014 JWT domain from CONVEX_SITE_URL.\\n- \\\\`convex/features/auth/checkEmail.ts\\\\` \u2014 userExistsByEmail for login-or-register flow.\\n- \\\\`convex/_shared/auth.ts\\\\` \u2014 requireUser / requireOwnedDoc / requireAdmin / requireSuperAdmin guards.\\n\\n## si-coder lessons embedded\\n| Rule | Where in code |\\n|---|---|\\n| Use PBKDF2 not Scrypt | \\\\`auth.ts\\\\` crypto.hashSecret |\\n| 100k iterations OWASP 2023 | \\\\`auth.ts\\\\` line 45 |\\n| Constant-time compare | \\\\`auth.ts\\\\` line 78-81 |\\n| Dual-version verifier | \\\\`auth.ts\\\\` line 56-57 |\\n| Auth guards consistent | \\\\`_shared/auth.ts\\\\` |\\n\\n## Operator deploy follow-up\\nSet on Dokploy Convex compose:\\n- \\\\`JWT_PRIVATE_\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-344118dfe937df16\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-1c9a4c0d4ef0b26a", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381361, "scanner": "foundry_dataset", "fingerprint": "f5c0f8862a58d010c55f3f1f21a027231923ca7e3e0b03f6e11bcb756c986db8", "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": "rahmanef63/resource-site#3", "human_labels": ["security_auth_secret"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b7668246fc98e52d", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#3\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: rahmanef63/resource-site#3\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e05af887846cbaa4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/3\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/3\\nTitle: docs(ssot): resolve Open Decisions + Phase 5.5 Clerk migration\\nBody:\\n## Summary\\n- Resolves 4 Open Decisions from SSOT migration audit\\n- Adds Phase 5.5: data-preserving Clerk \u2192 Convex Auth migration plan (14 operator-only steps, feature-flag rollback)\\n- Decisions: GitHub Packages registry, drop Clerk (preserve users via Google sub), namespaced Convex tables, defer Studio lift\\n\\n## Decisions resolved\\n- npm registry \u2192 GitHub Packages\\n- Drop Clerk \u2192 YES, zero-data-loss via Google OAuth sub join key\\n- Convex namespacing \u2192 mandatory `<slice>_<table>`\\n- Studio lift \u2192 deferred post-Phase 5\\n\\n## Phase 5.5 highlights\\n- Operator-only, autonomous loop forbidden\\n- Same Google client ID+secret reused\\n- 30-day Clerk grace period for rollback\\n- Non-Google Clerk users get password-reset email flow\\n\\n## Test plan\\n- [ ] Verify referenced files exist in tracker dir\\n- [ ] Confirm autonomous loop denylist updated (separate change)\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-296c377bc98b20e7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-d65843aead8d00bb", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381360, "scanner": "foundry_dataset", "fingerprint": "02a5abc53da846ee31178d854bf10ff5656520c572d74efe33a7a863881185f9", "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": "rahmanef63/resource-site#29", "human_labels": ["agent_instruction_gap"], "issue_number": "29", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.625, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2aadbca734e7bc6f", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#29\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#29\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1647752b0da1ca17\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/29\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/29\\nTitle: ssot(phase2): @rahman/shared workspace + GitHub Packages publish config\\nBody:\\n## Summary\\n- \\\\`packages/shared/\\\\` scaffold \u2014 name \\\\`@rahman/shared\\\\`, v0.1.0.\\n- \\\\`publishConfig\\\\` \u2192 GitHub Packages (\\\\`https://npm.pkg.github.com\\\\`, access: restricted).\\n- Peer deps: react ^19, react-dom ^19, next >=15 <17.\\n- \\\\`.npmrc.example\\\\` template; real \\\\`.npmrc\\\\` gitignored.\\n\\n## Validation\\n- \u2713 \\\\`tsc --noEmit\\\\` clean\\n- \u2713 \\\\`next build\\\\` green\\n- \u2713 \\\\`npm run publish:dry\\\\` packs 3 files (1.5 kB), validates publish config\\n\\n## Publish (post-merge, maintainer)\\n\\\\`\\\\`\\\\`bash\\necho \\\"//npm.pkg.github.com/:_authToken=\\\\$GITHUB_TOKEN\\\" > ~/.npmrc\\ncd packages/shared\\nnpm publish\\n\\\\`\\\\`\\\\`\\nGITHUB_TOKEN needs \\\\`write:packages\\\\` scope.\\n\\n## Next\\nExports in \\\\`src/index.ts\\\\` populated once primitive PRs (#18-#27) merge \u2014 follow-up PR re-exports from \\\\`shared/ui/*\\\\`, \\\\`shared/hooks/*\\\\`, \\\\`shared/lib/*\\\\`.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-711e7214418cc4fb\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_pr\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-e98f8a14fd4f3043", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381359, "scanner": "foundry_dataset", "fingerprint": "73d88952e46d79c66f51a4240979b2fd8b7b8410c38815f49fc151355399ec1e", "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": "rahmanef63/resource-site#28", "human_labels": ["test_ci_gap"], "issue_number": "28", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f169f3a71e27c231", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#28\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: rahmanef63/resource-site#28\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ff0aefdfc6bb3aaf\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/28\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/28\\nTitle: ssot(phase2): vitest test infrastructure\\nBody:\\nAdd vitest config + happy-dom + @testing-library/react. Add `test` + `test:watch` npm scripts. Smoke test on `lib/utils.cn` (3 passing). Per-primitive tests will follow as stacked PRs after each primitive lands. tsc + build green. `vitest run` 3/3 passing.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-225a148ba4eb5292\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-27c59247f136e10a", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381358, "scanner": "foundry_dataset", "fingerprint": "fec526b2986818e62b4285e1757d63aa2db50a003eaa0e5b7bc0ee155ddf7391", "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": "rahmanef63/resource-site#27", "human_labels": ["human_feedback_general"], "issue_number": "27", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e31f39b7ea565058", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#27\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#27\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5c6544ee7ecb4d31\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/27\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/27\\nTitle: ssot(phase2): backend-agnostic FileUpload primitive\\nBody:\\nAuthor generic FileUpload (170 LOC) \u2014 consumer supplies `onUpload` callback. Dropzone + progress + status. NOT direct harvest of superspace useFileUpload (Convex-coupled). Deps: react-dropzone + @radix-ui/react-progress. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b2dff17699b9051c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-314b2f76837fd3dd", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381357, "scanner": "foundry_dataset", "fingerprint": "4d07d5c0717e1248df5cad0d980dd8b999d2fbb7ac3fa79cc5d4be6ec4a29f0b", "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": "rahmanef63/resource-site#25", "human_labels": ["human_feedback_general"], "issue_number": "25", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-98e4cf6b2de4c21b", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#25\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#25\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-258f6d676e137e69\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/25\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/25\\nTitle: ssot(phase2): formatDate + sanitizeHtml utils\\nBody:\\nAuthor 2 utils. formatDate (35 LOC) wraps date-fns. sanitizeHtml (33 LOC) wraps sanitize-html w/ conservative defaults. Adds sanitize-html + @types/sanitize-html + date-fns deps. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-96411f72e924f2cf\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-faad37915e427555", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381356, "scanner": "foundry_dataset", "fingerprint": "189957a30bbbfe78f83dcacd40e461a88419fabbdcbc27c1a2b8de0c2f773b8b", "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": "rahmanef63/resource-site#24", "human_labels": ["human_feedback_general"], "issue_number": "24", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-dcbd6609843e751c", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#24\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#24\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ef9f986e2d51a5fd\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/24\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/24\\nTitle: ssot(phase2): author useDebounce + useClickOutside hooks\\nBody:\\nAuthor 2 hooks fresh (not present as separate files in superspace). useDebounce (14 LOC) + useClickOutside (28 LOC). Zero new deps. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ac6cb5bfc1c49eef\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-8c4dc02db4fef853", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381355, "scanner": "foundry_dataset", "fingerprint": "45a48ae81a33a8687b8b263f7c33d61830912b126e4a087a17192d2461d2d329", "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": "rahmanef63/resource-site#22", "human_labels": ["human_feedback_general"], "issue_number": "22", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a75493ab18192e1d", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#22\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#22\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-fb28a0213d8bbe98\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/22\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/22\\nTitle: ssot(phase2): prereq \u2014 calendar primitive + date-fns + react-day-picker\\nBody:\\nAdd shadcn calendar.tsx + date-fns + react-day-picker. Enables SharedDatePicker harvest. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c614cdf9dad9b566\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-fdb387de9c2a6bad", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381354, "scanner": "foundry_dataset", "fingerprint": "9be19463c9c96cad61223355c801ddf57ff2bc5e9c486a2d08d39f3586678b08", "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": "rahmanef63/resource-site#21", "human_labels": ["human_feedback_general"], "issue_number": "21", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-9f14a9c6467ef334", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#21\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#21\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2e4f42ec79355cd0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/21\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/21\\nTitle: ssot(phase2): extend lib/utils.ts with uid + clamp\\nBody:\\nAdd `uid()` + `clamp()` to lib/utils.ts. Sync with superspace baseline. Zero new deps. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b1b28328e911221c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-0c2f9ad7e62e2aab", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381353, "scanner": "foundry_dataset", "fingerprint": "859f514e66d780df24fe31227372138a2e04afe2a40a3796f194508a3fe6ab14", "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": "rahmanef63/resource-site#20", "human_labels": ["human_feedback_general"], "issue_number": "20", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-25153ae8f05df4d5", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#20\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#20\nRepo: rahmanef63/resource-site\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-674be65b9c5edf19\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/20\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/20\\nTitle: ssot(phase2): harvest useResponsive hook\\nBody:\\nHarvest `shared/hooks/useResponsive.ts` (80 LOC). Exports useResponsive (breakpoints) + useMediaQuery. Zero deps. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-39378865a0621410\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-5e898080cf46d496", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381352, "scanner": "foundry_dataset", "fingerprint": "b463fea5cda91ac904807035b954ddfa56d3dfe102feee269124a99a24548356", "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": "rahmanef63/resource-site#14", "human_labels": ["security_auth_secret", "source_or_other"], "issue_number": "14", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-4490b2ec0a60f74a", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#14\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: rahmanef63/resource-site#14\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cb576f25caf40e00\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/14\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/14\\nTitle: ssot(phase1): midtrans-payment slice.manifest\\nBody:\\n## Summary\\n- Add `frontend/slices/midtrans-payment/slice.manifest.json` (v0.1.0).\\n- Namespaced tables `midtrans_payment_orders`, `midtrans_payment_webhook_events`.\\n- Env: MIDTRANS_SERVER_KEY (server), MIDTRANS_CLIENT_KEY (public), MIDTRANS_IS_PRODUCTION (optional).\\n- Peer slice: `convex-auth`.\\n\\n## Operator follow-up\\nSibling to doku-payment (#13). Both still share `paymentOrders` in current schema.ts \u2192 audit:slices collision. Manifests capture target namespaced state per 2026-05-12 decision; schema split in Operator Backlog.\\n\\n## Validator\\n\\\\`\\\\`\\\\`\\nSummary: 2 valid \u00b7 8 no manifest \u00b7 0 errors\\n\\\\`\\\\`\\\\`\\n\\n## Stack\\nStacks on #5 (ssot/phase1-shared-scaffold).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-ec201e3f77904af8\",\n    \"filename\": \"frontend/slices/midtrans-payment/slice.manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 72,\n    \"deletions\": 0,\n    \"changes\": 72,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/184abdeec9c2aedcb6a083531780ad55fa77d029/frontend%2Fslices%2Fmidtrans-payment%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-42bf66965fd0d52e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_v\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-349b1124efe4b849", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381351, "scanner": "foundry_dataset", "fingerprint": "1c9c10dda41ee09da186ac6b8c7285b74c8ad03ce29f09adad8e0d8f33d4c265", "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": "rahmanef63/resource-site#13", "human_labels": ["security_auth_secret", "source_or_other"], "issue_number": "13", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-7bd135659cda1980", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#13\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#13\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-186f2c382c3d3118\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/13\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/13\\nTitle: ssot(phase1): doku-payment slice.manifest\\nBody:\\n## Summary\\n- Add `frontend/slices/doku-payment/slice.manifest.json` (v0.1.0).\\n- Namespaced tables `doku_payment_orders`, `doku_payment_webhook_events`.\\n- Env: DOKU_CLIENT_ID, DOKU_SECRET_KEY (server).\\n- Peer slice: `convex-auth` (order ownership).\\n\\n## Operator follow-up\\nExisting `convex/features/payment/schema.ts` shares `paymentOrders` between doku + midtrans \u2192 audit:slices reports collision. Manifest captures *target* namespaced state per 2026-05-12 decision. Schema migration tracked in Operator Backlog.\\n\\n## Validator\\n\\\\`\\\\`\\\\`\\nSummary: 2 valid \u00b7 8 no manifest \u00b7 0 errors\\n\\\\`\\\\`\\\\`\\n\\n## Stack\\nStacks on #5 (ssot/phase1-shared-scaffold).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-ca454e7aed448234\",\n    \"filename\": \"frontend/slices/doku-payment/slice.manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 76,\n    \"deletions\": 0,\n    \"changes\": 76,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/c5e451a98dd1256529e4124d774feb2daace0a3d/frontend%2Fslices%2Fdoku-payment%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1b2dcf75a302faea\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_coo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-b09f3667ffdd43f6", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: rahmanef63/resource-site"}, "properties": {"repobilityId": 381350, "scanner": "foundry_dataset", "fingerprint": "1176b2924a62a9708807e86398ba65badbbe528e35e2bfe03000513d88163165", "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": "rahmanef63/resource-site#10", "human_labels": ["agent_instruction_gap", "source_or_other"], "issue_number": "10", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-60bcf8ad524b6d6a", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 2, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#10\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#10\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1ef424d8292bd288\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/10\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/10\\nTitle: feat(ssot/phase1): resend-newsletter slice.manifest\\nBody:\\nStacks on #5. Newsletter manifest \u2014 Resend transactional email + workspace-isolated tables (newsletter_subscribers, newsletter_broadcasts). 4 RBAC permissions.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-fd245b542ed89b99\",\n    \"filename\": \"frontend/slices/resend-newsletter/slice.manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 72,\n    \"deletions\": 0,\n    \"changes\": 72,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/9baea1ba4b166131dae521672df4f6230426e0b8/frontend%2Fslices%2Fresend-newsletter%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-bd7047a55c567e08\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-assumption_checks-d8f6eeb9886eaa94", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419697, "scanner": "foundry_dataset", "fingerprint": "129ea7cb582ede3799b8a16318beb92f6f01ab0580a9a42e7f0be8dafcc67bb2", "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, "deployment_env_gap": 1, "dependency_or_build": 3, "security_auth_secret": 1, "ci_pending_or_incomplete": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#56", "issue_number": "56", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2bd7945181e7bf65", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#56\nRepo: rahmanef63/resource-site\nIssue/PR number: 56\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'dependency_or_build': 3, 'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-a3143e80241c0eb7", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419696, "scanner": "foundry_dataset", "fingerprint": "186eb4bc51a491e6009e8c2030fd0cfb68fb198cd1382aa2888eb904dc84b0bb", "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, "source_or_other": 12, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 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": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 12, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 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": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 12, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#55", "issue_number": "55", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-bdec828d80390afd", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 48}}, "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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#55\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#55\nRepo: rahmanef63/resource-site\nIssue/PR number: 55\nGraph consistency label: supported_by_verification_signal\nNodes: 29\nEdges: 56\nNode types: {'pr_file': 12, 'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 12, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'source_or_other': 12, 'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-0eab6831cc1c4cf3", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419695, "scanner": "foundry_dataset", "fingerprint": "41720a7545c3c1bb013e22d620173a53e29927b0c425a9e660e1871dd67f7b78", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 2, "test_ci_gap": 1, "source_or_other": 1, "verification_or_tests": 3, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#52", "issue_number": "52", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-8fd7a99cbeea272b", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#52\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#52\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#52\nRepo: rahmanef63/resource-site\nIssue/PR number: 52\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'verification_or_tests': 3, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-a5050a4c3e772e72", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419694, "scanner": "foundry_dataset", "fingerprint": "d93b5a76c7e04809d14a3812d5a703ae6536aea83181e956096c1e7f9be10de1", "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": 8, "test_ci_gap": 1, "mock_placeholder": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "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": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#50", "issue_number": "50", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ec61b1976dd5a4a3", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#50\nRepo: rahmanef63/resource-site\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 8, '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, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-c368801e1a4e2547", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419693, "scanner": "foundry_dataset", "fingerprint": "4d150d7d72af82b228bea7ca8a82ccf6dc2146b6a45252e58f929ce87427b91b", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#43", "issue_number": "43", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e482a9a437fabc4b", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#43\nRepo: rahmanef63/resource-site\nIssue/PR number: 43\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-f9055df478740625", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419692, "scanner": "foundry_dataset", "fingerprint": "4e274852af60d8f8c8b95d78e5515e77ccc60f166b500b1b76d467fbe9131492", "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, "runtime_failure": 1, "dependency_or_build": 1, "verification_or_tests": 1, "ci_pending_or_incomplete": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#4", "issue_number": "4", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-63abac1149f652ba", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#4\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#4\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#4\nRepo: rahmanef63/resource-site\nIssue/PR number: 4\nGraph consistency label: supported_by_verification_signal\nNodes: 15\nEdges: 17\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, '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, 'verification_or_tests': 1, 'dependency_or_build': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-b85c8e20717e8cf2", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419691, "scanner": "foundry_dataset", "fingerprint": "969abe21309718cd5a3292a78a39c9d0f63da38f4db2416db03cce931801eb94", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#36", "issue_number": "36", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-5d4243d9a9bc1ed4", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#36\nRepo: rahmanef63/resource-site\nIssue/PR number: 36\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-c6f9d1b850a4adc7", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419690, "scanner": "foundry_dataset", "fingerprint": "96604868dbdbfbc45f9e6e9667deecaf1f0c71ec1a80352d3c3b684f18285115", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 2, "api_or_backend": 1, "ui_or_frontend": 2, "dependency_or_build": 2, "security_auth_secret": 1, "ci_pending_or_incomplete": 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": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 3, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#31", "issue_number": "31", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7b64989dd68d3b6d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 8}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#31\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#31\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#31\nRepo: rahmanef63/resource-site\nIssue/PR number: 31\nGraph consistency label: weak_supervision_needs_review\nNodes: 17\nEdges: 25\nNode types: {'commit': 4, 'pr_file': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'chain_has_link_quality': 3, 'issue_chain_touches_file': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-9198e4617abd38f6", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419689, "scanner": "foundry_dataset", "fingerprint": "d920059fee62301bbd2569818bf5c75282c157128ef1b9bfd7cb7f506cd62ced", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"test_ci_gap": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#28", "issue_number": "28", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-d24740de02e8ab4d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#28\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#28\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#28\nRepo: rahmanef63/resource-site\nIssue/PR number: 28\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 17\nNode types: {'link_quality': 4, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-809ed1535f1a9cc5", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419688, "scanner": "foundry_dataset", "fingerprint": "60dac8fd029b73acac4b9a85c8435aa4c06956872c57ec81f2346e778d65afe3", "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, "runtime_failure": 1, "dependency_or_build": 1, "verification_or_tests": 1, "ci_pending_or_incomplete": 1, "issue_or_pull_request_thread": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#17", "issue_number": "17", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-f1ddfbab0387eb03", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#17\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#17\nRepo: rahmanef63/resource-site\nIssue/PR number: 17\nGraph consistency label: supported_by_verification_signal\nNodes: 15\nEdges: 17\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, '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, 'verification_or_tests': 1, 'dependency_or_build': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-1b07e693c7776663", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 419687, "scanner": "foundry_dataset", "fingerprint": "5eeef7aae840f0bd4097bc1bcc95814654155bd7d076c902c92447c197484d4c", "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, "source_or_other": 1, "verification_or_tests": 2, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#15", "issue_number": "15", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-0d9b03fe9ef51700", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#15\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#15\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#15\nRepo: rahmanef63/resource-site\nIssue/PR number: 15\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-ae2210f5a2fe084e", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 410968, "scanner": "foundry_dataset", "fingerprint": "d97b5e6290731ca14900673cc6a52614d4c1b45654ce83eb6d4f1e5f5fc62dd6", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 4, "docs_or_claims": 1, "schema_or_data": 1, "ui_or_frontend": 8, "source_or_other": 12, "dependency_or_build": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "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": 62, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 22, "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": 36, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 22, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#57", "issue_number": "57", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-3afab156c9481747", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 4, "schema_or_data": 4, "ui_or_frontend": 32, "source_or_other": 48}}, "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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#57\nRepo: rahmanef63/resource-site\nIssue/PR number: 57\nGraph consistency label: weak_supervision_needs_review\nNodes: 36\nEdges: 62\nNode types: {'pr_file': 22, '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': 22, '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': 12, 'ui_or_frontend': 8, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 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/rahmanef63/resource-site", "source_id": "graph-query-motif_query-4e00a0bf40ac4d06", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 410967, "scanner": "foundry_dataset", "fingerprint": "fe2396b116ecdcc5cb2acd6a291993a5f7b7984b69e0fb27b162c5f7202ebd14", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#35", "issue_number": "35", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-137de1d813372293", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#35\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#35\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#35\nRepo: rahmanef63/resource-site\nIssue/PR number: 35\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 16\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- 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/rahmanef63/resource-site", "source_id": "graph-query-motif_query-b0e1c96c602789a7", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 410966, "scanner": "foundry_dataset", "fingerprint": "0b4dadc9766f4b49235e0eb5a62f51cf9b6906cf9f139d9ee80697d7a1ba651d", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#34", "issue_number": "34", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-82b54171d5106bc3", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: assumption_check\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#34\nRepo: rahmanef63/resource-site\nIssue/PR number: 34\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-3f853c6915cec85f", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 410965, "scanner": "foundry_dataset", "fingerprint": "4062fc478e19df4ebaca058669872b6ed1b007b1b195e9f237d5609c4f9ec4da", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 3, "verification_or_tests": 2, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 20, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#32", "issue_number": "32", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-17c11b3ace6eb2d9", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#32\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#32\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#32\nRepo: rahmanef63/resource-site\nIssue/PR number: 32\nGraph consistency label: supported_by_verification_signal\nNodes: 17\nEdges: 20\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-c0139cc07e36a9d6", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 410964, "scanner": "foundry_dataset", "fingerprint": "dd00342da808f8c77a1554c0850a8a55083960e4e0df72150424f396c8b12cd6", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "data_schema": 1, "source_or_other": 1, "verification_or_tests": 2, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 23, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#12", "issue_number": "12", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ce157dc36e2e1d63", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#12\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#12\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#12\nRepo: rahmanef63/resource-site\nIssue/PR number: 12\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 23\nNode types: {'commit': 5, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'data_schema': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-a7731e7f84c78e28", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390495, "scanner": "foundry_dataset", "fingerprint": "6edc60ce5750d1cd4111bc10c300a6b9718a9ae935dfed3178fe742cdced3192", "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": "rahmanef63/resource-site#8", "human_labels": ["deployment_env_gap", "source_or_other"], "issue_number": "8", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-c04bc44f8356147a", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 1}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#8\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#8\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d86f57daa218cd20\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/8\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/8\\nTitle: feat(ssot/phase1): full-width-toggle slice.manifest\\nBody:\\nStacks on #5. Third sample manifest \u2014 UI-only slice, minimal shape (no Convex/env/deps).\\n\\nValidator: 2 valid / 8 no manifest / 0 errors.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4aea762614842a48\",\n    \"filename\": \"frontend/slices/full-width-toggle/slice.manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 26,\n    \"deletions\": 0,\n    \"changes\": 26,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/4059b5393fe06ba474f867eec18347d17a73c3d1/frontend%2Fslices%2Ffull-width-toggle%2Fslice.manifest.json\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8a53e4efff42482c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-04113919b7d5ce05", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390494, "scanner": "foundry_dataset", "fingerprint": "3d947c44febb9023fef86857762fd26e90d0dce40f5e117911ff9acb5801b6fa", "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": "rahmanef63/resource-site#50", "human_labels": ["mock_placeholder", "test_ci_gap"], "issue_number": "50", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2d538deff814adbb", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\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: rahmanef63/resource-site#50\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1, 'test_ci_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f13e50e077783f8e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/50\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/50\\nTitle: feat(rresource): harvest 9 CareerPack feature skills + audit fixes\\nBody:\\n## Summary\\n\\n- **9 new plugin sub-skills** (matcher, networking, financial-calculator, career-dashboard, portfolio, cv-generator, document-checklist, skill-roadmap, mock-interview) \u2192 kitab now ships 60 sub-skills (was 51).\\n- **9 cookbook specs** lifted verbatim from `CareerPack/docs/features/`.\\n- **Audit fixes**: MCP peer dep `^0.9.0\u2192^0.11.0`, MCP `0.9.0\u21920.9.1`, calendar.tsx `table\u2192month_grid` (react-day-picker v10), sidebar.tsx import path, DOKU img eslint comment, CLAUDE.md doc drift.\\n- **Docs**: skill name normalization (`/use-adopt-rahman-shared\u2192/rr-adopt`, `/prep-for-resource\u2192/rr-prep`, `/send-to-resource\u2192/rr-send`) + new `docs/per-project-harvest-prompts.md`.\\n\\n## What's NOT in this PR\\n\\nEach new skill's `src/` only holds an upstream-pending README with `cp -r` commands. Real code vendoring is a separate phase via `/rr-prep` + `/rr-send` from `~/projects/CareerPack` per slug.\\n\\n## Test plan\\n\\n- [x] `npx tsc --noEmit` cl\"\n  },\n  {\n    \"id\": \"github-feedback-comment-d0e03f2dc6ee3185\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/50#issuecomment-4448642221\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/50#issuecomment-4448642221\\nTitle: \\nBody:\\n## CI status \u2014 pre-existing failures inherited from main\\n\\nVerified via `gh run view 25809917519` on main sha `ceb4979`: the 2 red checks (`typecheck + build (deployed kitab)` and `high-severity vuln gate`)\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-d1bc4f1584053e61", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390493, "scanner": "foundry_dataset", "fingerprint": "d08a9010fa8e9ecc5f53496173bc919930b6451df39135eb54b2b9faaf4d3d36", "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": "rahmanef63/resource-site#5", "human_labels": ["mock_placeholder"], "issue_number": "5", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "rahmanef63/resource-site", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f2ff9df3a5e31ab3", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#5\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: rahmanef63/resource-site#5\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b7397aac16196695\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/5\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/5\\nTitle: feat(ssot/phase1): shared/ scaffold + slice.manifest validator + ai-router sample\\nBody:\\n## Summary\\nPhase 1 of SSOT migration \u2014 make resources/ bulletproof as kitab.\\n\\n## What's in\\n- `shared/{ui,lib,hooks,types}/` scaffolding with placeholder READMEs documenting:\\n  - Phase 2 harvest source map (where to copy each primitive from)\\n  - Distribution model (npm package @rahman/shared)\\n  - Anti-patterns each primitive will enforce\\n- `scripts/validation/validate-manifests.mjs` \u2014 JSON Schema validator (no ajv dep) for slice.manifest.json\\n- `docs/slice.manifest.schema.json` \u2014 adds `$schema` property allowance (IDE hint)\\n- `frontend/slices/ai-router/slice.manifest.json` \u2014 first sample manifest\\n\\n## Validator output\\n- 1 valid (ai-router)\\n- 9 slices need manifest (broadcast-channel-sync, cal-com-booking, convex-auth, doku-payment, full-width-toggle, mdx-blog, midtrans-payment, resend-newsletter, vector-search)\\n- 0 schema errors\\n\\n## Wiring\\n`slices:check` script now includes `validate:manifests`. Once all 9 sl\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6c0bd961a02f36bc\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-632bea2df20d8104", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390492, "scanner": "foundry_dataset", "fingerprint": "ad28be78292a73eed917952f3afc1ee79e3f261cd0f4623252509ae2fb1a7d7e", "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": "rahmanef63/resource-site#49", "human_labels": ["agent_instruction_gap"], "issue_number": "49", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2cdd0b5dba1c7b65", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#49\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#49\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-99bc4d1913c21d66\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/49\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/49\\nTitle: docs: advertise bottom-up harvest flow + /send-to-resource skill\\nBody:\\nRecords the upstream skill in kitab CLAUDE.md so any AI session opening resources/ sees the two-way flow.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-70a7729624b47bdc\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-3439ccd65e5c01de", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390491, "scanner": "foundry_dataset", "fingerprint": "ecc18ce6f60441f5613585b71a4fd1244f4343ce1d349464ee063b27cc4e78d1", "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": "rahmanef63/resource-site#46", "human_labels": ["agent_instruction_gap"], "issue_number": "46", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-5d1ead028ef435d6", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#46\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#46\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-983cd00c7d788219\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/46\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/46\\nTitle: feat(packages/shared): rename @rahman/shared \u2192 rahman-shared (npm public)\\nBody:\\nSwitches publish target from GitHub Packages \u2192 npm public registry. Pattern matches rahman-resources@0.11.1 + rahman-resources-mcp@0.9.0. Unblocks consumer adoption.\\n\\nDry-run: rahman-shared@0.1.0, 1.4 kB, 3 files.\\n\\nAfter merge: `cd packages/shared && npm publish`\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8f82902ef6745099\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-22753a73e0f886d6", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390490, "scanner": "foundry_dataset", "fingerprint": "b38f8d168a83dfba18caa2f3cce941ae7c816f6def581d4918c28992b29b4eb6", "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": "rahmanef63/resource-site#43", "human_labels": ["test_ci_gap"], "issue_number": "43", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-965a522ef5cdd7c6", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#43\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#43\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cc993db5cbb4d821\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/43\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/43\\nTitle: ssot(phase1): recover 9 manifests + CI gate (lost in stack-base deletion)\\nBody:\\nWhen PR #5 merged via --delete-branch, stacked PRs #6/#8-#16 auto-closed without merging their content. Recover via cherry-pick bundle: 9 manifests (convex-auth, full-width, mdx-blog, resend, cal-com, vector-search, doku, midtrans, broadcast) + CI gate workflow. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4ea6f02ba2a1aca7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-96b9e5b8a0736826", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390489, "scanner": "foundry_dataset", "fingerprint": "72bd64c91ae5e0a2dab40ac89d6478f91a71af8fb904f501a6cb328f1cc85509", "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": "rahmanef63/resource-site#36", "human_labels": ["test_ci_gap"], "issue_number": "36", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a81c60df09711273", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#36\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#36\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d24c5aa925bd8cc9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/36\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/36\\nTitle: ssot(phase3): manifests for newly harvested slices (seo + admin + audit-log + comments)\\nBody:\\n4 manifests for Phase 3 slices. Schema v1 compliant. Will validate via CI gate (#16) post-merge.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a99f961848900d74\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-50f44c9be37ad1f4", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390488, "scanner": "foundry_dataset", "fingerprint": "b01ee827e1d3a5b6d90823e8e22d61a2089f707bc2b20373f047b81a10f12c10", "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": "rahmanef63/resource-site#34", "human_labels": ["data_schema_persistence"], "issue_number": "34", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b86f82e6e3bbda48", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#34\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#34\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-20efbe4ed327e9a8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/34\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/34\\nTitle: ssot(phase3): harvest audit-log Convex core (schema + logger)\\nBody:\\naudit-log schema + canonical logAuditEvent helper (487 LOC). Frontend deferred \u2014 superspace-coupled. queries.ts deferred \u2014 needs requireActiveMembership harvest first. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-80670ecef9ccfb2c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-f2a690e3ea8c4ced", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390487, "scanner": "foundry_dataset", "fingerprint": "2b4439c9d5243c065971e3f66d22182cc2dd15ec86451c9437e8363dbff91e0f", "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": "rahmanef63/resource-site#33", "human_labels": ["ui_workflow_gap"], "issue_number": "33", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-85d9ad3835ddb350", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#33\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#33\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-834096ecd8dec957\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/33\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/33\\nTitle: ssot(phase3): harvest admin-crud slice from rahmanef.com\\nBody:\\nGeneric admin shell (~200 LOC). Frontend page scaffold + Convex queries. Adjusted defineFeature pattern. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2298d2b576072884\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-2faca8622b6e532b", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390486, "scanner": "foundry_dataset", "fingerprint": "71e2dcd720c4d75f60fe70a46ef712885afe6e0ea02664537f796910098e703a", "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": "rahmanef63/resource-site#26", "human_labels": ["ui_workflow_gap"], "issue_number": "26", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-d26b698a466a7541", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#26\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#26\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-fda54938f32f744a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/26\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/26\\nTitle: ssot(phase2): canonical shadcn Form wrappers (RHF + Zod)\\nBody:\\nCanonical shadcn form.tsx (130 LOC). Form/FormField/FormItem/FormLabel/FormControl/FormDescription/FormMessage. Adds zod + @hookform/resolvers. tsc + build green.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-75d28a9eccbb4d1f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-290b54e68285f01d", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390485, "scanner": "foundry_dataset", "fingerprint": "72ee718447ea1b5fa192d91fc83d079bb8556970a6102d0a50a9526d4d4802c1", "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": "rahmanef63/resource-site#23", "human_labels": ["dependency_or_build", "ui_or_frontend", "ui_workflow_gap"], "issue_number": "23", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-e76c56db7b18cbf0", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#23\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#23\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'dependency_or_build': 2, 'ui_or_frontend': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d48aa3f05efa3f85\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/23\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/23\\nTitle: ssot(phase2): harvest SharedDatePicker + DateField\\nBody:\\nSharedDatePicker (201 LOC) + DateField (42 LOC, RHF wrapper). Adds react-hook-form dep. Stacks on #22. tsc + build green.\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-1f02a105b39b34c3\",\n    \"filename\": \"package-lock.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 17,\n    \"deletions\": 0,\n    \"changes\": 17,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/fdc437808ed035cbfbbded699e0883ac4acebdd3/package-lock.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-a31d8c8b6dbf2107\",\n    \"filename\": \"package.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/fdc437808ed035cbfbbded699e0883ac4acebdd3/package.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-a4c06acc661b005b\",\n    \"filename\": \"shared/ui/DateField/DateField.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 42,\n    \"deletions\": 0,\n    \"changes\": 42,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/fdc437808ed035cbfbbded699e0883ac4acebdd3/shared%2Fui%2FDateField%2FDateField.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-9abf5e05354055dd\",\n    \"filename\": \"shared/ui/SharedDatePicker/SharedDatePicker.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 201,\n    \"deletions\": 0,\n    \"changes\": 201,\n    \"blob_url\": \"https://github.com/rahmanef63/resource-site/blob/fdc437808ed035cbfbbded699e0883ac4acebdd3/shared%2Fui%2FSharedDatePicker%2FSharedDatePicker.tsx\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-a4629a4831dd0433", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: rahmanef63/resource-site"}, "properties": {"repobilityId": 390484, "scanner": "foundry_dataset", "fingerprint": "ae13e88ae95b96d84c7ccc499d5f9382d53011f1e6ee6852826b83a5cfa5aaad", "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": "rahmanef63/resource-site#19", "human_labels": ["agent_instruction_gap"], "issue_number": "19", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "rahmanef63/resource-site", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-cfb3558fe8f03cab", "helicopter_views": {"graphs": 2, "schemas": 3}, "artifact_families": {"ci": 2, "docs": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 5, "source_artifact_count": 3, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#19\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: rahmanef63/resource-site#19\nRepo: rahmanef63/resource-site\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-10b421f8d4e3e097\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/rahmanef63/resource-site/pull/19\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: rahmanef63/resource-site\\nAuthor: rahmanef63 (User)\\nURL: https://github.com/rahmanef63/resource-site/pull/19\\nTitle: ssot(phase2): harvest SmartLink primitive\\nBody:\\n## Summary\\n- New: \\\\`shared/ui/SmartLink/SmartLink.tsx\\\\` (85 LOC, harvested from superspace).\\n- Forward-ref \\\\`<a>\\\\` wrapper around \\\\`next/link\\\\` with href classification:\\n  - Internal (\\\\`/foo\\\\`, \\\\`#anchor\\\\`) \u2192 \\\\`next/link\\\\` (prefetch + soft nav)\\n  - External (\\\\`https://\\\\`, \\\\`//x\\\\`) \u2192 \\\\`<a target=_blank rel=noopener noreferrer>\\\\`\\n  - Protocol (\\\\`mailto:|tel:|sms:|ftp:\\\\`) \u2192 \\\\`<a>\\\\` (OS handler)\\n- Zero new deps.\\n\\n## Post-checks\\n- \u2713 \\\\`tsc --noEmit\\\\` clean\\n- \u2713 \\\\`next build\\\\` green\\n\\n## Stack\\nBase = main (no prereq).\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a020442984f1d976\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: rahmanef63/resource-site\nGraph label: source_backed_multi_signal_graph\nNodes: 12\nEdges: 15\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 5, \"repo\": 1, \"source_artifact\": 3, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 3, \"repo_has_source_artifact\": 3, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 3}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"fake_real_data_plus_verification_gap\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "comment-chain-pattern-bad_chains-d8c3b2871bedbeb7", "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": "rahmanef63/resource-site", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414492, "scanner": "foundry_dataset", "fingerprint": "18b83e04c07e6e7d3a910ca0d8d650e3bfbeb7fb959132f6b438c3efaba617a3", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 3, "security_or_auth": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#6", "issue_number": "6", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-73858ce1030bb6f9", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"security_or_auth": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#6\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#6\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#6\nRepo: rahmanef63/resource-site\nIssue/PR number: 6\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 17\nNode types: {'commit': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 3, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'security_or_auth': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-f39634c1bed047de", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414491, "scanner": "foundry_dataset", "fingerprint": "bd4e7b152474ec85191e253abc6ef5079017e591429fd6a0ef5664b556bda000", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 4, "docs_or_claims": 1, "schema_or_data": 1, "ui_or_frontend": 8, "source_or_other": 12, "dependency_or_build": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 62, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 22, "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": 36, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 22, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#57", "issue_number": "57", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-764ac80ce4afc7b8", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 4, "schema_or_data": 4, "ui_or_frontend": 32, "source_or_other": 48}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#57\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#57\nRepo: rahmanef63/resource-site\nIssue/PR number: 57\nGraph consistency label: weak_supervision_needs_review\nNodes: 36\nEdges: 62\nNode types: {'pr_file': 22, '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': 22, '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': 12, 'ui_or_frontend': 8, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'schema_or_data': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-4a0038bf78764321", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414490, "scanner": "foundry_dataset", "fingerprint": "d97acc3cb22fc90b29993b7071522d1c406416f5410065ea168541202c78695b", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 3, "deployment_env_gap": 1, "dependency_or_build": 3, "security_auth_secret": 1, "ci_pending_or_incomplete": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "comment_chain_has_ci": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#56", "issue_number": "56", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-5bc4b67f6130ff93", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"dependency_or_build": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#56\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#56\nRepo: rahmanef63/resource-site\nIssue/PR number: 56\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'dependency_or_build': 3, 'bug_fix': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-9300a3d8867efa21", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414489, "scanner": "foundry_dataset", "fingerprint": "6d66a491987d5235ae7107bdfdb7a0c3e3a4cfbdc2000c494da6c28adedf01af", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 2, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 13, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#47", "issue_number": "47", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-365e8de53318ff11", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#47\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#47\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#47\nRepo: rahmanef63/resource-site\nIssue/PR number: 47\nGraph consistency label: weak_supervision_needs_review\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-6c1e28615c8ca8bc", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414488, "scanner": "foundry_dataset", "fingerprint": "2909fbe35b3d8da48ec51345ae57d174e0d9a5473229559f390626dbae75e588", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 4, "dependency_or_build": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#40", "issue_number": "40", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-21a79076debe99f8", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#40\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#40\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#40\nRepo: rahmanef63/resource-site\nIssue/PR number: 40\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-f031ec3b0f7a8a4a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414487, "scanner": "foundry_dataset", "fingerprint": "c2e190be28e478a3c40437e8c350dcf10f3b024a4c456df05528be17faaa24a4", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 2, "api_or_backend": 1, "ui_or_frontend": 2, "dependency_or_build": 2, "security_auth_secret": 1, "ci_pending_or_incomplete": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 4, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 17, "node_types": {"repo": 1, "commit": 4, "thread": 1, "comment": 1, "pr_file": 3, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#31", "issue_number": "31", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-3d923ab3365ca8a7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"api_or_backend": 4, "ui_or_frontend": 8}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#31\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#31\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#31\nRepo: rahmanef63/resource-site\nIssue/PR number: 31\nGraph consistency label: weak_supervision_needs_review\nNodes: 17\nEdges: 25\nNode types: {'commit': 4, 'pr_file': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 4, 'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'chain_has_link_quality': 3, 'issue_chain_touches_file': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'ui_or_frontend': 2, 'bug_fix': 2, 'dependency_or_build': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'api_or_backend': 1, 'human_reported_issue_then_fix_attempt': 1, 'ci_pending_or_incomplete': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-c6cc582edbc4f384", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414486, "scanner": "foundry_dataset", "fingerprint": "6ff4c105c415c3bdf83c4df66736b561cd07d13b3e15ea46bfa6c7197788fe93", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 2, "dependency_or_build": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#30", "issue_number": "30", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4008b11a5d51fa4f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#30\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#30\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#30\nRepo: rahmanef63/resource-site\nIssue/PR number: 30\nGraph consistency label: weak_supervision_needs_review\nNodes: 12\nEdges: 14\nNode types: {'commit': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 3, '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: {'claimed_resolved_unverified': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-9069550db38a05a2", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414485, "scanner": "foundry_dataset", "fingerprint": "1be04a9364cdcbd63df044048fba5717fb55af68a54d1a60043ac1e17c351716", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 1, "dependency_or_build": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 13, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#3", "issue_number": "3", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a939a1c0a9c55ac7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#3\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#3\nRepo: rahmanef63/resource-site\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'dependency_or_build': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-4051d72362328f03", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414484, "scanner": "foundry_dataset", "fingerprint": "d09a01b283561f76753e6f65d34719218c1249fe5fea906da8ada5d4b6258290", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 5, "source_or_other": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 19, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#14", "issue_number": "14", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d05e76a886c730e7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#14\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#14\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#14\nRepo: rahmanef63/resource-site\nIssue/PR number: 14\nGraph consistency label: weak_supervision_needs_review\nNodes: 15\nEdges: 19\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-46dfbb1ae9abb898", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: rahmanef63/resource-site"}, "properties": {"repobilityId": 414483, "scanner": "foundry_dataset", "fingerprint": "ccae8e237a822d715f12540346b4265737982295fad33fe420f27a8ba034f454", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 5, "source_or_other": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 19, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#13", "issue_number": "13", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8abd2971e593ac44", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"source_or_other": 4}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#13\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#13\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#13\nRepo: rahmanef63/resource-site\nIssue/PR number: 13\nGraph consistency label: weak_supervision_needs_review\nNodes: 15\nEdges: 19\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 5, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-2c69253debbf3ed5", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "rahmanef63/resource-site", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: rahmanef63/resource-site"}, "properties": {"repobilityId": 407994, "scanner": "foundry_dataset", "fingerprint": "487b54deadd4c913b3cf9b84a5f59a43889fbd6274ad09b9fd3c419ea1504a4a", "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": 8, "test_ci_gap": 1, "mock_placeholder": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "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": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 24, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 2, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#50", "issue_number": "50", "quality_tiers": {"assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-43571b87fddc4a91", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#50\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#50\nRepo: rahmanef63/resource-site\nIssue/PR number: 50\nGraph consistency label: supported_by_verification_signal\nNodes: 24\nEdges: 30\nNode types: {'commit': 9, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'bug_fix': 8, '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, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/rahmanef63/resource-site", "source_id": "graph-query-motif_query-4c8ea1a78a432e87", "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": "rahmanef63/resource-site", "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: rahmanef63/resource-site"}, "properties": {"repobilityId": 407993, "scanner": "foundry_dataset", "fingerprint": "f272534da57165148ddadad4daa9550b8fff211019485852938c32f71ebb8eb3", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "data_schema": 1, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "rahmanef63/resource-site#5", "issue_number": "5", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "rahmanef63/resource-site", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c6ca53c88ea62664", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: rahmanef63/resource-site\nThread: rahmanef63/resource-site#5\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: rahmanef63/resource-site\nThread: rahmanef63/resource-site#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: rahmanef63/resource-site#5\nRepo: rahmanef63/resource-site\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 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/rahmanef63/resource-site", "source_id": "graph-query-motif_query-90a9a06c01c58b69", "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": "rahmanef63/resource-site", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-de051d89c3c22013", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-item.tsx:173"}, "properties": {"repobilityId": "3c91cd0571b1bb7c", "scanner": "scanner-primary", "fingerprint": "de051d89c3c22013", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f705c8346a873c90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-crumbs.tsx:73"}, "properties": {"repobilityId": "7fdb47ade52ad096", "scanner": "scanner-primary", "fingerprint": "f705c8346a873c90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d14ed9df5698c9f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-details.tsx:44"}, "properties": {"repobilityId": "191f8f5504d238bb", "scanner": "scanner-primary", "fingerprint": "2d14ed9df5698c9f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cbeaef3cb6d6f5d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/files-sidebar.tsx:83"}, "properties": {"repobilityId": "ba2e7e406e8e798e", "scanner": "scanner-primary", "fingerprint": "cbeaef3cb6d6f5d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a211b5323a19bb69", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/index.tsx:32"}, "properties": {"repobilityId": "8ebf6385eea89b7d", "scanner": "scanner-primary", "fingerprint": "a211b5323a19bb69", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-85031295849f3698", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/file-explorer/components/file-tree/dir.tsx:143"}, "properties": {"repobilityId": "dcf1bbea67ab14b7", "scanner": "scanner-primary", "fingerprint": "85031295849f3698", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3e2e4de2fb295321", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/PendingInvites.tsx:35"}, "properties": {"repobilityId": "7a60c671d2af7825", "scanner": "scanner-primary", "fingerprint": "3e2e4de2fb295321", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63bbfa7bcd3068d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamsPanel.tsx:59"}, "properties": {"repobilityId": "e0e8c74515777297", "scanner": "scanner-primary", "fingerprint": "63bbfa7bcd3068d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f18d2127a077c24b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/AccessMatrix.tsx:63"}, "properties": {"repobilityId": "1a44c87cd71fa5fc", "scanner": "scanner-primary", "fingerprint": "f18d2127a077c24b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f28f40bc384b2ce2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/TeamDetail.tsx:32"}, "properties": {"repobilityId": "71fde49e67546f01", "scanner": "scanner-primary", "fingerprint": "f28f40bc384b2ce2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e874e912d4c01905", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/user-management/components/MembersTable.tsx:74"}, "properties": {"repobilityId": "6fb4e3bfcb37c92e", "scanner": "scanner-primary", "fingerprint": "e874e912d4c01905", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c622c0dfcfb4d84", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CheckoutSummary.tsx:21"}, "properties": {"repobilityId": "89a59e8a214ac34b", "scanner": "scanner-primary", "fingerprint": "6c622c0dfcfb4d84", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b064c631f04926ca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/storefront-checkout/components/CartWidget.tsx:63"}, "properties": {"repobilityId": "2ab64bcd915ef5e1", "scanner": "scanner-primary", "fingerprint": "b064c631f04926ca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7779bf3842c605bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/CommandPalette.tsx:126"}, "properties": {"repobilityId": "a9e65cfc34fcb03b", "scanner": "scanner-primary", "fingerprint": "7779bf3842c605bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f9ec693c703bc6f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/SearchModal.tsx:151"}, "properties": {"repobilityId": "5d71ec72dbfc8268", "scanner": "scanner-primary", "fingerprint": "f9ec693c703bc6f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-77aa89d5160f20f9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/command-menu/components/palette/CommandGroups.tsx:53"}, "properties": {"repobilityId": "1162725296aa4799", "scanner": "scanner-primary", "fingerprint": "77aa89d5160f20f9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3ac6d6a613e3fbc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:37"}, "properties": {"repobilityId": "98cd94ce9eff024d", "scanner": "scanner-primary", "fingerprint": "e3ac6d6a613e3fbc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-250f41130c720b04", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:163"}, "properties": {"repobilityId": "d6beed5b78c2513b", "scanner": "scanner-primary", "fingerprint": "250f41130c720b04", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-20d8e5b55a838c20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/icon-picker/lib/lucide-icons.ts:19"}, "properties": {"repobilityId": "fc399203d90a0056", "scanner": "scanner-primary", "fingerprint": "20d8e5b55a838c20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f44b3ea876b73ef8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/theme-presets/components/ThemePresetSwitcher.tsx:157"}, "properties": {"repobilityId": "a88a44232b92032a", "scanner": "scanner-primary", "fingerprint": "f44b3ea876b73ef8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-74f9b67d6dea48e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/SlashMenu.tsx:137"}, "properties": {"repobilityId": "d430c2ad4e4e0d46", "scanner": "scanner-primary", "fingerprint": "74f9b67d6dea48e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-54c3a7f7045d34f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/row-properties/PropertyNameCell.tsx:64"}, "properties": {"repobilityId": "13f83d02808246ee", "scanner": "scanner-primary", "fingerprint": "54c3a7f7045d34f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0a8a62e8a541cd5e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/components/MentionTypeahead.tsx:149"}, "properties": {"repobilityId": "e785c63ed9f558b0", "scanner": "scanner-primary", "fingerprint": "0a8a62e8a541cd5e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a7a175251cd2726", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MoveToSubmenu.tsx:85"}, "properties": {"repobilityId": "2f16d7fdef0d1fa2", "scanner": "scanner-primary", "fingerprint": "4a7a175251cd2726", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-00564ca6d57947b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-actions/MenuRows.tsx:11"}, "properties": {"repobilityId": "e1ec4000fbde4cec", "scanner": "scanner-primary", "fingerprint": "00564ca6d57947b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b45d31dd58747c8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/TocBlock.tsx:75"}, "properties": {"repobilityId": "c500aa6a07f31b40", "scanner": "scanner-primary", "fingerprint": "6b45d31dd58747c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-76c095e33537f7f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/NestedBlockControls.tsx:95"}, "properties": {"repobilityId": "ba44a0528f121d00", "scanner": "scanner-primary", "fingerprint": "76c095e33537f7f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bfc1bc8c2c2b6902", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/NestedContent.tsx:118"}, "properties": {"repobilityId": "85bcbb3e68211c79", "scanner": "scanner-primary", "fingerprint": "bfc1bc8c2c2b6902", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1f4a9d70f7afd75c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/slices/notion/slices/editor/blocks/nested-block/handlers.ts:65"}, "properties": {"repobilityId": "59a264232d942623", "scanner": "scanner-primary", "fingerprint": "1f4a9d70f7afd75c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1670603c00e50dbd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.tsx:52"}, "properties": {"repobilityId": "25ad883f906baa9d", "scanner": "scanner-primary", "fingerprint": "1670603c00e50dbd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-65869b8bd03def46", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion/slices/editor/page-editor/Subpages.tsx:55"}, "properties": {"repobilityId": "bedbebee6c51b71b", "scanner": "scanner-primary", "fingerprint": "65869b8bd03def46", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be1070b09661694a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion/shared/lib/katex-lazy.tsx:45"}, "properties": {"repobilityId": "cc7ed5f095c02f50", "scanner": "scanner-primary", "fingerprint": "be1070b09661694a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d09dafc64c07e1bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55"}, "properties": {"repobilityId": "b6d9e72644b2a553", "scanner": "scanner-primary", "fingerprint": "d09dafc64c07e1bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6bf697afa3cc6f8f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.tsx:68"}, "properties": {"repobilityId": "5c25427f01e233f2", "scanner": "scanner-primary", "fingerprint": "6bf697afa3cc6f8f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5567f97f257a3708", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.tsx:28"}, "properties": {"repobilityId": "a41e3dfe66d174a2", "scanner": "scanner-primary", "fingerprint": "5567f97f257a3708", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc35a536d2f01be7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files/components/FileChip.tsx:27"}, "properties": {"repobilityId": "daaa90f3fe857653", "scanner": "scanner-primary", "fingerprint": "cc35a536d2f01be7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9cf1d2b6fb4d1a2d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/UnsplashTab.tsx:80"}, "properties": {"repobilityId": "9a26cb7d81d7dd32", "scanner": "scanner-primary", "fingerprint": "9cf1d2b6fb4d1a2d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9112a6c077cae28c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/Subpages.tsx:36"}, "properties": {"repobilityId": "877ba835e4d4bf94", "scanner": "scanner-primary", "fingerprint": "9112a6c077cae28c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e491914c2677b75", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/MentionTypeahead.tsx:124"}, "properties": {"repobilityId": "2b287f250c87ca91", "scanner": "scanner-primary", "fingerprint": "2e491914c2677b75", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-795de957c4f720c7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/SlashMenu.tsx:87"}, "properties": {"repobilityId": "34634f6e5771d7d8", "scanner": "scanner-primary", "fingerprint": "795de957c4f720c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c3091663af19c34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/PageBreadcrumbs.tsx:32"}, "properties": {"repobilityId": "2169e96650fa7920", "scanner": "scanner-primary", "fingerprint": "6c3091663af19c34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6643da82000656c1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/EquationBlock.tsx:28"}, "properties": {"repobilityId": "0c058da9122463fa", "scanner": "scanner-primary", "fingerprint": "6643da82000656c1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2c4f18fd3b7bba7f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96"}, "properties": {"repobilityId": "3c27b227e2697611", "scanner": "scanner-primary", "fingerprint": "2c4f18fd3b7bba7f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8e5a20c331cc39f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/EmbedRenderer.tsx:96"}, "properties": {"repobilityId": "6c4239140a2f4e0d", "scanner": "scanner-primary", "fingerprint": "8e5a20c331cc39f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-980c3510c5878089", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-shell/components/blocks/PageLinkBlock.tsx:21"}, "properties": {"repobilityId": "6dce99153bca143c", "scanner": "scanner-primary", "fingerprint": "980c3510c5878089", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c52ff6838f981611", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/FilterBuilder-value.tsx:89"}, "properties": {"repobilityId": "59b2ea11a0656307", "scanner": "scanner-primary", "fingerprint": "c52ff6838f981611", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b25e6f1fd52bc43", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionProperty.tsx:73"}, "properties": {"repobilityId": "532842abe891426f", "scanner": "scanner-primary", "fingerprint": "0b25e6f1fd52bc43", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ab1d10333f4e82e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/ColumnHeaderMenu.tsx:83"}, "properties": {"repobilityId": "ea40f5baf205466c", "scanner": "scanner-primary", "fingerprint": "0ab1d10333f4e82e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ec78375636ffc011", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/NotionDatabase.tsx:135"}, "properties": {"repobilityId": "19b780c3096c65cd", "scanner": "scanner-primary", "fingerprint": "ec78375636ffc011", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c37ce5e95afd4362", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/io/csv-mapping.tsx:39"}, "properties": {"repobilityId": "ae8f6198c3da0ac7", "scanner": "scanner-primary", "fingerprint": "c37ce5e95afd4362", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9db6c8097e7e7d97", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/column-header/items.tsx:25"}, "properties": {"repobilityId": "f84f8fd4ce044e4f", "scanner": "scanner-primary", "fingerprint": "9db6c8097e7e7d97", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4711ed253f5fe4a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/RelationCell.tsx:92"}, "properties": {"repobilityId": "b78803da54406e2a", "scanner": "scanner-primary", "fingerprint": "4711ed253f5fe4a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4611148b1209cc65", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/PersonCell.tsx:51"}, "properties": {"repobilityId": "08d2b435ed0c19a7", "scanner": "scanner-primary", "fingerprint": "4611148b1209cc65", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d5dcc2d87751fb3c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/FilesCell.tsx:64"}, "properties": {"repobilityId": "e0b2bf5496a26214", "scanner": "scanner-primary", "fingerprint": "d5dcc2d87751fb3c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8d574ea06c7d8e94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/DateCell.tsx:74"}, "properties": {"repobilityId": "6c44e06dad853a60", "scanner": "scanner-primary", "fingerprint": "8d574ea06c7d8e94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcde83b2e09f1c56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/cells/LinkCell.tsx:57"}, "properties": {"repobilityId": "df5d9cdbfbf27e69", "scanner": "scanner-primary", "fingerprint": "bcde83b2e09f1c56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2386c91552bd329d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/FeedView.tsx:44"}, "properties": {"repobilityId": "c0e7cb67d83a997a", "scanner": "scanner-primary", "fingerprint": "2386c91552bd329d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc94a3837864ce86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TableView.tsx:64"}, "properties": {"repobilityId": "5d0b33e3ddd35ad3", "scanner": "scanner-primary", "fingerprint": "dc94a3837864ce86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b256f0cbe0080c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/timeline-bar.tsx:90"}, "properties": {"repobilityId": "b4f4739546bae9a2", "scanner": "scanner-primary", "fingerprint": "2b256f0cbe0080c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-750b01042521ef91", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/DashboardView.tsx:125"}, "properties": {"repobilityId": "07a97ae68b4222ce", "scanner": "scanner-primary", "fingerprint": "750b01042521ef91", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-01ef810ffea25ff7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/TimelineView.tsx:151"}, "properties": {"repobilityId": "ecb0a255bfc2bc17", "scanner": "scanner-primary", "fingerprint": "01ef810ffea25ff7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd93cb3edf947736", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalcFooter.tsx:40"}, "properties": {"repobilityId": "cc2106a763c15bc7", "scanner": "scanner-primary", "fingerprint": "dd93cb3edf947736", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7ebbf3faf88249d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/GalleryView.tsx:45"}, "properties": {"repobilityId": "bee0007b645cfdbf", "scanner": "scanner-primary", "fingerprint": "7ebbf3faf88249d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ccf55c697c7476d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/dashboard-parts.tsx:43"}, "properties": {"repobilityId": "f5815e25f4658aed", "scanner": "scanner-primary", "fingerprint": "ccf55c697c7476d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aff734f0275d3948", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/MapView.tsx:103"}, "properties": {"repobilityId": "6e7db4f7141c68de", "scanner": "scanner-primary", "fingerprint": "aff734f0275d3948", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6ffdc6b8a27b905", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/form-settings.tsx:72"}, "properties": {"repobilityId": "cf8a1ddc4698a372", "scanner": "scanner-primary", "fingerprint": "d6ffdc6b8a27b905", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f1e77d7a63a0ec9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/CalendarView.tsx:81"}, "properties": {"repobilityId": "e78c1fd629eb16cd", "scanner": "scanner-primary", "fingerprint": "8f1e77d7a63a0ec9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3501d2db96d282d7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/notion-database/components/views/ListView.tsx:35"}, "properties": {"repobilityId": "f5d1997008752c1f", "scanner": "scanner-primary", "fingerprint": "3501d2db96d282d7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bbca04dacd470096", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.tsx:49"}, "properties": {"repobilityId": "46d9ee4d0c05bb1d", "scanner": "scanner-primary", "fingerprint": "bbca04dacd470096", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-01a636388060a9ab", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.tsx:68"}, "properties": {"repobilityId": "fc741ae075ed62bf", "scanner": "scanner-primary", "fingerprint": "01a636388060a9ab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-64de2c73d9303ec7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101"}, "properties": {"repobilityId": "b9b8147c59946d41", "scanner": "scanner-primary", "fingerprint": "64de2c73d9303ec7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-65e8d39f734be85e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89"}, "properties": {"repobilityId": "f2938203974df259", "scanner": "scanner-primary", "fingerprint": "65e8d39f734be85e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7699406eb87ce30f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37"}, "properties": {"repobilityId": "9b9455e3ccb10f51", "scanner": "scanner-primary", "fingerprint": "7699406eb87ce30f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fcb822bc88726875", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.tsx:111"}, "properties": {"repobilityId": "7b424d1a97357300", "scanner": "scanner-primary", "fingerprint": "fcb822bc88726875", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a1dae9968a8f8f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.tsx:134"}, "properties": {"repobilityId": "a777ba0731d7e4a7", "scanner": "scanner-primary", "fingerprint": "3a1dae9968a8f8f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-696f645eb376d73d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-switcher.tsx:111"}, "properties": {"repobilityId": "67bda630eba1338b", "scanner": "scanner-primary", "fingerprint": "696f645eb376d73d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-27f38451f7e6bcac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:85"}, "properties": {"repobilityId": "ca8414642ed6187a", "scanner": "scanner-primary", "fingerprint": "27f38451f7e6bcac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-186617a68a4b5998", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140"}, "properties": {"repobilityId": "a537bf834c4736e4", "scanner": "scanner-primary", "fingerprint": "186617a68a4b5998", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cfad86aec5ec0fc7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:148"}, "properties": {"repobilityId": "b4edcdcde94695f6", "scanner": "scanner-primary", "fingerprint": "cfad86aec5ec0fc7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23ddb43cf20fcc6e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:62"}, "properties": {"repobilityId": "c43a7428050fa58f", "scanner": "scanner-primary", "fingerprint": "23ddb43cf20fcc6e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dec0a507ae00eb0d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.tsx:79"}, "properties": {"repobilityId": "59f7c39907256f93", "scanner": "scanner-primary", "fingerprint": "dec0a507ae00eb0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48afcfc052c60288", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.tsx:142"}, "properties": {"repobilityId": "66e85f80ded45cae", "scanner": "scanner-primary", "fingerprint": "48afcfc052c60288", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c84a6ab065c7c47a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.tsx:64"}, "properties": {"repobilityId": "dcd2b2c5cb5ed222", "scanner": "scanner-primary", "fingerprint": "c84a6ab065c7c47a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cda03fe8ee3ce264", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.tsx:48"}, "properties": {"repobilityId": "a8d636cb25e2f29d", "scanner": "scanner-primary", "fingerprint": "cda03fe8ee3ce264", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31b7f5683f7e578e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.tsx:97"}, "properties": {"repobilityId": "019ba78a43f4a175", "scanner": "scanner-primary", "fingerprint": "31b7f5683f7e578e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c77237946a9a873", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:105"}, "properties": {"repobilityId": "717ba981bccb36f2", "scanner": "scanner-primary", "fingerprint": "6c77237946a9a873", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac64aa23bffa02f1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-parts.tsx:46"}, "properties": {"repobilityId": "d3ee10b65268df9f", "scanner": "scanner-primary", "fingerprint": "ac64aa23bffa02f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9118087dd0855294", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-island.tsx:40"}, "properties": {"repobilityId": "8b9185d0c8bff8f8", "scanner": "scanner-primary", "fingerprint": "9118087dd0855294", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f7c1d59681dbad1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets.tsx:67"}, "properties": {"repobilityId": "8c44af7b57b476c8", "scanner": "scanner-primary", "fingerprint": "4f7c1d59681dbad1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ee3e79a04aa51877", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight.tsx:169"}, "properties": {"repobilityId": "47db74867922a3ff", "scanner": "scanner-primary", "fingerprint": "ee3e79a04aa51877", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1719f1bc9448988e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-overlay.tsx:81"}, "properties": {"repobilityId": "615deec02e988877", "scanner": "scanner-primary", "fingerprint": "1719f1bc9448988e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-88940ceae3cf7623", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.tsx:37"}, "properties": {"repobilityId": "630130cc9e01ac21", "scanner": "scanner-primary", "fingerprint": "88940ceae3cf7623", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-66a19a39b567d3f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110"}, "properties": {"repobilityId": "a257c07ba7590cd9", "scanner": "scanner-primary", "fingerprint": "66a19a39b567d3f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f84fa56f9a3f3094", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.tsx:32"}, "properties": {"repobilityId": "36f848f7a3e3f9f0", "scanner": "scanner-primary", "fingerprint": "f84fa56f9a3f3094", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7b127bf3c656fd6a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:69"}, "properties": {"repobilityId": "13f69c5043e7ad37", "scanner": "scanner-primary", "fingerprint": "7b127bf3c656fd6a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-54169f084f283a93", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/components/MermaidBlock.tsx:52"}, "properties": {"repobilityId": "d8d398aac4145e89", "scanner": "scanner-primary", "fingerprint": "54169f084f283a93", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-48d8629dc5a033bc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/markdown/lib/katex-lazy.tsx:44"}, "properties": {"repobilityId": "21e7aacef6a1b89c", "scanner": "scanner-primary", "fingerprint": "48d8629dc5a033bc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7bd534b2e9224673", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.tsx:50"}, "properties": {"repobilityId": "8b7a45e0f85bcb9f", "scanner": "scanner-primary", "fingerprint": "7bd534b2e9224673", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-422148c6347c530c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:65"}, "properties": {"repobilityId": "f6b7a7421f26e1f9", "scanner": "scanner-primary", "fingerprint": "422148c6347c530c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1cc0386ba0ec649a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.tsx:44"}, "properties": {"repobilityId": "159bf0acde908d2a", "scanner": "scanner-primary", "fingerprint": "1cc0386ba0ec649a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7d72b59d36f873c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55"}, "properties": {"repobilityId": "b8aa5729bd952c3b", "scanner": "scanner-primary", "fingerprint": "7d72b59d36f873c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e2f82bbd51c07bda", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/create-app.tsx:115"}, "properties": {"repobilityId": "a45365eef2fcded3", "scanner": "scanner-primary", "fingerprint": "e2f82bbd51c07bda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57f4ae7a111dff62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59"}, "properties": {"repobilityId": "5bccd14760438bf8", "scanner": "scanner-primary", "fingerprint": "57f4ae7a111dff62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a3b8cab3f1938456", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45"}, "properties": {"repobilityId": "33c6e417f6cd5138", "scanner": "scanner-primary", "fingerprint": "a3b8cab3f1938456", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e919a8c6d7146463", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.tsx:68"}, "properties": {"repobilityId": "eba842cec4ef242c", "scanner": "scanner-primary", "fingerprint": "e919a8c6d7146463", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-95885dd3132a5cb0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.tsx:28"}, "properties": {"repobilityId": "8639a1123f7c3215", "scanner": "scanner-primary", "fingerprint": "95885dd3132a5cb0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7d30ab093f8705b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.tsx:54"}, "properties": {"repobilityId": "9ba04776b3b36346", "scanner": "scanner-primary", "fingerprint": "7d30ab093f8705b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63376749717d078b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:101"}, "properties": {"repobilityId": "d5abd4aae8526815", "scanner": "scanner-primary", "fingerprint": "63376749717d078b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ba0421ab37ac02b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:37"}, "properties": {"repobilityId": "d202af0ee48f875d", "scanner": "scanner-primary", "fingerprint": "6ba0421ab37ac02b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3f9010db674f09e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:90"}, "properties": {"repobilityId": "db1378089741fe89", "scanner": "scanner-primary", "fingerprint": "3f9010db674f09e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0207874d6b5b5acd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98"}, "properties": {"repobilityId": "8bb3bd68e46cc289", "scanner": "scanner-primary", "fingerprint": "0207874d6b5b5acd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a7d69c2d0818c13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx:36"}, "properties": {"repobilityId": "232b67ab5df6ef63", "scanner": "scanner-primary", "fingerprint": "7a7d69c2d0818c13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-306ac7344fd5de98", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85"}, "properties": {"repobilityId": "ab533cc155d71323", "scanner": "scanner-primary", "fingerprint": "306ac7344fd5de98", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4091f42f5922e97c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163"}, "properties": {"repobilityId": "d9eada751596973f", "scanner": "scanner-primary", "fingerprint": "4091f42f5922e97c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9e74bb81dfdc95b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156"}, "properties": {"repobilityId": "c456cd004a1e1e3f", "scanner": "scanner-primary", "fingerprint": "d9e74bb81dfdc95b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96babb5b9aa4c225", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.tsx:71"}, "properties": {"repobilityId": "8bc418e3b669570e", "scanner": "scanner-primary", "fingerprint": "96babb5b9aa4c225", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f31ebf092f03b8c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52"}, "properties": {"repobilityId": "406a788ccfeac52e", "scanner": "scanner-primary", "fingerprint": "f31ebf092f03b8c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b24d722ec469cbfe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.tsx:31"}, "properties": {"repobilityId": "2b277456b7b74ade", "scanner": "scanner-primary", "fingerprint": "b24d722ec469cbfe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55a75372a1029b01", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47"}, "properties": {"repobilityId": "bcc6d26bf8478cef", "scanner": "scanner-primary", "fingerprint": "55a75372a1029b01", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d19aad7c364c958", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:88"}, "properties": {"repobilityId": "5380153e30eb844f", "scanner": "scanner-primary", "fingerprint": "6d19aad7c364c958", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-58d61a3e5d5119d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/index.tsx:32"}, "properties": {"repobilityId": "2d4f7c843750d0a1", "scanner": "scanner-primary", "fingerprint": "58d61a3e5d5119d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8196803000831d56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/file-tree/dir.tsx:141"}, "properties": {"repobilityId": "181f73a3fc963c78", "scanner": "scanner-primary", "fingerprint": "8196803000831d56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ee3c790f905d67f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:137"}, "properties": {"repobilityId": "13e4b8d0b74afeb0", "scanner": "scanner-primary", "fingerprint": "2ee3c790f905d67f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ca720114064224bb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/seo/slice.contract.ts:36"}, "properties": {"repobilityId": "03dca2b1a5e28d5f", "scanner": "scanner-primary", "fingerprint": "ca720114064224bb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6c0b861d7f37ea78", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 tests/e2e/site.spec.ts:48"}, "properties": {"repobilityId": "5734623008037edf", "scanner": "scanner-primary", "fingerprint": "6c0b861d7f37ea78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4adf74bee79c35a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 shared/ui/FileUpload/FileUpload.tsx:140"}, "properties": {"repobilityId": "2ec7d7396f361dc9", "scanner": "scanner-primary", "fingerprint": "4adf74bee79c35a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-625505dc293402b6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 shared/lib/sanitizeHtml.ts:5"}, "properties": {"repobilityId": "081d054ab8557a34", "scanner": "scanner-primary", "fingerprint": "625505dc293402b6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e0c61f5362ee1929", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/slices/initFeatureSettings.ts:18"}, "properties": {"repobilityId": "6b019028ae62d110", "scanner": "scanner-primary", "fingerprint": "e0c61f5362ee1929", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8fed84e322192e6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/renderer/components/Renderer.tsx:197"}, "properties": {"repobilityId": "e68df9b37181df25", "scanner": "scanner-primary", "fingerprint": "f8fed84e322192e6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7213eea8e61b00c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/NodeContextMenu.tsx:100"}, "properties": {"repobilityId": "197ea055f1773fe8", "scanner": "scanner-primary", "fingerprint": "e7213eea8e61b00c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c52c45d4dc2f428b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/GroupNode.tsx:96"}, "properties": {"repobilityId": "9ecb3bc38986ba2b", "scanner": "scanner-primary", "fingerprint": "c52c45d4dc2f428b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-138176687be14100", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/slices/canvas/components/ShadcnNode.tsx:137"}, "properties": {"repobilityId": "c84eb0fab62f7869", "scanner": "scanner-primary", "fingerprint": "138176687be14100", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c896581aa744d0fd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 template-base/frontend/slices/studio/ui/slices/inspector/components/AIGenerationModal.tsx:52"}, "properties": {"repobilityId": "00a9f637ca23dfe8", "scanner": "scanner-primary", "fingerprint": "c896581aa744d0fd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-01e07d3a8164a04e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/ui/widgets/ui/navItem/manifest.tsx:40"}, "properties": {"repobilityId": "122fabe248d1f769", "scanner": "scanner-primary", "fingerprint": "01e07d3a8164a04e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6927edf5272ede6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/slices/studio/ui/lib/converters.ts:556"}, "properties": {"repobilityId": "6a3886b6eaf4e64d", "scanner": "scanner-primary", "fingerprint": "f6927edf5272ede6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4cd0312daec3dc23", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 template-base/frontend/slices/studio/ui/hooks/__tests__/useConvexCMSPersistence.test.ts:185"}, "properties": {"repobilityId": "46998afb74621505", "scanner": "scanner-primary", "fingerprint": "4cd0312daec3dc23", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-091b7e8f3df663a5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/BuilderDashboard.tsx:72"}, "properties": {"repobilityId": "c8ef15c042b0174c", "scanner": "scanner-primary", "fingerprint": "091b7e8f3df663a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e77b2a0d2e25685c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/TemplatesGallery.tsx:178"}, "properties": {"repobilityId": "290f6cd92e3dcab3", "scanner": "scanner-primary", "fingerprint": "e77b2a0d2e25685c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03684917ea2fd889", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/AutomationNode.tsx:115"}, "properties": {"repobilityId": "e8d9dc244c703f92", "scanner": "scanner-primary", "fingerprint": "03684917ea2fd889", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-04e85ccf3485b56c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/components/StudioAIModelPicker.tsx:82"}, "properties": {"repobilityId": "5913ca1fc28f8988", "scanner": "scanner-primary", "fingerprint": "04e85ccf3485b56c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-240ef2c0c6a6cdde", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/studio/lib/__tests__/schemaToHtml.test.ts:292"}, "properties": {"repobilityId": "961495efa6e13e98", "scanner": "scanner-primary", "fingerprint": "240ef2c0c6a6cdde", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7da211c90c2225c5", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/workflow/schema/n8n-converter.ts:312"}, "properties": {"repobilityId": "0e5cc1555d87dbd1", "scanner": "scanner-primary", "fingerprint": "7da211c90c2225c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-17314868fc58f955", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 template-base/frontend/slices/studio/pages/StudioPage.tsx:369"}, "properties": {"repobilityId": "b1097d130eec1e72", "scanner": "scanner-primary", "fingerprint": "17314868fc58f955", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-031c4b41bafeec1b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/studio/views/StudioEditorTabs.tsx:202"}, "properties": {"repobilityId": "465936fe4dd6d68d", "scanner": "scanner-primary", "fingerprint": "031c4b41bafeec1b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d58e18c65da7343", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/example/settings/index.ts:73"}, "properties": {"repobilityId": "8d54c4c3f06fd25e", "scanner": "scanner-primary", "fingerprint": "3d58e18c65da7343", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e6a073e4e4eab9de", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/slices/reports/hooks/useReports.ts:14"}, "properties": {"repobilityId": "04b5d7f953d493d5", "scanner": "scanner-primary", "fingerprint": "e6a073e4e4eab9de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3c8fc6ffce6a0997", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/ContextBadge.tsx:42"}, "properties": {"repobilityId": "5026c8204469482e", "scanner": "scanner-primary", "fingerprint": "3c8fc6ffce6a0997", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3536eb5714a0735a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/MenuSetPicker.tsx:90"}, "properties": {"repobilityId": "cd4e5de128d655d1", "scanner": "scanner-primary", "fingerprint": "3536eb5714a0735a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f6becab29deb9e2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/components/WorkspaceSwitcher.tsx:108"}, "properties": {"repobilityId": "cd0afee6d0643998", "scanner": "scanner-primary", "fingerprint": "7f6becab29deb9e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a491da84a6e856e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/MenusTab.tsx:129"}, "properties": {"repobilityId": "9efdd2f26fb59bea", "scanner": "scanner-primary", "fingerprint": "a491da84a6e856e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-772a90eb0a3b59ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/slices/workspace-shell/views/TreeTab.tsx:78"}, "properties": {"repobilityId": "b342a3ebb62f2d86", "scanner": "scanner-primary", "fingerprint": "772a90eb0a3b59ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5c78d7a856418ba7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/workspace/HierarchySettings.tsx:628"}, "properties": {"repobilityId": "1ede83240ce203f1", "scanner": "scanner-primary", "fingerprint": "5c78d7a856418ba7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e195d38a1d88351b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsButton.tsx:92"}, "properties": {"repobilityId": "955b9b1d971a3f92", "scanner": "scanner-primary", "fingerprint": "e195d38a1d88351b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cdcba219e05c81b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPanel.tsx:173"}, "properties": {"repobilityId": "97dac77d4e8c66a0", "scanner": "scanner-primary", "fingerprint": "cdcba219e05c81b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f623c0e2da29baaf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/settings/components/FeatureSettingsPanel.tsx:63"}, "properties": {"repobilityId": "12b034df5945504f", "scanner": "scanner-primary", "fingerprint": "f623c0e2da29baaf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ed5d2814b34b782", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/FeatureSettingsListPanel.tsx:245"}, "properties": {"repobilityId": "9f1e17104b8d9074", "scanner": "scanner-primary", "fingerprint": "6ed5d2814b34b782", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-61dc9dbb9e0e7554", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/components/DynamicSettingsSidebar.tsx:119"}, "properties": {"repobilityId": "25f6084339e1b077", "scanner": "scanner-primary", "fingerprint": "61dc9dbb9e0e7554", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de28541d6b0ffa12", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/settings/comprehensive/layout.tsx:428"}, "properties": {"repobilityId": "72dc374d4919f0a9", "scanner": "scanner-primary", "fingerprint": "de28541d6b0ffa12", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-87fc7353f2618b25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ai/components/AgentSelector.tsx:56"}, "properties": {"repobilityId": "accf17d2b87515b6", "scanner": "scanner-primary", "fingerprint": "87fc7353f2618b25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e37c200d9d1596d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/SlashCommands.tsx:395"}, "properties": {"repobilityId": "f2a975ca0f2388da", "scanner": "scanner-primary", "fingerprint": "e37c200d9d1596d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-807ee141921b6b49", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/AttachmentMenu.tsx:137"}, "properties": {"repobilityId": "132b0494005b8912", "scanner": "scanner-primary", "fingerprint": "807ee141921b6b49", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7bc8c147d7109534", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/UniversalComposer.tsx:504"}, "properties": {"repobilityId": "09be503e04482f1a", "scanner": "scanner-primary", "fingerprint": "7bc8c147d7109534", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15c252136b8b1124", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/composer/Mentions.tsx:288"}, "properties": {"repobilityId": "fa16ca9af5c031f7", "scanner": "scanner-primary", "fingerprint": "15c252136b8b1124", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2464a435f35961e2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/message/UnifiedMessageBubble.tsx:300"}, "properties": {"repobilityId": "e56e70014c95edce", "scanner": "scanner-primary", "fingerprint": "2464a435f35961e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6a21e789c789fb6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/sources.tsx:127"}, "properties": {"repobilityId": "e14011231c7728bb", "scanner": "scanner-primary", "fingerprint": "6a21e789c789fb6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-220fa9893c00bed7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/prompt-input.tsx:430"}, "properties": {"repobilityId": "5fcf7b3baa818ec1", "scanner": "scanner-primary", "fingerprint": "220fa9893c00bed7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4400a51375f867da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/ai/inline-citation.tsx:339"}, "properties": {"repobilityId": "8d4a3bfe82228765", "scanner": "scanner-primary", "fingerprint": "4400a51375f867da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-078ba1af63a2e357", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/components/grok-chat/index.tsx:511"}, "properties": {"repobilityId": "fd83cfd205944939", "scanner": "scanner-primary", "fingerprint": "078ba1af63a2e357", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cb71b497db037cce", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/config/commandRegistry.ts:18"}, "properties": {"repobilityId": "b596627ca54a3d5a", "scanner": "scanner-primary", "fingerprint": "cb71b497db037cce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1de0e8944048cd5b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/ChatHeader.tsx:80"}, "properties": {"repobilityId": "2abcb04d498c7c64", "scanner": "scanner-primary", "fingerprint": "1de0e8944048cd5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-18b24386248b0eb3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/components/ChatInput.tsx:84"}, "properties": {"repobilityId": "20b022d04d9e4778", "scanner": "scanner-primary", "fingerprint": "18b24386248b0eb3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4932879578bb0c5b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member/sections/GroupsSection.tsx:77"}, "properties": {"repobilityId": "beb0f07e5ebdb7e8", "scanner": "scanner-primary", "fingerprint": "4932879578bb0c5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5b5a19e99b7a1299", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/chat/components/member/sections/FilesSection.tsx:58"}, "properties": {"repobilityId": "e7b4dacfbdde965b", "scanner": "scanner-primary", "fingerprint": "5b5a19e99b7a1299", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c94dbdbf5faf3b14", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:61"}, "properties": {"repobilityId": "f3f40862e413a1f5", "scanner": "scanner-primary", "fingerprint": "c94dbdbf5faf3b14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-332355beb53cb193", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/chatClient.ts:32"}, "properties": {"repobilityId": "4d329bc519d72c14", "scanner": "scanner-primary", "fingerprint": "332355beb53cb193", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-db71034d266a22db", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/lib/ogPreview.ts:27"}, "properties": {"repobilityId": "245e8b3d9a203cd0", "scanner": "scanner-primary", "fingerprint": "db71034d266a22db", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-76f53f8cc23aa30b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChatPresence.ts:49"}, "properties": {"repobilityId": "ab3c4c3eac9599ba", "scanner": "scanner-primary", "fingerprint": "76f53f8cc23aa30b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-746b132df2b9a535", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useChat.ts:299"}, "properties": {"repobilityId": "57a50b826b180a05", "scanner": "scanner-primary", "fingerprint": "746b132df2b9a535", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8dd95ea8ca0884d3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/communications/chat/hooks/useMessageActions.ts:169"}, "properties": {"repobilityId": "c69f57011106c900", "scanner": "scanner-primary", "fingerprint": "8dd95ea8ca0884d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-149c89df23325a04", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/communications/conversation/ConversationListCard.tsx:287"}, "properties": {"repobilityId": "81e4a14a0bf81496", "scanner": "scanner-primary", "fingerprint": "149c89df23325a04", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a54319c2523f7ece", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileProfileSheet.tsx:69"}, "properties": {"repobilityId": "52ca362aaadc75b9", "scanner": "scanner-primary", "fingerprint": "a54319c2523f7ece", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-290040af7bf14db1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileDashboardDock.tsx:115"}, "properties": {"repobilityId": "2860b312914d5aaf", "scanner": "scanner-primary", "fingerprint": "290040af7bf14db1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f69c52e4e81edbb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileTopBar.tsx:130"}, "properties": {"repobilityId": "13cc04074c9d3501", "scanner": "scanner-primary", "fingerprint": "8f69c52e4e81edbb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13b16385a4233c1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobileWorkspaceLauncher.tsx:152"}, "properties": {"repobilityId": "3ed73dbf46579884", "scanner": "scanner-primary", "fingerprint": "13b16385a4233c1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b3bcc9183695bf1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/dashboard/mobile/MobilePortalHome.tsx:433"}, "properties": {"repobilityId": "885846ffd71dc547", "scanner": "scanner-primary", "fingerprint": "2b3bcc9183695bf1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-26fc67fac9248dd9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/split-view/SplitView.tsx:121"}, "properties": {"repobilityId": "26dfaa647eea3ba0", "scanner": "scanner-primary", "fingerprint": "26fc67fac9248dd9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-68868b713fb95263", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/FeatureThreeColumnLayout.tsx:156"}, "properties": {"repobilityId": "6d0e48e2f6350cae", "scanner": "scanner-primary", "fingerprint": "68868b713fb95263", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fd1b7b813a850ea3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/container/three-column/mobile/MobileHeader.tsx:49"}, "properties": {"repobilityId": "aa796c172df6a014", "scanner": "scanner-primary", "fingerprint": "fd1b7b813a850ea3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de6faaab596fecbe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/EnhancedWorkspaceSwitcher.tsx:199"}, "properties": {"repobilityId": "5e764b7c38cad137", "scanner": "scanner-primary", "fingerprint": "de6faaab596fecbe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ae165f2ab55d430d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/WorkspaceSwitcherStack.tsx:190"}, "properties": {"repobilityId": "d0594046350fc6e5", "scanner": "scanner-primary", "fingerprint": "ae165f2ab55d430d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d43513a40b0f5cd5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/workspace-switcher/WorkspaceSwitcher.tsx:75"}, "properties": {"repobilityId": "0f20b4b5472301bb", "scanner": "scanner-primary", "fingerprint": "d43513a40b0f5cd5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fb71324286e001eb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/components/SecondaryList.tsx:61"}, "properties": {"repobilityId": "5681131f3d11fe99", "scanner": "scanner-primary", "fingerprint": "fb71324286e001eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1ac99787fff28a4a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/components/SecondarySidebar.tsx:59"}, "properties": {"repobilityId": "b12d13f2ce37534d", "scanner": "scanner-primary", "fingerprint": "1ac99787fff28a4a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5348f583f8ce6395", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/secondary/lib/built-in-variants.tsx:77"}, "properties": {"repobilityId": "f8869f768e7d84e1", "scanner": "scanner-primary", "fingerprint": "5348f583f8ce6395", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c4c2e11b97dc917", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUserActions.tsx:129"}, "properties": {"repobilityId": "62f5cf86b9521d2a", "scanner": "scanner-primary", "fingerprint": "7c4c2e11b97dc917", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94c545bc20f08ac5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavPinned.tsx:160"}, "properties": {"repobilityId": "f2f8c617adcb3dd2", "scanner": "scanner-primary", "fingerprint": "94c545bc20f08ac5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13c191e3b03e7ef5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/primary/NavUser.tsx:67"}, "properties": {"repobilityId": "64ee0377a831acd6", "scanner": "scanner-primary", "fingerprint": "13c191e3b03e7ef5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dcf42a03c68a4d35", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/sidebar/components/site-header.tsx:105"}, "properties": {"repobilityId": "ff48c416e7d19dac", "scanner": "scanner-primary", "fingerprint": "dcf42a03c68a4d35", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-515bd5278a4967d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/MobileHeader.tsx:56"}, "properties": {"repobilityId": "63e66d3d9cb2ad24", "scanner": "scanner-primary", "fingerprint": "515bd5278a4967d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f06cdfc0a9de038", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/layout/header/components/HeaderControls.tsx:428"}, "properties": {"repobilityId": "f278a3a049c7fc61", "scanner": "scanner-primary", "fingerprint": "6f06cdfc0a9de038", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96d769f01732cae0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/ai-assistant/chat/RecentChatsPanel.tsx:72"}, "properties": {"repobilityId": "0cb53b22e151e1a3", "scanner": "scanner-primary", "fingerprint": "96d769f01732cae0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d28fb2987d94b2c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/dashboard/ActivityListItem.tsx:63"}, "properties": {"repobilityId": "925bcf4e1dbc404c", "scanner": "scanner-primary", "fingerprint": "d28fb2987d94b2c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e9f5802d6bcd5380", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/theme-preset-switcher.tsx:126"}, "properties": {"repobilityId": "c390d7ef53bf59ff", "scanner": "scanner-primary", "fingerprint": "e9f5802d6bcd5380", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd7eb1d9ad7dd762", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload-queue.tsx:433"}, "properties": {"repobilityId": "140d6782b1a5ab81", "scanner": "scanner-primary", "fingerprint": "dd7eb1d9ad7dd762", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c0c8d6abbbc03717", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/device-mockup.tsx:119"}, "properties": {"repobilityId": "63cce252c09f3806", "scanner": "scanner-primary", "fingerprint": "c0c8d6abbbc03717", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-49a9a2f4e04e89b1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/file-upload.tsx:253"}, "properties": {"repobilityId": "a63721098dd69750", "scanner": "scanner-primary", "fingerprint": "49a9a2f4e04e89b1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0b6739de35b9c31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/invitations/PendingContactRequestsCard.tsx:121"}, "properties": {"repobilityId": "f972bd037e146be6", "scanner": "scanner-primary", "fingerprint": "f0b6739de35b9c31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfa5a764ed3ea1d8", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 template-base/frontend/shared/ui/components/navigation/NavigationMenu.tsx:54"}, "properties": {"repobilityId": "b165c41d9017f675", "scanner": "scanner-primary", "fingerprint": "bfa5a764ed3ea1d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-f717cb77ff4d9baf", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/ui/components/utils/componentFactory.ts:16"}, "properties": {"repobilityId": "b1f782ba401a2fd0", "scanner": "scanner-primary", "fingerprint": "f717cb77ff4d9baf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cba6a4ed091a2cfc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/FileUploadZone.tsx:138"}, "properties": {"repobilityId": "8ed056c2f320456e", "scanner": "scanner-primary", "fingerprint": "cba6a4ed091a2cfc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-28c1df308950bdd0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/assets/AssetGallery.tsx:107"}, "properties": {"repobilityId": "d38198f0e5fe14fa", "scanner": "scanner-primary", "fingerprint": "28c1df308950bdd0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a265be4255c1101d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/frontend/shared/ui/components/rich-text/index.tsx:309"}, "properties": {"repobilityId": "9699bd47ef80c5de", "scanner": "scanner-primary", "fingerprint": "a265be4255c1101d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a49449e952cea546", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gantt/index.tsx:530"}, "properties": {"repobilityId": "be5f60defac40ddb", "scanner": "scanner-primary", "fingerprint": "a49449e952cea546", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-98c6bcf8046c6484", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/gallery/index.tsx:191"}, "properties": {"repobilityId": "d5e5a43194f3ce2e", "scanner": "scanner-primary", "fingerprint": "98c6bcf8046c6484", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e2c8a9ddfaee75e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/data-views/calendar/index.tsx:487"}, "properties": {"repobilityId": "28a1eccffc8b215c", "scanner": "scanner-primary", "fingerprint": "e2c8a9ddfaee75e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc5d45ad99874fa1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/ui/components/date-picker/components/EventList.tsx:93"}, "properties": {"repobilityId": "65b27f5a75108c88", "scanner": "scanner-primary", "fingerprint": "bc5d45ad99874fa1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d571d575f61b53c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/theme/hooks/themes.ts:4"}, "properties": {"repobilityId": "8a61bf7d991c2de0", "scanner": "scanner-primary", "fingerprint": "6d571d575f61b53c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90936b625a9577e2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/index.ts:43"}, "properties": {"repobilityId": "5350da629e90f25f", "scanner": "scanner-primary", "fingerprint": "90936b625a9577e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-281d3aca7e202da4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/CreateWorkspaceAdvancedDialog.tsx:184"}, "properties": {"repobilityId": "28793a174a076781", "scanner": "scanner-primary", "fingerprint": "281d3aca7e202da4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dea2173f1f66f1d9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/ImportAndJoinTabs.tsx:39"}, "properties": {"repobilityId": "5c0e9a6a9bdb9a9a", "scanner": "scanner-primary", "fingerprint": "dea2173f1f66f1d9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08362969626c4b1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/OnboardingFlow.tsx:243"}, "properties": {"repobilityId": "891a8107053856a1", "scanner": "scanner-primary", "fingerprint": "08362969626c4b1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eac7c1ed017a00d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/ImportWorkspacePanel.tsx:179"}, "properties": {"repobilityId": "2da6a2cf5ff4baf2", "scanner": "scanner-primary", "fingerprint": "eac7c1ed017a00d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8cb9416cea1d434f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/workspaces/components/CreateWorkspaceDrawer.tsx:85"}, "properties": {"repobilityId": "dbe202d222d6ebc8", "scanner": "scanner-primary", "fingerprint": "8cb9416cea1d434f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-38d39f5e938b8b3a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/components/NotificationCenter.tsx:185"}, "properties": {"repobilityId": "9f852067a0f313c5", "scanner": "scanner-primary", "fingerprint": "38d39f5e938b8b3a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-abe24ce692eacb83", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/notifications/features-preview/index.tsx:67"}, "properties": {"repobilityId": "8bbcaf7eded1a200", "scanner": "scanner-primary", "fingerprint": "abe24ce692eacb83", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed0c8f7d9abf7f04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/registry/Registry.ts:352"}, "properties": {"repobilityId": "80774f3ed7a3b5e5", "scanner": "scanner-primary", "fingerprint": "ed0c8f7d9abf7f04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d871c437ba651819", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33"}, "properties": {"repobilityId": "a71e4d8b79075893", "scanner": "scanner-primary", "fingerprint": "d871c437ba651819", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4853ce7c575cb2b9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/foundation/utils/starred/features-preview/index.tsx:61"}, "properties": {"repobilityId": "d48cf770ce8c37f8", "scanner": "scanner-primary", "fingerprint": "4853ce7c575cb2b9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b6338b3338aa43f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/foundation/utils/core/performance.ts:51"}, "properties": {"repobilityId": "5e36f3cd9b4ab5a9", "scanner": "scanner-primary", "fingerprint": "9b6338b3338aa43f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c947d6cba7537654", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/foundation/utils/comments/components/CommentsPanel.tsx:122"}, "properties": {"repobilityId": "b00b43276d8555cc", "scanner": "scanner-primary", "fingerprint": "c947d6cba7537654", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fc6565727c4a58c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/lib/features/registry.ts:226"}, "properties": {"repobilityId": "42bc8c7a3c395ebe", "scanner": "scanner-primary", "fingerprint": "fc6565727c4a58c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fec90ca867074c47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/preview/FeatureListPanel.tsx:251"}, "properties": {"repobilityId": "cc984f1727c43606", "scanner": "scanner-primary", "fingerprint": "fec90ca867074c47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8aa8374bd06ffc57", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/preview/FeaturePreviewWrapper.tsx:115"}, "properties": {"repobilityId": "3ff0ebdb7339ed35", "scanner": "scanner-primary", "fingerprint": "8aa8374bd06ffc57", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6843af1964a0af10", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/flows/registry.ts:14"}, "properties": {"repobilityId": "a97c5214c0827a89", "scanner": "scanner-primary", "fingerprint": "6843af1964a0af10", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b3a3fc2f4317e0e1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/UnifiedLibrary.tsx:118"}, "properties": {"repobilityId": "ff35f66531c595ac", "scanner": "scanner-primary", "fingerprint": "b3a3fc2f4317e0e1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9713582cc8688b4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/TemplateLibrary.tsx:149"}, "properties": {"repobilityId": "82074c3255c418b3", "scanner": "scanner-primary", "fingerprint": "9713582cc8688b4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f86f46c1a587dec4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/library/DraggableLibraryItem.tsx:72"}, "properties": {"repobilityId": "ca34ee99cbeccb1b", "scanner": "scanner-primary", "fingerprint": "f86f46c1a587dec4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2c999c8c1db1ab3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/templates/registry.ts:14"}, "properties": {"repobilityId": "a7840f1ebb1514d3", "scanner": "scanner-primary", "fingerprint": "a2c999c8c1db1ab3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f4291ade9f390326", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/sections/registry.ts:14"}, "properties": {"repobilityId": "205c745105e72a45", "scanner": "scanner-primary", "fingerprint": "f4291ade9f390326", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-34900f15b9bb7669", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/frontend/shared/builder/elements/registry.ts:15"}, "properties": {"repobilityId": "7c3630ab18abcbd5", "scanner": "scanner-primary", "fingerprint": "34900f15b9bb7669", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cf7b87168042c5f9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/canvas/nodes/BaseNode.tsx:53"}, "properties": {"repobilityId": "14db5219b5b5f0e8", "scanner": "scanner-primary", "fingerprint": "cf7b87168042c5f9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f844e33505b0d175", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Profile/ProfileBlock.tsx:127"}, "properties": {"repobilityId": "a0dc71834313a388", "scanner": "scanner-primary", "fingerprint": "f844e33505b0d175", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-20b2f6b0b0abc07e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Events/EventsBlock.tsx:131"}, "properties": {"repobilityId": "0d74c97dfa48a883", "scanner": "scanner-primary", "fingerprint": "20b2f6b0b0abc07e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1373641605175aca", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/File/FileBlock.tsx:114"}, "properties": {"repobilityId": "b85cd2a69428e14c", "scanner": "scanner-primary", "fingerprint": "1373641605175aca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8690b838700f8794", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Activity/ActivityBlock.tsx:97"}, "properties": {"repobilityId": "45c1201d18a791db", "scanner": "scanner-primary", "fingerprint": "8690b838700f8794", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a43822595fa67f20", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/List/ListBlock.tsx:101"}, "properties": {"repobilityId": "6b0a46f8f9bbddac", "scanner": "scanner-primary", "fingerprint": "a43822595fa67f20", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d2dcd78f51940803", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/blocks/Kanban/KanbanBlock.tsx:231"}, "properties": {"repobilityId": "872f7209a03a7973", "scanner": "scanner-primary", "fingerprint": "d2dcd78f51940803", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f96815e807cc6522", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/DynamicInspector.tsx:572"}, "properties": {"repobilityId": "415528a3f644e617", "scanner": "scanner-primary", "fingerprint": "f96815e807cc6522", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9151525069903dcc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChatAI.tsx:264"}, "properties": {"repobilityId": "09ff5adeac227c20", "scanner": "scanner-primary", "fingerprint": "9151525069903dcc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-78a2e714b7b3c8c3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/ChildrenManager.tsx:251"}, "properties": {"repobilityId": "fbebdcffc8fecd34", "scanner": "scanner-primary", "fingerprint": "78a2e714b7b3c8c3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-648609c9baa563f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/SectionPicker.tsx:130"}, "properties": {"repobilityId": "ca9872221b87fc31", "scanner": "scanner-primary", "fingerprint": "648609c9baa563f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2859acbf60d517fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/frontend/shared/builder/inspector/components/InspectorSection.tsx:72"}, "properties": {"repobilityId": "feb5cc7da79d7ebd", "scanner": "scanner-primary", "fingerprint": "2859acbf60d517fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ba524873d1add499", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/frontend/shared/export/data-export-registry.ts:152"}, "properties": {"repobilityId": "eb4295392ed18038", "scanner": "scanner-primary", "fingerprint": "ba524873d1add499", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae33a1bc6c687f2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/tests/features/studio/studio-executor.test.ts:235"}, "properties": {"repobilityId": "97c290bd500766ee", "scanner": "scanner-primary", "fingerprint": "ae33a1bc6c687f2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1d69bacaa77da4a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/docs/generate-slice-docs.ts:183"}, "properties": {"repobilityId": "721ea406b3d29a28", "scanner": "scanner-primary", "fingerprint": "f1d69bacaa77da4a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-afd41e940787a77d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/feature-naming.ts:41"}, "properties": {"repobilityId": "b2596cc68c38ca8f", "scanner": "scanner-primary", "fingerprint": "afd41e940787a77d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-201c39f4aca74369", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-crud-coverage.ts:188"}, "properties": {"repobilityId": "b65345d651fde1a0", "scanner": "scanner-primary", "fingerprint": "201c39f4aca74369", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbc8acca17cfa70c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/analyze-test-gaps.ts:204"}, "properties": {"repobilityId": "3f3d1f5ac683f3ed", "scanner": "scanner-primary", "fingerprint": "cbc8acca17cfa70c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09e88d731a0cc8d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/conversation.ts:53"}, "properties": {"repobilityId": "4050fa7155e0ae96", "scanner": "scanner-primary", "fingerprint": "09e88d731a0cc8d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1a5bc1a8d07f2bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/audit-ui-consistency.ts:186"}, "properties": {"repobilityId": "a2de54599253f114", "scanner": "scanner-primary", "fingerprint": "d1a5bc1a8d07f2bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a0cff184ee9efe2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/validation/next-build-budgets.ts:179"}, "properties": {"repobilityId": "a480a98afe3a63b6", "scanner": "scanner-primary", "fingerprint": "0a0cff184ee9efe2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-caa25fa38961e7b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/edit.ts:38"}, "properties": {"repobilityId": "1ec1bdfef0c0455b", "scanner": "scanner-primary", "fingerprint": "caa25fa38961e7b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec0a28239130af9a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-init-imports.ts:65"}, "properties": {"repobilityId": "71e671efa5d29985", "scanner": "scanner-primary", "fingerprint": "ec0a28239130af9a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-198576aa28ab7b5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-previews.ts:160"}, "properties": {"repobilityId": "21e72a2cbf721f19", "scanner": "scanner-primary", "fingerprint": "198576aa28ab7b5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8cb914372843f103", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-preview-registry.ts:228"}, "properties": {"repobilityId": "866d39080dd558a4", "scanner": "scanner-primary", "fingerprint": "8cb914372843f103", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ba97496e47ea3a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-manifest.ts:286"}, "properties": {"repobilityId": "fdbff20fde325f5d", "scanner": "scanner-primary", "fingerprint": "9ba97496e47ea3a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f26cb2cff761c617", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-registry.ts:337"}, "properties": {"repobilityId": "594a1c89d5bb582f", "scanner": "scanner-primary", "fingerprint": "f26cb2cff761c617", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1337956b9c71f854", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync-agents.ts:8"}, "properties": {"repobilityId": "17a6bea7f15e1402", "scanner": "scanner-primary", "fingerprint": "1337956b9c71f854", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12322a641209a339", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/add-export-import.ts:34"}, "properties": {"repobilityId": "914362e9fc6cac2a", "scanner": "scanner-primary", "fingerprint": "12322a641209a339", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2c6b290f3b736126", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/test-registry.ts:37"}, "properties": {"repobilityId": "a6d13c1e2a9587ba", "scanner": "scanner-primary", "fingerprint": "2c6b290f3b736126", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-672bdca0883ce75a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/scripts/features/create.ts:583"}, "properties": {"repobilityId": "164e9669cacfabf1", "scanner": "scanner-primary", "fingerprint": "672bdca0883ce75a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1c53ffb06d5614a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/create.ts:72"}, "properties": {"repobilityId": "53e760a87747b400", "scanner": "scanner-primary", "fingerprint": "1c53ffb06d5614a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ee668eb0213525a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/generate-export-registry.ts:82"}, "properties": {"repobilityId": "7df43595c9050382", "scanner": "scanner-primary", "fingerprint": "7ee668eb0213525a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e53323ebbeca2b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/sync.ts:110"}, "properties": {"repobilityId": "00e77bc93c3d382e", "scanner": "scanner-primary", "fingerprint": "5e53323ebbeca2b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-461bd25ba83f47d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/list.ts:29"}, "properties": {"repobilityId": "1534cd030e206c4c", "scanner": "scanner-primary", "fingerprint": "461bd25ba83f47d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51750e6a481a7185", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/delete.ts:34"}, "properties": {"repobilityId": "415f68e5e2c8a5fb", "scanner": "scanner-primary", "fingerprint": "51750e6a481a7185", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef0e6378814cdaef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-bundles.ts:258"}, "properties": {"repobilityId": "264aa29e07559127", "scanner": "scanner-primary", "fingerprint": "ef0e6378814cdaef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f7955ee6072864d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/analyze-feature.ts:255"}, "properties": {"repobilityId": "15fca0b921cf7a04", "scanner": "scanner-primary", "fingerprint": "7f7955ee6072864d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-217a8d179a35860d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/scripts/features/validate-slice-structure.ts:143"}, "properties": {"repobilityId": "d7bb6ac1a9093cde", "scanner": "scanner-primary", "fingerprint": "217a8d179a35860d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4cd6e98a488afb35", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/filters.tsx:1036"}, "properties": {"repobilityId": "baf68870a3ccb71d", "scanner": "scanner-primary", "fingerprint": "4cd6e98a488afb35", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c5b450c8791e2070", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/chart.tsx:95"}, "properties": {"repobilityId": "24f207cc9eafd586", "scanner": "scanner-primary", "fingerprint": "c5b450c8791e2070", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e8d57517a669055d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/server.tsx:60"}, "properties": {"repobilityId": "b21b2fa2fea0a546", "scanner": "scanner-primary", "fingerprint": "e8d57517a669055d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-14e0ea59af0406dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:372"}, "properties": {"repobilityId": "64898284953a07b0", "scanner": "scanner-primary", "fingerprint": "14e0ea59af0406dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-855e0c118b13a1fd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 template-base/components/ui/shadcn-io/code-block/index.tsx:616"}, "properties": {"repobilityId": "56ff6051fc5585a6", "scanner": "scanner-primary", "fingerprint": "855e0c118b13a1fd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e69d23f2db818179", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 template-base/components/ui/shadcn-io/ai/inline-citation.tsx:253"}, "properties": {"repobilityId": "9e16e58caac68cf6", "scanner": "scanner-primary", "fingerprint": "e69d23f2db818179", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10b16c1048b5e413", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/convex/auth/helpers.ts:35"}, "properties": {"repobilityId": "bfb175a86c961c62", "scanner": "scanner-primary", "fingerprint": "10b16c1048b5e413", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-477172579c61bad9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 template-base/convex/lib/quota.ts:18"}, "properties": {"repobilityId": "ba96715fa7e34fba", "scanner": "scanner-primary", "fingerprint": "477172579c61bad9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-88d81af8c0937b02", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/executor.ts:305"}, "properties": {"repobilityId": "84366c3b1716c3d8", "scanner": "scanner-primary", "fingerprint": "88d81af8c0937b02", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ffeb4401bccf0ec5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 template-base/convex/features/studio/sla.ts:30"}, "properties": {"repobilityId": "a15923f39e2879b4", "scanner": "scanner-primary", "fingerprint": "ffeb4401bccf0ec5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22b136f0f5fadad5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/layout/AppSidebar.tsx:117"}, "properties": {"repobilityId": "a90cfbd9b598efce", "scanner": "scanner-primary", "fingerprint": "22b136f0f5fadad5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ba52a209e64b66c9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/ui/chart.tsx:95"}, "properties": {"repobilityId": "dd1e3f2d87b6f488", "scanner": "scanner-primary", "fingerprint": "ba52a209e64b66c9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-702178091e02e001", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/analytics/AnalyticsView.tsx:71"}, "properties": {"repobilityId": "1712350f548de54e", "scanner": "scanner-primary", "fingerprint": "702178091e02e001", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-093d94da81643c61", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/personal-brand/slices/admin/dashboard/DashboardSections.tsx:62"}, "properties": {"repobilityId": "6e72433f70bfd099", "scanner": "scanner-primary", "fingerprint": "093d94da81643c61", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94113b9a9f13182c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/blog/BlogSidebar.tsx:98"}, "properties": {"repobilityId": "4146e557f48ad31e", "scanner": "scanner-primary", "fingerprint": "94113b9a9f13182c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cfbddbe8215928c2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/saas-marketing/slices/admin/dashboard/DashboardView.tsx:42"}, "properties": {"repobilityId": "0d8aef0a2372fc50", "scanner": "scanner-primary", "fingerprint": "cfbddbe8215928c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-52ea5575596e6c34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/analytics/AnalyticsView.tsx:138"}, "properties": {"repobilityId": "e52527fa01a9ddba", "scanner": "scanner-primary", "fingerprint": "52ea5575596e6c34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc9947548f463402", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/dashboard/DashboardView.tsx:45"}, "properties": {"repobilityId": "f63d210b48a00345", "scanner": "scanner-primary", "fingerprint": "cc9947548f463402", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e7bdfb852b018c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/research/slices/admin/collaborators/CollaboratorsView.tsx:125"}, "properties": {"repobilityId": "deb9e2283652ed75", "scanner": "scanner-primary", "fingerprint": "7e7bdfb852b018c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-173eeab483c6911e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/analytics/AnalyticsView.tsx:109"}, "properties": {"repobilityId": "9c3f497731fa223d", "scanner": "scanner-primary", "fingerprint": "173eeab483c6911e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3210357ea7791fa9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/dashboard/DashboardView.tsx:50"}, "properties": {"repobilityId": "9b61bc54f9ba5e3c", "scanner": "scanner-primary", "fingerprint": "3210357ea7791fa9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8e1f7a2566b2e12", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/konsultan/slices/admin/calendar/CalendarView.tsx:109"}, "properties": {"repobilityId": "5d6be7d07474fe7a", "scanner": "scanner-primary", "fingerprint": "b8e1f7a2566b2e12", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a209c7127ff8598", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/analytics/AnalyticsView.tsx:77"}, "properties": {"repobilityId": "8b4954f1526db286", "scanner": "scanner-primary", "fingerprint": "3a209c7127ff8598", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3beae8e3d30a8fc3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/wirausaha/slices/admin/dashboard/DashboardView.tsx:51"}, "properties": {"repobilityId": "3b7d1fab2746c324", "scanner": "scanner-primary", "fingerprint": "3beae8e3d30a8fc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75470c4cf82657e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/analytics/AnalyticsView.tsx:105"}, "properties": {"repobilityId": "14846d29b75baaee", "scanner": "scanner-primary", "fingerprint": "75470c4cf82657e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-61175195a99eee79", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/projects/ProjectsList.tsx:38"}, "properties": {"repobilityId": "d9fc271802dc1afc", "scanner": "scanner-primary", "fingerprint": "61175195a99eee79", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41745cae16c88948", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/agency-studio/slices/admin/dashboard/DashboardView.tsx:41"}, "properties": {"repobilityId": "9f29f3f7d677824a", "scanner": "scanner-primary", "fingerprint": "41745cae16c88948", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7b9175cffef678fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/notion-page-clone/slices/notion-app/WorkspaceTopBar.tsx:65"}, "properties": {"repobilityId": "2a5d60b36adb0b0b", "scanner": "scanner-primary", "fingerprint": "7b9175cffef678fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31e7a831061ef940", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/testimonials/TestimonialsCard.tsx:26"}, "properties": {"repobilityId": "db594eee254ad87d", "scanner": "scanner-primary", "fingerprint": "31e7a831061ef940", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ffb5cb16484eeac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/monetization/MonetizationView.tsx:91"}, "properties": {"repobilityId": "af8c1f8e0f80cd5a", "scanner": "scanner-primary", "fingerprint": "5ffb5cb16484eeac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-77d0beec275f4972", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/analytics/AnalyticsView.tsx:141"}, "properties": {"repobilityId": "1423e4c0f8e17e7c", "scanner": "scanner-primary", "fingerprint": "77d0beec275f4972", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac17b43c056f3f57", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/kreator-studio/slices/admin/dashboard/DashboardSections.tsx:33"}, "properties": {"repobilityId": "e010db5cf285aa1b", "scanner": "scanner-primary", "fingerprint": "ac17b43c056f3f57", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3334cbd665f3c9d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/workspace-switcher.tsx:66"}, "properties": {"repobilityId": "d864ead72e686a48", "scanner": "scanner-primary", "fingerprint": "3334cbd665f3c9d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1503c4f71f6e59b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-nav-items.tsx:53"}, "properties": {"repobilityId": "cbb18ece3ed2057d", "scanner": "scanner-primary", "fingerprint": "1503c4f71f6e59b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6563eddb91516e15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/admin-sidebar.tsx:92"}, "properties": {"repobilityId": "9126a0297826848d", "scanner": "scanner-primary", "fingerprint": "6563eddb91516e15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc705b8241ea1c2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/ui/secondary-sidebar.tsx:62"}, "properties": {"repobilityId": "f8b6e5aeda444018", "scanner": "scanner-primary", "fingerprint": "cc705b8241ea1c2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c960bf9e010a73ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/integration-grid.tsx:22"}, "properties": {"repobilityId": "66515725caac5a73", "scanner": "scanner-primary", "fingerprint": "c960bf9e010a73ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a46f3aa979b29cfe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/settings/api-keys-list.tsx:35"}, "properties": {"repobilityId": "57a9b05118e59536", "scanner": "scanner-primary", "fingerprint": "a46f3aa979b29cfe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d615017e06d79e02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/users/UsersBlockView.tsx:122"}, "properties": {"repobilityId": "60ac821ebf99361d", "scanner": "scanner-primary", "fingerprint": "d615017e06d79e02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-01de6e0778007c81", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/analytics/funnel-and-pages.tsx:44"}, "properties": {"repobilityId": "ea9ce32b34fbd27f", "scanner": "scanner-primary", "fingerprint": "01de6e0778007c81", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5b480b5d5e23060d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/event-row.tsx:50"}, "properties": {"repobilityId": "8dcf29c61665b142", "scanner": "scanner-primary", "fingerprint": "5b480b5d5e23060d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-40a91b1605e42c65", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/audit-log/diff-tree.tsx:31"}, "properties": {"repobilityId": "a2297451ef5e18e9", "scanner": "scanner-primary", "fingerprint": "40a91b1605e42c65", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7dc079352c8afad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/ai-config/provider-card.tsx:31"}, "properties": {"repobilityId": "63fad67e2d135548", "scanner": "scanner-primary", "fingerprint": "b7dc079352c8afad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17f5e37f1f958071", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/delivery-table.tsx:47"}, "properties": {"repobilityId": "e6d3665e394ff976", "scanner": "scanner-primary", "fingerprint": "17f5e37f1f958071", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-82267c2ce4a9f9a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/templates/_shared/admin-panel/blocks/webhooks/endpoint-row.tsx:36"}, "properties": {"repobilityId": "d6739952a8ebfcac", "scanner": "scanner-primary", "fingerprint": "82267c2ce4a9f9a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad670d9e27627c08", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview-pane.tsx:89"}, "properties": {"repobilityId": "a5e6a20dfac439c8", "scanner": "scanner-primary", "fingerprint": "ad670d9e27627c08", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-47f32d47571aa8b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/command-palette.tsx:53"}, "properties": {"repobilityId": "0d30020542e13222", "scanner": "scanner-primary", "fingerprint": "47f32d47571aa8b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c87e45bd7ff81b7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/code-block.tsx:19"}, "properties": {"repobilityId": "6c3bacc8303ceb6b", "scanner": "scanner-primary", "fingerprint": "9c87e45bd7ff81b7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1c6bf35f331f26d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail.tsx:117"}, "properties": {"repobilityId": "becb471eb5bbdd01", "scanner": "scanner-primary", "fingerprint": "1c6bf35f331f26d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83fa52c10182566d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-block.tsx:61"}, "properties": {"repobilityId": "944c10fb0671ccb0", "scanner": "scanner-primary", "fingerprint": "83fa52c10182566d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-388717b1e57300b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar.tsx:73"}, "properties": {"repobilityId": "1ba77b43c13c2615", "scanner": "scanner-primary", "fingerprint": "388717b1e57300b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f32f09e5e7af9ed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/assembler-inspector.tsx:50"}, "properties": {"repobilityId": "0e20f9b6d7147bd3", "scanner": "scanner-primary", "fingerprint": "7f32f09e5e7af9ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99220079f5af4f09", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/related-features.tsx:87"}, "properties": {"repobilityId": "45757e4d824647b4", "scanner": "scanner-primary", "fingerprint": "99220079f5af4f09", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6bc9b690272b0cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/preview-kit/composer.tsx:87"}, "properties": {"repobilityId": "35c09736ea37bda6", "scanner": "scanner-primary", "fingerprint": "f6bc9b690272b0cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b1a680db23d64cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/split-preview/split-pane.tsx:82"}, "properties": {"repobilityId": "4008cfdb065127ac", "scanner": "scanner-primary", "fingerprint": "6b1a680db23d64cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a96253b25653c0ad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/code-view.tsx:34"}, "properties": {"repobilityId": "2c393aa84db4f758", "scanner": "scanner-primary", "fingerprint": "a96253b25653c0ad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3838494f80506b94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/slice-code/tree-node.tsx:61"}, "properties": {"repobilityId": "0f4717abaf126cda", "scanner": "scanner-primary", "fingerprint": "3838494f80506b94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b1a7376709128144", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/theme-preset/preset-list.tsx:57"}, "properties": {"repobilityId": "2d80e3af8f15afb9", "scanner": "scanner-primary", "fingerprint": "b1a7376709128144", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9228b4f3c63f500", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/catalog/showcase-card.tsx:62"}, "properties": {"repobilityId": "b1f8cbccd3a5a048", "scanner": "scanner-primary", "fingerprint": "a9228b4f3c63f500", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a478c4ca94a84d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-grouped-items.tsx:99"}, "properties": {"repobilityId": "138b650cb2c323fa", "scanner": "scanner-primary", "fingerprint": "1a478c4ca94a84d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4d1fedb9aaed89b1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/site-sidebar/sidebar-list-group.tsx:75"}, "properties": {"repobilityId": "171a03a950bda766", "scanner": "scanner-primary", "fingerprint": "4d1fedb9aaed89b1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-000624d1706258c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/code-tab.tsx:111"}, "properties": {"repobilityId": "4689ae33cc4dc251", "scanner": "scanner-primary", "fingerprint": "000624d1706258c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f0a8a2745e060412", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/template-detail/static-inspector.tsx:37"}, "properties": {"repobilityId": "3dfe7205252fced6", "scanner": "scanner-primary", "fingerprint": "f0a8a2745e060412", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fa43db0047ffc375", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/site/docs-sidebar/nav-parts.tsx:116"}, "properties": {"repobilityId": "66f46b90600b3a86", "scanner": "scanner-primary", "fingerprint": "fa43db0047ffc375", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-172332223145ab88", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/app-sidebar.tsx:63"}, "properties": {"repobilityId": "b635fd6af8a4533a", "scanner": "scanner-primary", "fingerprint": "172332223145ab88", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15f2e9c08d4aa485", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/list-editor.tsx:82"}, "properties": {"repobilityId": "409e06a39e70d619", "scanner": "scanner-primary", "fingerprint": "15f2e9c08d4aa485", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-686e6aab37031fb1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/nav-user.tsx:45"}, "properties": {"repobilityId": "5de939da33f5e7d5", "scanner": "scanner-primary", "fingerprint": "686e6aab37031fb1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6436e9b7b7c2a1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/PanelHeader.tsx:78"}, "properties": {"repobilityId": "4a027f6b5de15995", "scanner": "scanner-primary", "fingerprint": "d6436e9b7b7c2a1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c052e16282731593", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/previews/three-column/mobile/MobileHeader.tsx:49"}, "properties": {"repobilityId": "e82c9091fcff6fbf", "scanner": "scanner-primary", "fingerprint": "c052e16282731593", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b887bf5e01db47b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/file-explorer/page.tsx:19"}, "properties": {"repobilityId": "eea75ecd833752d7", "scanner": "scanner-primary", "fingerprint": "b887bf5e01db47b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-448fa590a32f52b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/create-your-mcp/page.tsx:79"}, "properties": {"repobilityId": "b26057a14a3bb357", "scanner": "scanner-primary", "fingerprint": "448fa590a32f52b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0712be0119d44819", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/theme-presets/theme-widgets-b.tsx:111"}, "properties": {"repobilityId": "abec8b8838790a70", "scanner": "scanner-primary", "fingerprint": "0712be0119d44819", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b10d90b8e9768a1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/audit-log/page.tsx:44"}, "properties": {"repobilityId": "9c54b2605b9e01ec", "scanner": "scanner-primary", "fingerprint": "b10d90b8e9768a1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7bbb7f7d23c81735", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/testimonials/page.tsx:51"}, "properties": {"repobilityId": "4ba1b41fabc31327", "scanner": "scanner-primary", "fingerprint": "7bbb7f7d23c81735", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2897946652fbe9c3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-admin/tabs-catalog.tsx:78"}, "properties": {"repobilityId": "b17c4fdbe09f79fd", "scanner": "scanner-primary", "fingerprint": "2897946652fbe9c3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3b011fa35c0676e5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/panels.tsx:75"}, "properties": {"repobilityId": "8e6a9b4d30fe9e05", "scanner": "scanner-primary", "fingerprint": "3b011fa35c0676e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d29c45f2d2b1be3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/page.tsx:72"}, "properties": {"repobilityId": "c99405a70c0ecafd", "scanner": "scanner-primary", "fingerprint": "6d29c45f2d2b1be3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31aa3d2087b14ec8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-chat/search/page.tsx:48"}, "properties": {"repobilityId": "6acbc45e68afa965", "scanner": "scanner-primary", "fingerprint": "31aa3d2087b14ec8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-642409a5af40cc3b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/ai-agents/page.tsx:139"}, "properties": {"repobilityId": "b84299d657be7989", "scanner": "scanner-primary", "fingerprint": "642409a5af40cc3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7c8a7cfb95e29c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/services/page.tsx:67"}, "properties": {"repobilityId": "45d356f926713f2c", "scanner": "scanner-primary", "fingerprint": "e7c8a7cfb95e29c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de7682e6d66f12ee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/event-tracking/page.tsx:50"}, "properties": {"repobilityId": "02b3c14451ebcc1f", "scanner": "scanner-primary", "fingerprint": "de7682e6d66f12ee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39d990c89b73e0bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/preview/slices/image-editor/page.tsx:18"}, "properties": {"repobilityId": "bd246617cf00c58e", "scanner": "scanner-primary", "fingerprint": "39d990c89b73e0bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-deb8d5d0f3605100", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/workspace-shell/nav.tsx:38"}, "properties": {"repobilityId": "c05bba0f7cdd5f7d", "scanner": "scanner-primary", "fingerprint": "deb8d5d0f3605100", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d29f4d4ab88a0e03", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/slices/seo/page.tsx:27"}, "properties": {"repobilityId": "bbb2017ca4c11b2f", "scanner": "scanner-primary", "fingerprint": "d29f4d4ab88a0e03", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42087a0246e78892", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-ide/explorer.tsx:60"}, "properties": {"repobilityId": "51d689e78b3c0607", "scanner": "scanner-primary", "fingerprint": "42087a0246e78892", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-946b0eb2902d7a04", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-mobile-dock/sections.tsx:90"}, "properties": {"repobilityId": "3ccaf92cdbf5d8fd", "scanner": "scanner-primary", "fingerprint": "946b0eb2902d7a04", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb5f364b8bd81d17", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/cms-public-storefront/page.tsx:113"}, "properties": {"repobilityId": "e6ac1b43a35b716a", "scanner": "scanner-primary", "fingerprint": "eb5f364b8bd81d17", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bba02cf9e59df60f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/dashboard-three-column/sections.tsx:57"}, "properties": {"repobilityId": "c818091988e40513", "scanner": "scanner-primary", "fingerprint": "bba02cf9e59df60f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8fb5502644e460b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/preview/three-column-trio/page.tsx:82"}, "properties": {"repobilityId": "ec9cfe038c74edb1", "scanner": "scanner-primary", "fingerprint": "8fb5502644e460b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db596b4cfb571cd1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/hero-strip.tsx:23"}, "properties": {"repobilityId": "17168c01adce9e9b", "scanner": "scanner-primary", "fingerprint": "db596b4cfb571cd1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c5fa88d9c2223ae8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/slices/[slug]/slice-detail-header.tsx:68"}, "properties": {"repobilityId": "a1ce6966fbfd53c6", "scanner": "scanner-primary", "fingerprint": "c5fa88d9c2223ae8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ec7fbc0eee589c2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/directory/page.tsx:36"}, "properties": {"repobilityId": "79630eee55d10097", "scanner": "scanner-primary", "fingerprint": "9ec7fbc0eee589c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-984b8515f997cdb5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(docs)/agents/agent-index.tsx:33"}, "properties": {"repobilityId": "0a5e683b17069458", "scanner": "scanner-primary", "fingerprint": "984b8515f997cdb5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f5b85da7be2fc1cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/content/slices.ts:186"}, "properties": {"repobilityId": "f2d402847c6a9bd3", "scanner": "scanner-primary", "fingerprint": "f5b85da7be2fc1cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa55c1b0b961dc8c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/content/changelog/part-01.ts:10"}, "properties": {"repobilityId": "2ef9cd8d5a74ffc9", "scanner": "scanner-primary", "fingerprint": "fa55c1b0b961dc8c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-00c674fbbb652fad", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/shared/src/lib/sanitizeHtml.ts:5"}, "properties": {"repobilityId": "37fd120830110fd0", "scanner": "scanner-primary", "fingerprint": "00c674fbbb652fad", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8987d6d1c30c7202", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "068fbf45727eac17", "scanner": "scanner-primary", "fingerprint": "8987d6d1c30c7202", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8987d6d1c30c7202", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "5fc284d160e4c864", "scanner": "scanner-primary", "fingerprint": "8987d6d1c30c7202", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-385e842d703d3beb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "8d75500473cea637", "scanner": "scanner-primary", "fingerprint": "385e842d703d3beb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "template-base/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-385e842d703d3beb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "43b6378f6847d56b", "scanner": "scanner-primary", "fingerprint": "385e842d703d3beb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "template-base/Dockerfile"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-385e842d703d3beb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "e4d9bb73cfd4dc1d", "scanner": "scanner-primary", "fingerprint": "385e842d703d3beb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "template-base/Dockerfile"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-c159551451a00fe1", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "4c15a198e559dd78", "scanner": "scanner-primary", "fingerprint": "c159551451a00fe1", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/Dockerfile"}, "region": {"startLine": 6}}}]}, {"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-b9e7f5e69909d3f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inlineDecorator.test.ts:15"}, "properties": {"repobilityId": "d881c7f8c24752fe", "scanner": "scanner-primary", "fingerprint": "b9e7f5e69909d3f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/notion/slices/editor/lib/inlineDecorator.test.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-d09d82777f8389d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/notion/slices/editor/lib/inline-decorator/caret.test.ts:42"}, "properties": {"repobilityId": "7abd3e0a0fe95280", "scanner": "scanner-primary", "fingerprint": "d09d82777f8389d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/notion/slices/editor/lib/inline-decorator/caret.test.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-600e140dc349843b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion/shared/lib/katex-lazy.tsx:45"}, "properties": {"repobilityId": "9b4d9aa662759eca", "scanner": "scanner-primary", "fingerprint": "600e140dc349843b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/notion/shared/lib/katex-lazy.tsx"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-83305715afeeec96", "level": "error", "message": {"text": "Possible secret in frontend/slices/convex-auth/README.md"}, "properties": {"repobilityId": "c609f30b415b0245", "scanner": "scanner-primary", "fingerprint": "83305715afeeec96", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/convex-auth/README.md"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-b5737f2e52d214f5", "level": "error", "message": {"text": "Possible secret in frontend/slices/convex-auth/lib/labels.ts"}, "properties": {"repobilityId": "53f8da046208bcae", "scanner": "scanner-primary", "fingerprint": "b5737f2e52d214f5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/convex-auth/lib/labels.ts"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-0d294feff7615bf2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/notion-shell/components/blocks/CodeBlock.tsx:96"}, "properties": {"repobilityId": "23f6583df42a7a36", "scanner": "scanner-primary", "fingerprint": "0d294feff7615bf2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/notion-shell/components/blocks/CodeBlock.tsx"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-6be04c6adb5f8399", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/components/MermaidBlock.tsx:52"}, "properties": {"repobilityId": "fa290d75f3332064", "scanner": "scanner-primary", "fingerprint": "6be04c6adb5f8399", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/markdown/components/MermaidBlock.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-2ac8cbc32ffbd982", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/markdown/lib/katex-lazy.tsx:44"}, "properties": {"repobilityId": "79a81a0f93cdadf4", "scanner": "scanner-primary", "fingerprint": "2ac8cbc32ffbd982", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/markdown/lib/katex-lazy.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-09715a9deb40d733", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:88"}, "properties": {"repobilityId": "0e1180e1673c7688", "scanner": "scanner-primary", "fingerprint": "09715a9deb40d733", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/code-editor/components/editor-surface.tsx"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-b53832856e09b59d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/capture-shots.mjs:16"}, "properties": {"repobilityId": "f3418aac21d06304", "scanner": "scanner-primary", "fingerprint": "b53832856e09b59d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/capture-shots.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-8dd9bd1875e144fb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validate-all.mjs:19"}, "properties": {"repobilityId": "e611d8fa0c724395", "scanner": "scanner-primary", "fingerprint": "8dd9bd1875e144fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate-all.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-d5ed1bcdb848ec6f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/deploy-convex-functions.mjs:21"}, "properties": {"repobilityId": "63ff5b6f2c60edb6", "scanner": "scanner-primary", "fingerprint": "d5ed1bcdb848ec6f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/deploy-convex-functions.mjs"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-a961f003e57a1e8d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/smoke-migrate-doku.mjs:12"}, "properties": {"repobilityId": "6371ba37ba3bcfd0", "scanner": "scanner-primary", "fingerprint": "a961f003e57a1e8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/smoke-migrate-doku.mjs"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-c7144a994ca324be", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/apply-midtrans-collision-fix.mjs:21"}, "properties": {"repobilityId": "291fb299d11e096d", "scanner": "scanner-primary", "fingerprint": "c7144a994ca324be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/apply-midtrans-collision-fix.mjs"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-0a15a496c3524f4a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validation/validate-changelog.test.mjs:5"}, "properties": {"repobilityId": "fa16f13b7aab4e09", "scanner": "scanner-primary", "fingerprint": "0a15a496c3524f4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validation/validate-changelog.test.mjs"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-dc1e6451be98d5fb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validation/validate-contract-shape.mjs:8"}, "properties": {"repobilityId": "1b94408919fef5cc", "scanner": "scanner-primary", "fingerprint": "dc1e6451be98d5fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validation/validate-contract-shape.mjs"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-7d166108e7bf246b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/features/modify-slice.mjs:21"}, "properties": {"repobilityId": "f47529b8ed226149", "scanner": "scanner-primary", "fingerprint": "7d166108e7bf246b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/features/modify-slice.mjs"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c7e8624d08118a9d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/features/scaffold-slice.mjs:19"}, "properties": {"repobilityId": "be082c7f19a6af2d", "scanner": "scanner-primary", "fingerprint": "c7e8624d08118a9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/features/scaffold-slice.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-c8828b526257cfa9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/ui/chart.tsx:95"}, "properties": {"repobilityId": "c41c7626c87bbabe", "scanner": "scanner-primary", "fingerprint": "c8828b526257cfa9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/ui/chart.tsx"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-3bb5f486e036dc61", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in lib/content/slices.ts:564"}, "properties": {"repobilityId": "970bc16ee0f91285", "scanner": "scanner-primary", "fingerprint": "3bb5f486e036dc61", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/content/slices.ts"}, "region": {"startLine": 564}}}]}, {"ruleId": "scanner-4e618bbc2b251115", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in lib/content/changelog/part-01.ts:10"}, "properties": {"repobilityId": "9129504fac779b95", "scanner": "scanner-primary", "fingerprint": "4e618bbc2b251115", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/content/changelog/part-01.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-dff98fe7c9f557da", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/mcp/src/http-transport.mjs:19"}, "properties": {"repobilityId": "7d8ce03c96f64670", "scanner": "scanner-primary", "fingerprint": "dff98fe7c9f557da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/http-transport.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ca7b01115a35c65d", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in packages/cli/scripts/parse-content.mjs:80"}, "properties": {"repobilityId": "3cf98625a166f378", "scanner": "scanner-primary", "fingerprint": "ca7b01115a35c65d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/scripts/parse-content.mjs"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-2eaffe30769ddfb1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/scripts/validate.mjs:7"}, "properties": {"repobilityId": "8ee48c5ab5535057", "scanner": "scanner-primary", "fingerprint": "2eaffe30769ddfb1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/scripts/validate.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-0d3d63ef88b0925c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/alias-resolution.test.mjs:5"}, "properties": {"repobilityId": "a25117ffe33f2db5", "scanner": "scanner-primary", "fingerprint": "0d3d63ef88b0925c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/alias-resolution.test.mjs"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6c2dfb3ba4a6426f", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/cli/lib/manifest.json:1544"}, "properties": {"repobilityId": "74b88d61bea57f57", "scanner": "scanner-primary", "fingerprint": "6c2dfb3ba4a6426f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/manifest.json"}, "region": {"startLine": 1544}}}]}, {"ruleId": "scanner-81b750242b3a20ff", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/snapshot.mjs:10"}, "properties": {"repobilityId": "7fbb245ae1d5fff5", "scanner": "scanner-primary", "fingerprint": "81b750242b3a20ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/snapshot.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-2b9e5b0ff07e0935", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/compose-solver-loader.mjs:9"}, "properties": {"repobilityId": "439b2ca3caa53efe", "scanner": "scanner-primary", "fingerprint": "2b9e5b0ff07e0935", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/compose-solver-loader.mjs"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-b23d5e666f5ff5c3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/smoke-test.mjs:8"}, "properties": {"repobilityId": "4719f7976a04371b", "scanner": "scanner-primary", "fingerprint": "b23d5e666f5ff5c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/starter/scripts/smoke-test.mjs"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-dd36d0e38b1071e9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cli/lib/starter/scripts/setup-auth.mjs:13"}, "properties": {"repobilityId": "6262515696978d6d", "scanner": "scanner-primary", "fingerprint": "dd36d0e38b1071e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/lib/starter/scripts/setup-auth.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6b8453e542e16554", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/install.mjs:5"}, "properties": {"repobilityId": "3b1658b199c8225d", "scanner": "scanner-primary", "fingerprint": "6b8453e542e16554", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/commands/install.mjs"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-3116c147b2a2acd9", "level": "error", "message": {"text": "Possible secret in packages/cr/src/commands/local.mjs"}, "properties": {"repobilityId": "889f2c3af20820e7", "scanner": "scanner-primary", "fingerprint": "3116c147b2a2acd9", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/commands/local.mjs"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-5124a6ef542a976c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/local.mjs:7"}, "properties": {"repobilityId": "147ea49aba28fd17", "scanner": "scanner-primary", "fingerprint": "5124a6ef542a976c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/commands/local.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-0fe0f40477067477", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/commands/doctor.mjs:2"}, "properties": {"repobilityId": "16eafa7df6b7f77a", "scanner": "scanner-primary", "fingerprint": "0fe0f40477067477", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/commands/doctor.mjs"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-8bf9bdcef224095f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/cr/src/lib/clipboard.mjs:4"}, "properties": {"repobilityId": "5c2a100207e6f843", "scanner": "scanner-primary", "fingerprint": "8bf9bdcef224095f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/lib/clipboard.mjs"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-416b578a2435e795", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c21cc4dc60664430", "scanner": "scanner-primary", "fingerprint": "416b578a2435e795", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/contracts-drift.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-416b578a2435e795", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "481c60bf3bf56b7f", "scanner": "scanner-primary", "fingerprint": "416b578a2435e795", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/contracts-drift.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-416b578a2435e795", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "02240929b5e75ce1", "scanner": "scanner-primary", "fingerprint": "416b578a2435e795", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/contracts-drift.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6f65c0d17687c9f3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c30e34d0444e0aaf", "scanner": "scanner-primary", "fingerprint": "6f65c0d17687c9f3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/audit-bp.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-6f65c0d17687c9f3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9b5fef9c4e3fc701", "scanner": "scanner-primary", "fingerprint": "6f65c0d17687c9f3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/audit-bp.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-6f65c0d17687c9f3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a06d8280849102b4", "scanner": "scanner-primary", "fingerprint": "6f65c0d17687c9f3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/audit-bp.yml"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e78155a8f7757ab6", "level": "note", "message": {"text": "Very large file: template-base/frontend/slices/studio/ui/types/StudioUISchema.ts (1082 lines)"}, "properties": {"repobilityId": "d2e4ef3ae9107c95", "scanner": "scanner-primary", "fingerprint": "e78155a8f7757ab6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a754f91516d25ba8", "level": "note", "message": {"text": "Very large file: template-base/frontend/slices/studio/agent/index.ts (1255 lines)"}, "properties": {"repobilityId": "9218f67a4afa95b9", "scanner": "scanner-primary", "fingerprint": "a754f91516d25ba8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e72ab19eab113aca", "level": "note", "message": {"text": "Very large file: template-base/frontend/shared/builder/inspector/DynamicInspector.tsx (1604 lines)"}, "properties": {"repobilityId": "b9497aaa2f83d854", "scanner": "scanner-primary", "fingerprint": "e72ab19eab113aca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fbd94a7b731041b4", "level": "note", "message": {"text": "Very large file: template-base/components/ui/filters.tsx (2138 lines)"}, "properties": {"repobilityId": "be0fdb0c5d23e395", "scanner": "scanner-primary", "fingerprint": "fbd94a7b731041b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a13bb43836d054ff", "level": "note", "message": {"text": "Very large file: lib/content/slices.ts (2474 lines)"}, "properties": {"repobilityId": "11217f388ef9dd3b", "scanner": "scanner-primary", "fingerprint": "a13bb43836d054ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1477fba581e6103f", "level": "note", "message": {"text": "Very large file: lib/content/layouts.ts (1464 lines)"}, "properties": {"repobilityId": "3c5733e025c5e17f", "scanner": "scanner-primary", "fingerprint": "1477fba581e6103f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77ca4ba7d56f736e", "level": "note", "message": {"text": "Very large file: lib/content/changelog/part-01.ts (1474 lines)"}, "properties": {"repobilityId": "1d751ff9e06b347a", "scanner": "scanner-primary", "fingerprint": "77ca4ba7d56f736e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-7cc752c030017dc8", "level": "note", "message": {"text": "89 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "7cc752c030017dc8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "7c9644c5ab9eb86c", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2699d5f16ae11282", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "properties": {"repobilityId": "37ac218a4ef9b430", "scanner": "scanner-primary", "fingerprint": "2699d5f16ae11282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/shared/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64b28722a10084e8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/browser-extension/package.json"}, "properties": {"repobilityId": "1c8cf18984724a8e", "scanner": "scanner-primary", "fingerprint": "64b28722a10084e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/browser-extension/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba561cccbb17b315", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/browser-protocol/package.json"}, "properties": {"repobilityId": "30417ad8a8329ade", "scanner": "scanner-primary", "fingerprint": "ba561cccbb17b315", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/browser-protocol/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec8437d3d9df047c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cr/package.json"}, "properties": {"repobilityId": "2e6f88b707fd041f", "scanner": "scanner-primary", "fingerprint": "ec8437d3d9df047c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "774012853364bfde", "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": "ea6f809d59b4cd6a", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "116b6eaa8593a860", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "30c4d1fe0ac77f6b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "0cc45c37f81c4200", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "d784fe94cf5a1613", "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": "cc8a8d760128545d", "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": "2df25668f3eacac2", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-388646417c492fea", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: template-base/AGENTS.md"}, "properties": {"repobilityId": "8c5b66181a9192bd", "scanner": "scanner-primary", "fingerprint": "388646417c492fea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "template-base/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c41d1856c8b772ba", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: template-base/frontend/slices/studio/AGENTS.md"}, "properties": {"repobilityId": "68eb61a6a610a0f5", "scanner": "scanner-primary", "fingerprint": "c41d1856c8b772ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "template-base/frontend/slices/studio/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac46a67fd3742d60", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: packages/cr/src/prompts/claude.md"}, "properties": {"repobilityId": "53a4c7e1c353cba4", "scanner": "scanner-primary", "fingerprint": "ac46a67fd3742d60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cr/src/prompts/claude.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-122570bd19f570a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in next.config.mjs:119"}, "properties": {"repobilityId": "3bd984038f2012c1", "scanner": "scanner-primary", "fingerprint": "122570bd19f570a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b13bf810dde7d293", "level": "none", "message": {"text": "Commented-code block (6 lines) in proxy.ts:10"}, "properties": {"repobilityId": "40b2d7d99f9c1adf", "scanner": "scanner-primary", "fingerprint": "b13bf810dde7d293", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9eaadc9aa1dad2f7", "level": "none", "message": {"text": "Commented-code block (13 lines) in frontend/slices/file-explorer/adapter/live.ts:17"}, "properties": {"repobilityId": "cbf09d843a982b2b", "scanner": "scanner-primary", "fingerprint": "9eaadc9aa1dad2f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-464830ddfac29590", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/file-explorer/adapter/live.ts:69"}, "properties": {"repobilityId": "88f84f63267cfd78", "scanner": "scanner-primary", "fingerprint": "464830ddfac29590", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e00f55290e0e07d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/adapter/types.ts:1"}, "properties": {"repobilityId": "4f1d39ef7fe42668", "scanner": "scanner-primary", "fingerprint": "e00f55290e0e07d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bbaad9a9b3fa41a", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/slices/file-explorer/adapter/convex.ts:17"}, "properties": {"repobilityId": "fd6b1053c10faf24", "scanner": "scanner-primary", "fingerprint": "5bbaad9a9b3fa41a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f945b7ac19fed6e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/file-explorer/lib/backend.ts:6"}, "properties": {"repobilityId": "6935a0be4e815836", "scanner": "scanner-primary", "fingerprint": "f945b7ac19fed6e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-225221fbf015a86e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/lib/read-drop.ts:3"}, "properties": {"repobilityId": "83fdf9ae58d3b669", "scanner": "scanner-primary", "fingerprint": "225221fbf015a86e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d042d01f06852964", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/file-explorer/hooks/use-dnd.ts:7"}, "properties": {"repobilityId": "f0ea9c4fb98fbd59", "scanner": "scanner-primary", "fingerprint": "d042d01f06852964", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44ba1aa69ce9c97e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/user-management/components/MembersPanel.tsx:3"}, "properties": {"repobilityId": "427edc81988aaf03", "scanner": "scanner-primary", "fingerprint": "44ba1aa69ce9c97e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fb760b98630d250", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/user-management/lib/tools.ts:1"}, "properties": {"repobilityId": "388936df6917bf18", "scanner": "scanner-primary", "fingerprint": "1fb760b98630d250", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23b0bed96dda9d15", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/slices/create-your-mcp/index.ts:5"}, "properties": {"repobilityId": "6c493cb154354214", "scanner": "scanner-primary", "fingerprint": "23b0bed96dda9d15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8798ffe136d0fe27", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/create-your-mcp/routes/oauth-token.route.ts:5"}, "properties": {"repobilityId": "81b53f63b0f4b152", "scanner": "scanner-primary", "fingerprint": "8798ffe136d0fe27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7650c9183582dcc4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx:11"}, "properties": {"repobilityId": "d9bdbe2603d8f764", "scanner": "scanner-primary", "fingerprint": "7650c9183582dcc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e3812eddb242a05", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/index.ts:6"}, "properties": {"repobilityId": "4136fe2dba03b30c", "scanner": "scanner-primary", "fingerprint": "2e3812eddb242a05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62e25aeeb2d306d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx:13"}, "properties": {"repobilityId": "4cc8d0d412765dca", "scanner": "scanner-primary", "fingerprint": "62e25aeeb2d306d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8094610f5356e8a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/pty-terminal.tsx:15"}, "properties": {"repobilityId": "45ff6052592045d7", "scanner": "scanner-primary", "fingerprint": "8094610f5356e8a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a77d1359a6a79b5b", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/use-pty.ts:3"}, "properties": {"repobilityId": "d31557af75abd00a", "scanner": "scanner-primary", "fingerprint": "a77d1359a6a79b5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a17df30ba3ba745", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/os-terminal/lib/host.ts:3"}, "properties": {"repobilityId": "c42939c42a2ef80f", "scanner": "scanner-primary", "fingerprint": "2a17df30ba3ba745", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-142fb135e5ad1361", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/fs-model.ts:20"}, "properties": {"repobilityId": "07bcaebfc55fe85d", "scanner": "scanner-primary", "fingerprint": "142fb135e5ad1361", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-423ea61c52834b2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/host-mock.ts:1"}, "properties": {"repobilityId": "daf54c2e82e25658", "scanner": "scanner-primary", "fingerprint": "423ea61c52834b2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cdfde75cfe2a822", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/os-terminal/lib/tools.ts:1"}, "properties": {"repobilityId": "cedd83a47e787ef9", "scanner": "scanner-primary", "fingerprint": "3cdfde75cfe2a822", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-741ebea775683a6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.ts:1"}, "properties": {"repobilityId": "fa3b4ebc31cc10ab", "scanner": "scanner-primary", "fingerprint": "741ebea775683a6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20a3457b442668c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/icon-picker/lib/picker-handlers.ts:38"}, "properties": {"repobilityId": "e4a41a3537fe255e", "scanner": "scanner-primary", "fingerprint": "20a3457b442668c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e75b14e7b0392f72", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/keyboardHandler.ts:101"}, "properties": {"repobilityId": "6ed8bc66cd1d10c9", "scanner": "scanner-primary", "fingerprint": "e75b14e7b0392f72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92378542134a2541", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/notion/slices/editor/block-editor/slashHandler.ts:71"}, "properties": {"repobilityId": "4949634c6b6e45b4", "scanner": "scanner-primary", "fingerprint": "92378542134a2541", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68bd8fefb758c7f0", "level": "note", "message": {"text": "Legacy-named symbol `hasLegacy` in frontend/slices/notion/slices/editor/lib/layoutAdapter.ts:32"}, "properties": {"repobilityId": "1408f4f9a8a99cc4", "scanner": "scanner-primary", "fingerprint": "68bd8fefb758c7f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cb152b3cd64b6f3f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/hooks/useFullPage.ts:3"}, "properties": {"repobilityId": "7b75ff5fca65736e", "scanner": "scanner-primary", "fingerprint": "cb152b3cd64b6f3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2240e681b7e6e6fe", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/slices/notion/slices/editor/blocks/DatabasePicker.tsx:4"}, "properties": {"repobilityId": "a730c6ee39ba0c89", "scanner": "scanner-primary", "fingerprint": "2240e681b7e6e6fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8596d5747992426f", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/slices/notion/slices/editor/page-editor/PageTitle.tsx:4"}, "properties": {"repobilityId": "e36981a30ccfb88d", "scanner": "scanner-primary", "fingerprint": "8596d5747992426f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28e179b680cef037", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderBreadcrumbs.tsx:1"}, "properties": {"repobilityId": "9c5ab74ffdb97d30", "scanner": "scanner-primary", "fingerprint": "28e179b680cef037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dec79f069afda359", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/notion/slices/editor/page-editor/PageNotFound.tsx:1"}, "properties": {"repobilityId": "966cfc2ccb2af970", "scanner": "scanner-primary", "fingerprint": "dec79f069afda359", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab17c27562b66752", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/slices/notion/slices/editor/page-editor/HeaderActions.tsx:4"}, "properties": {"repobilityId": "de1511b08a6241f1", "scanner": "scanner-primary", "fingerprint": "ab17c27562b66752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e35cafd05cb0452", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/notion/shared/types/blocks.ts:3"}, "properties": {"repobilityId": "2deb5ae45374cb73", "scanner": "scanner-primary", "fingerprint": "1e35cafd05cb0452", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09b8e44ffac36509", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/media-viewer/index.ts:8"}, "properties": {"repobilityId": "9ebd0d611e59c7cb", "scanner": "scanner-primary", "fingerprint": "09b8e44ffac36509", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ffd8f0a2f165272", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/media-viewer/components/app-frame.tsx:6"}, "properties": {"repobilityId": "48e952caa3589d48", "scanner": "scanner-primary", "fingerprint": "0ffd8f0a2f165272", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0987d251a6b7e0f7", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/media-viewer/lib/host.ts:3"}, "properties": {"repobilityId": "709cfc42349e6e0b", "scanner": "scanner-primary", "fingerprint": "0987d251a6b7e0f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-866a22c6605d49ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/media-viewer/lib/samples.ts:1"}, "properties": {"repobilityId": "60fbf0bafcf617d1", "scanner": "scanner-primary", "fingerprint": "866a22c6605d49ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e1cd9a1dc8420e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/media-viewer/lib/tools.ts:1"}, "properties": {"repobilityId": "f6a4a7a4faf481b2", "scanner": "scanner-primary", "fingerprint": "2e1cd9a1dc8420e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b29f23b81dacbbcf", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/landing-sections/index.ts:21"}, "properties": {"repobilityId": "588ac7a1d7ac6414", "scanner": "scanner-primary", "fingerprint": "b29f23b81dacbbcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6686c98ad1a0097f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/platform-admin/index.ts:4"}, "properties": {"repobilityId": "b9bdea7d2ec5b616", "scanner": "scanner-primary", "fingerprint": "6686c98ad1a0097f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b878edc30f7e56d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/platform-admin/lib/tools.ts:1"}, "properties": {"repobilityId": "342e3f365d4ab83b", "scanner": "scanner-primary", "fingerprint": "b878edc30f7e56d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b74c0c021da3281", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/doku-payment/slice.contract.ts:15"}, "properties": {"repobilityId": "e3ed65bfe8adc943", "scanner": "scanner-primary", "fingerprint": "7b74c0c021da3281", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a66b82930b9cfe4d", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/notion-shell/index.ts:19"}, "properties": {"repobilityId": "4b777b09fbd62984", "scanner": "scanner-primary", "fingerprint": "a66b82930b9cfe4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24c15eef8095b6f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/notion-database/components/cells/DateCellEditor.tsx:66"}, "properties": {"repobilityId": "201a07820cb9dd34", "scanner": "scanner-primary", "fingerprint": "24c15eef8095b6f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd11fb362081e48e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/quicklinks/index.ts:8"}, "properties": {"repobilityId": "5831e18eb8e2d2bd", "scanner": "scanner-primary", "fingerprint": "dd11fb362081e48e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cca9dfddfe2e11b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/quicklinks/lib/host.ts:3"}, "properties": {"repobilityId": "39324a993e2eda8f", "scanner": "scanner-primary", "fingerprint": "5cca9dfddfe2e11b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4db438eb0b5464f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/ai-agents/runner.ts:3"}, "properties": {"repobilityId": "55b64f5851997f69", "scanner": "scanner-primary", "fingerprint": "4db438eb0b5464f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2e542af95d786ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/shell-settings/index.ts:1"}, "properties": {"repobilityId": "a0213c2ab9406420", "scanner": "scanner-primary", "fingerprint": "f2e542af95d786ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-611287130ffc6b26", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/index.ts:180"}, "properties": {"repobilityId": "a9bbf15e765fe043", "scanner": "scanner-primary", "fingerprint": "611287130ffc6b26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f1aa54308917b0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/agentic.tsx:3"}, "properties": {"repobilityId": "15b51637a6aad872", "scanner": "scanner-primary", "fingerprint": "2f1aa54308917b0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f841127d2ced2a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/defaults.ts:1"}, "properties": {"repobilityId": "bcdf7092281a49ca", "scanner": "scanner-primary", "fingerprint": "7f841127d2ced2a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90fb167068750c7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7"}, "properties": {"repobilityId": "17f0357feb74edef", "scanner": "scanner-primary", "fingerprint": "90fb167068750c7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2036bc2e5548c71a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/provider/app-shell.tsx:37"}, "properties": {"repobilityId": "5723dfda5ff02481", "scanner": "scanner-primary", "fingerprint": "2036bc2e5548c71a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bb4ae8764cbdc9c", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx:5"}, "properties": {"repobilityId": "84c5b688fcc983c7", "scanner": "scanner-primary", "fingerprint": "0bb4ae8764cbdc9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-caebae8c3d5d4ab7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35"}, "properties": {"repobilityId": "589b55065925ad56", "scanner": "scanner-primary", "fingerprint": "caebae8c3d5d4ab7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86975b5b40f71fa5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14"}, "properties": {"repobilityId": "4fad8a3ab1391849", "scanner": "scanner-primary", "fingerprint": "86975b5b40f71fa5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c45a7160e858767", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34"}, "properties": {"repobilityId": "ac48955312b87611", "scanner": "scanner-primary", "fingerprint": "3c45a7160e858767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0e538e40605dfc8", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13"}, "properties": {"repobilityId": "0d46b095f341fba7", "scanner": "scanner-primary", "fingerprint": "e0e538e40605dfc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c189c47ef95bbb4", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx:8"}, "properties": {"repobilityId": "82d32313ec3be5c5", "scanner": "scanner-primary", "fingerprint": "9c189c47ef95bbb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37631dce9566accf", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:14"}, "properties": {"repobilityId": "817b5c125e856d36", "scanner": "scanner-primary", "fingerprint": "37631dce9566accf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eefd6935e81e49f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:34"}, "properties": {"repobilityId": "2b54746e2739ea5c", "scanner": "scanner-primary", "fingerprint": "eefd6935e81e49f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efdb5451e0ee157f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx:5"}, "properties": {"repobilityId": "dd4b26eb08d6f755", "scanner": "scanner-primary", "fingerprint": "efdb5451e0ee157f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f81de6be2b9eec2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6"}, "properties": {"repobilityId": "1d30e872e5a9da95", "scanner": "scanner-primary", "fingerprint": "f81de6be2b9eec2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9acf1a9490da839f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx:57"}, "properties": {"repobilityId": "d2678a0d6b26d8a3", "scanner": "scanner-primary", "fingerprint": "9acf1a9490da839f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d21df7773f7015e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.ts:5"}, "properties": {"repobilityId": "5cf8e377bf5dd6d0", "scanner": "scanner-primary", "fingerprint": "d21df7773f7015e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2091b26ab952c6e5", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/lib/mock-capabilities.ts:12"}, "properties": {"repobilityId": "6301bf4fe6d1d981", "scanner": "scanner-primary", "fingerprint": "2091b26ab952c6e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077601174f8a4a99", "level": "note", "message": {"text": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8"}, "properties": {"repobilityId": "1ac1e90845001489", "scanner": "scanner-primary", "fingerprint": "077601174f8a4a99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-296a28680c8d6891", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.ts:3"}, "properties": {"repobilityId": "fc033cfd7dc73c5b", "scanner": "scanner-primary", "fingerprint": "296a28680c8d6891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65d28a98af57ee99", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts:11"}, "properties": {"repobilityId": "f90430d69fbc7074", "scanner": "scanner-primary", "fingerprint": "65d28a98af57ee99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1508a0a85200894b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/tools.ts:1"}, "properties": {"repobilityId": "537fffc1c9a8ac44", "scanner": "scanner-primary", "fingerprint": "1508a0a85200894b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5df63591bec3183", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.ts:5"}, "properties": {"repobilityId": "478f59b5b03bf602", "scanner": "scanner-primary", "fingerprint": "f5df63591bec3183", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1f1a10c527c20cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts:9"}, "properties": {"repobilityId": "f5244a21ae45793c", "scanner": "scanner-primary", "fingerprint": "e1f1a10c527c20cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6752e49a0df96bc0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts:11"}, "properties": {"repobilityId": "43837bddcfa12a68", "scanner": "scanner-primary", "fingerprint": "6752e49a0df96bc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8eecf08d9180147", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts:6"}, "properties": {"repobilityId": "92ca21bba66cf0fd", "scanner": "scanner-primary", "fingerprint": "e8eecf08d9180147", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5eec0b6bff76133", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19"}, "properties": {"repobilityId": "85cea8b628da19cf", "scanner": "scanner-primary", "fingerprint": "e5eec0b6bff76133", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9168feaae9418684", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14"}, "properties": {"repobilityId": "fd80338cdeeda393", "scanner": "scanner-primary", "fingerprint": "9168feaae9418684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fa850c6274f88c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/index.ts:6"}, "properties": {"repobilityId": "6eed93aa304d4fda", "scanner": "scanner-primary", "fingerprint": "8fa850c6274f88c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-364786f193448112", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:40"}, "properties": {"repobilityId": "628c9fd2eb58e1e1", "scanner": "scanner-primary", "fingerprint": "364786f193448112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a408ed9152428771", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.ts:3"}, "properties": {"repobilityId": "afe8aa611b7d4176", "scanner": "scanner-primary", "fingerprint": "a408ed9152428771", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-945dabed3172fdef", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/agentic-host.ts:3"}, "properties": {"repobilityId": "b24fd253c3e4cd6a", "scanner": "scanner-primary", "fingerprint": "945dabed3172fdef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3b43e719db72770", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/ai-router/components/chat-fab.tsx:5"}, "properties": {"repobilityId": "5f3c933d43c24754", "scanner": "scanner-primary", "fingerprint": "e3b43e719db72770", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-407d6f878a949fb3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/media-studio/app.tsx:21"}, "properties": {"repobilityId": "8b8c1a2e89ea7afb", "scanner": "scanner-primary", "fingerprint": "407d6f878a949fb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8465851b0ba52214", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/media-studio/index.ts:8"}, "properties": {"repobilityId": "6f6f8e3b8c432b07", "scanner": "scanner-primary", "fingerprint": "8465851b0ba52214", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f75cf5fd8d238630", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/media-studio/lib/host.ts:3"}, "properties": {"repobilityId": "160a7421842fca33", "scanner": "scanner-primary", "fingerprint": "f75cf5fd8d238630", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4582f5607b6684d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/system-monitor/index.ts:8"}, "properties": {"repobilityId": "5e0a68edcda2f911", "scanner": "scanner-primary", "fingerprint": "4582f5607b6684d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51f9c3f441ab07fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/system-monitor/lib/host.ts:3"}, "properties": {"repobilityId": "0556ffce21899bae", "scanner": "scanner-primary", "fingerprint": "51f9c3f441ab07fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f154837c06ee73fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/onboarding-wizard/components/theme-preset-field.tsx:3"}, "properties": {"repobilityId": "45a9d9aaca1848a4", "scanner": "scanner-primary", "fingerprint": "f154837c06ee73fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9508161848cbc027", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/index.ts:6"}, "properties": {"repobilityId": "3350a32fa2c76848", "scanner": "scanner-primary", "fingerprint": "9508161848cbc027", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f42d9214acd0b6c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/components/host-frame.tsx:6"}, "properties": {"repobilityId": "be36df54de08f8e4", "scanner": "scanner-primary", "fingerprint": "f42d9214acd0b6c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89eb804fce0e7532", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/host.ts:3"}, "properties": {"repobilityId": "261f68e564ad97a0", "scanner": "scanner-primary", "fingerprint": "89eb804fce0e7532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8970b10173b98e8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.ts:5"}, "properties": {"repobilityId": "915953851b0523c3", "scanner": "scanner-primary", "fingerprint": "8970b10173b98e8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc1b19700e5c62b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts:22"}, "properties": {"repobilityId": "68069e2bf5d7d1bb", "scanner": "scanner-primary", "fingerprint": "cc1b19700e5c62b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-198ec30e16b5240a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/tools.ts:1"}, "properties": {"repobilityId": "da21d792067aa72b", "scanner": "scanner-primary", "fingerprint": "198ec30e16b5240a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60cc2e095150f06e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1"}, "properties": {"repobilityId": "67e718f90310d67a", "scanner": "scanner-primary", "fingerprint": "60cc2e095150f06e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86281adbd5accf05", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/motion-kit/index.ts:1"}, "properties": {"repobilityId": "f27c63656a5ab019", "scanner": "scanner-primary", "fingerprint": "86281adbd5accf05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9f789122e25cf79", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/browser/index.ts:8"}, "properties": {"repobilityId": "33f3d5be8876bde5", "scanner": "scanner-primary", "fingerprint": "a9f789122e25cf79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c56c6b12bd98aadb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/browser/components/mock-pane.tsx:3"}, "properties": {"repobilityId": "35a15c93f53329bb", "scanner": "scanner-primary", "fingerprint": "c56c6b12bd98aadb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40920f91289e8931", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/browser/lib/host.ts:3"}, "properties": {"repobilityId": "87fb35102d1c609b", "scanner": "scanner-primary", "fingerprint": "40920f91289e8931", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-239d128ba76a7ee9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-screencast.ts:3"}, "properties": {"repobilityId": "84f9aa7f04644ab8", "scanner": "scanner-primary", "fingerprint": "239d128ba76a7ee9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0cbb972bbe85816", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:38"}, "properties": {"repobilityId": "14f03506363dbd9a", "scanner": "scanner-primary", "fingerprint": "a0cbb972bbe85816", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fb92ea937a76016f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/demo-browser.ts:3"}, "properties": {"repobilityId": "dade283481f22908", "scanner": "scanner-primary", "fingerprint": "fb92ea937a76016f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac75d95fb1987b4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/browser/lib/use-remote-browser.ts:3"}, "properties": {"repobilityId": "180c2c6a1d0a31f0", "scanner": "scanner-primary", "fingerprint": "ac75d95fb1987b4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b18f932e06a1029", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/server.ts:1"}, "properties": {"repobilityId": "5b7189f60be3d3b2", "scanner": "scanner-primary", "fingerprint": "6b18f932e06a1029", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df541229de111fe3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/image-editor.tsx:119"}, "properties": {"repobilityId": "b308c438bd69def7", "scanner": "scanner-primary", "fingerprint": "df541229de111fe3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-25f1087496aaa2f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/commands/types.ts:7"}, "properties": {"repobilityId": "56c32bce938752e4", "scanner": "scanner-primary", "fingerprint": "25f1087496aaa2f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-028f762ff1b8a455", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27"}, "properties": {"repobilityId": "66d894ee8a4b636d", "scanner": "scanner-primary", "fingerprint": "028f762ff1b8a455", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a173d326dac37c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14"}, "properties": {"repobilityId": "76deb8af5b4479a8", "scanner": "scanner-primary", "fingerprint": "7a173d326dac37c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb262773296d8b8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx:11"}, "properties": {"repobilityId": "1bbf9818fb4665e8", "scanner": "scanner-primary", "fingerprint": "fb262773296d8b8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82094b5734c4eb5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7"}, "properties": {"repobilityId": "74be0e5669d048d0", "scanner": "scanner-primary", "fingerprint": "82094b5734c4eb5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db625dfd68943c6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24"}, "properties": {"repobilityId": "b4952a4eaa58d44b", "scanner": "scanner-primary", "fingerprint": "db625dfd68943c6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8428f8e8cc353c73", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/host.ts:1"}, "properties": {"repobilityId": "be0a886414270495", "scanner": "scanner-primary", "fingerprint": "8428f8e8cc353c73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11634bdc199e46e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.ts:1"}, "properties": {"repobilityId": "079c2dbbeef70f2b", "scanner": "scanner-primary", "fingerprint": "11634bdc199e46e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df39f674414467d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.ts:1"}, "properties": {"repobilityId": "49aaa835320a2ed7", "scanner": "scanner-primary", "fingerprint": "df39f674414467d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-494d390699e7ca08", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69"}, "properties": {"repobilityId": "0c66babaff7e6348", "scanner": "scanner-primary", "fingerprint": "494d390699e7ca08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b79c2253cec4f701", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13"}, "properties": {"repobilityId": "560afb5018d7f1da", "scanner": "scanner-primary", "fingerprint": "b79c2253cec4f701", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2630eb5739eb73f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.ts:1"}, "properties": {"repobilityId": "46e4908183e1a031", "scanner": "scanner-primary", "fingerprint": "2630eb5739eb73f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9623840709579c42", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts:11"}, "properties": {"repobilityId": "9bc3bf687a19a883", "scanner": "scanner-primary", "fingerprint": "9623840709579c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b84bed01e71ee2e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:17"}, "properties": {"repobilityId": "01b6c767a0826462", "scanner": "scanner-primary", "fingerprint": "b84bed01e71ee2e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1e9f923f6d56745", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/reel-editor/lib/host.ts:3"}, "properties": {"repobilityId": "fb7cec6161fa81bc", "scanner": "scanner-primary", "fingerprint": "e1e9f923f6d56745", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcf27f39687bd28b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.ts:1"}, "properties": {"repobilityId": "602e8612d26f56ee", "scanner": "scanner-primary", "fingerprint": "bcf27f39687bd28b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceb6f0a23ca598fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.ts:1"}, "properties": {"repobilityId": "cb8c597585bb302d", "scanner": "scanner-primary", "fingerprint": "ceb6f0a23ca598fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cc9bdb8bace05ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.ts:1"}, "properties": {"repobilityId": "5f664b261bcdefec", "scanner": "scanner-primary", "fingerprint": "9cc9bdb8bace05ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-450aa2e85bfd17cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.ts:1"}, "properties": {"repobilityId": "9ca6b5dec69a9cc2", "scanner": "scanner-primary", "fingerprint": "450aa2e85bfd17cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b469c9dec485c9a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31"}, "properties": {"repobilityId": "dc2ce3b02feb7e17", "scanner": "scanner-primary", "fingerprint": "b469c9dec485c9a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5590a9ae8649103a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/index.ts:6"}, "properties": {"repobilityId": "6af0e7a309789695", "scanner": "scanner-primary", "fingerprint": "5590a9ae8649103a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ab164d5f98fd3ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/components/file-tree/dir.tsx:38"}, "properties": {"repobilityId": "35f167a950512da3", "scanner": "scanner-primary", "fingerprint": "3ab164d5f98fd3ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4dbf3b431e717ed", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/code-editor/lib/host.ts:3"}, "properties": {"repobilityId": "a1ecd836694f78c6", "scanner": "scanner-primary", "fingerprint": "b4dbf3b431e717ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01ce676f89c840b1", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/highlight.ts:1"}, "properties": {"repobilityId": "d5edf74454d61025", "scanner": "scanner-primary", "fingerprint": "01ce676f89c840b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bf6a4a781b0ea9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/capture-shots.mjs:38"}, "properties": {"repobilityId": "a6d9b359403460c9", "scanner": "scanner-primary", "fingerprint": "0bf6a4a781b0ea9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6f23c5298ea644c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/deploy-convex-functions.mjs:45"}, "properties": {"repobilityId": "b7df2dfd1fdd8b4c", "scanner": "scanner-primary", "fingerprint": "f6f23c5298ea644c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4815ecd8d8567e40", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/apply-midtrans-collision-fix.mjs:10"}, "properties": {"repobilityId": "1cb513bd80108866", "scanner": "scanner-primary", "fingerprint": "4815ecd8d8567e40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca24a4b54d3d6370", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/dokploy-redeploy.mjs:46"}, "properties": {"repobilityId": "750f4cf7e59f0331", "scanner": "scanner-primary", "fingerprint": "ca24a4b54d3d6370", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ef147dcd3c416c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/validation/audit-templates.mjs:4"}, "properties": {"repobilityId": "bc9c7304f7868ad8", "scanner": "scanner-primary", "fingerprint": "3ef147dcd3c416c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41590fa611553148", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/validation/audit-templates-helpers.mjs:14"}, "properties": {"repobilityId": "560f95358a0b18a6", "scanner": "scanner-primary", "fingerprint": "41590fa611553148", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef5c159cf79a632b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validation/audit-docs-primitives.mjs:9"}, "properties": {"repobilityId": "71a178cad78d8a62", "scanner": "scanner-primary", "fingerprint": "ef5c159cf79a632b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59fc829dd2309716", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/validation/validate-changelog.mjs:2"}, "properties": {"repobilityId": "11049abd22ab481a", "scanner": "scanner-primary", "fingerprint": "59fc829dd2309716", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d990d12fb4ac65b", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/validation/audit-slice-helpers.mjs:141"}, "properties": {"repobilityId": "216d49618d49de14", "scanner": "scanner-primary", "fingerprint": "6d990d12fb4ac65b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43e2bf91c1033071", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validation/audit-file-size.mjs:4"}, "properties": {"repobilityId": "366d02c3dc07b5c9", "scanner": "scanner-primary", "fingerprint": "43e2bf91c1033071", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c671c3047fa828dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validation/report-slices-drift.mjs:6"}, "properties": {"repobilityId": "57ff61cb4b56dc26", "scanner": "scanner-primary", "fingerprint": "c671c3047fa828dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70f8cfd32ecc6722", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/validation/report-ui-drift.mjs:2"}, "properties": {"repobilityId": "3b5ab3172a0a2166", "scanner": "scanner-primary", "fingerprint": "70f8cfd32ecc6722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab0a84b8ed2d30bd", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/validation/audit-convex-features.mjs:4"}, "properties": {"repobilityId": "21ff2906da80dfdb", "scanner": "scanner-primary", "fingerprint": "ab0a84b8ed2d30bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c44fde39574cd583", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validation/audit-slice.mjs:4"}, "properties": {"repobilityId": "5e016673e5d773cc", "scanner": "scanner-primary", "fingerprint": "c44fde39574cd583", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9902e0abbf3634a0", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/features/scaffold-slice.mjs:7"}, "properties": {"repobilityId": "5471b8ad7bcc08f7", "scanner": "scanner-primary", "fingerprint": "9902e0abbf3634a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c6f5c98bc8a7306", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/features/scaffold-template.mjs:12"}, "properties": {"repobilityId": "d64c8122079de281", "scanner": "scanner-primary", "fingerprint": "0c6f5c98bc8a7306", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f4efc4e7f71bd19", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/types/StudioUISchema.ts:58"}, "properties": {"repobilityId": "4324ffeedd97df7a", "scanner": "scanner-primary", "fingerprint": "8f4efc4e7f71bd19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5161dfa469341bb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/slices/studio/ui/widgets/registry.ts:114"}, "properties": {"repobilityId": "cc51aa2db179b868", "scanner": "scanner-primary", "fingerprint": "5161dfa469341bb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eeb369f0334c2405", "level": "none", "message": {"text": "Commented-code block (9 lines) in template-base/frontend/slices/studio/registry/studioLibraryTabs.ts:32"}, "properties": {"repobilityId": "316f98c08fef9446", "scanner": "scanner-primary", "fingerprint": "eeb369f0334c2405", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e84cb7d4657f193", "level": "none", "message": {"text": "Commented-code block (6 lines) in template-base/frontend/slices/studio/lib/__tests__/validateLayoutRichness.test.ts:144"}, "properties": {"repobilityId": "81c4d1d72adb51bf", "scanner": "scanner-primary", "fingerprint": "7e84cb7d4657f193", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6831491142dd6d45", "level": "note", "message": {"text": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/index.ts:27"}, "properties": {"repobilityId": "42b443a397bf057d", "scanner": "scanner-primary", "fingerprint": "6831491142dd6d45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7d542ccd43afa4dd", "level": "note", "message": {"text": "Legacy-named symbol `studioFlowToLegacy` in template-base/frontend/slices/studio/workflow/schema/n8n-converter.ts:285"}, "properties": {"repobilityId": "2809d5faabd5928b", "scanner": "scanner-primary", "fingerprint": "7d542ccd43afa4dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c608a5629245b513", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/settings/user-settings/api/index.ts:27"}, "properties": {"repobilityId": "40c1a6a3ea8b5313", "scanner": "scanner-primary", "fingerprint": "c608a5629245b513", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12dce8024688391c", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/bindings/ai/frontend-agent-registry.generated.ts:1"}, "properties": {"repobilityId": "81b2d96114906e6d", "scanner": "scanner-primary", "fingerprint": "12dce8024688391c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5761826dec5894dd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/utils/api-key-validation.ts:185"}, "properties": {"repobilityId": "ed4e70e12c9ad587", "scanner": "scanner-primary", "fingerprint": "5761826dec5894dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1c6639c90ef5767d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/lib/index.ts:23"}, "properties": {"repobilityId": "612d7ae91e831830", "scanner": "scanner-primary", "fingerprint": "1c6639c90ef5767d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-754695e094382773", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/index.ts:325"}, "properties": {"repobilityId": "5604df437d45746e", "scanner": "scanner-primary", "fingerprint": "754695e094382773", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b10ebd15250d169", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/ai/hooks/useSubAgentRouter.ts:386"}, "properties": {"repobilityId": "631f21be89e29764", "scanner": "scanner-primary", "fingerprint": "0b10ebd15250d169", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-62ac9d287eb82176", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/communications/chat/lib/upload.ts:62"}, "properties": {"repobilityId": "9b2de7b917735a5e", "scanner": "scanner-primary", "fingerprint": "62ac9d287eb82176", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9205caeb4057d792", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/feature-shell/FeatureShell.tsx:137"}, "properties": {"repobilityId": "98167ef0bf6c47a6", "scanner": "scanner-primary", "fingerprint": "9205caeb4057d792", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-602106ff7aae9c4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/ui/layout/container/index.ts:18"}, "properties": {"repobilityId": "d4d5a0e942a753b2", "scanner": "scanner-primary", "fingerprint": "602106ff7aae9c4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3066bec57df61c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/ui/layout/container/two-column/TwoColumnLayout.tsx:88"}, "properties": {"repobilityId": "8535b80568f7ec7b", "scanner": "scanner-primary", "fingerprint": "d3066bec57df61c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dc4998c48aafbfd", "level": "none", "message": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/ui/components/event-calendar/SharedCalendar.tsx:80"}, "properties": {"repobilityId": "ede7b628ccb19daa", "scanner": "scanner-primary", "fingerprint": "2dc4998c48aafbfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-697dcb381240e71e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/theme/theme-presets.ts:84"}, "properties": {"repobilityId": "362dff856cd6ae10", "scanner": "scanner-primary", "fingerprint": "697dcb381240e71e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b42f3f78eb503cec", "level": "none", "message": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/index.ts:13"}, "properties": {"repobilityId": "b0c658d20be5502b", "scanner": "scanner-primary", "fingerprint": "b42f3f78eb503cec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93169ccddf0bae2e", "level": "none", "message": {"text": "Commented-code block (6 lines) in template-base/frontend/shared/foundation/utils/registry/index.ts:24"}, "properties": {"repobilityId": "d3c7bcc382f46f95", "scanner": "scanner-primary", "fingerprint": "93169ccddf0bae2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a14f9a20d4acbbca", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/foundation/utils/starred/StarredView.tsx:33"}, "properties": {"repobilityId": "4cc1d1be1b67889e", "scanner": "scanner-primary", "fingerprint": "a14f9a20d4acbbca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd539eff5dedfb44", "level": "none", "message": {"text": "Commented-code block (7 lines) in template-base/frontend/shared/foundation/hooks/assets/useUploadAsset.ts:35"}, "properties": {"repobilityId": "a0caefe2616bcf00", "scanner": "scanner-primary", "fingerprint": "fd539eff5dedfb44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49edbff6d3a65796", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 template-base/frontend/shared/lib/theme-presets.ts:84"}, "properties": {"repobilityId": "82cb5673c79d761e", "scanner": "scanner-primary", "fingerprint": "49edbff6d3a65796", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f430da6a030d5fd0", "level": "note", "message": {"text": "Legacy-named symbol `withoutOld` in template-base/frontend/shared/builder/canvas/core/SharedCanvasProvider.tsx:495"}, "properties": {"repobilityId": "b775804ec1335318", "scanner": "scanner-primary", "fingerprint": "f430da6a030d5fd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f19f4494bec62d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/frontend/shared/builder/inspector/DynamicInspector.tsx:78"}, "properties": {"repobilityId": "0501ab5888a868d0", "scanner": "scanner-primary", "fingerprint": "3f19f4494bec62d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3808ec3a0c4fdeb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/convex/schema.ts:12"}, "properties": {"repobilityId": "f324a65456480726", "scanner": "scanner-primary", "fingerprint": "3808ec3a0c4fdeb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfa505ffb56d17f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in template-base/convex/features/notion/schema.ts:130"}, "properties": {"repobilityId": "f8ee903654d2c37c", "scanner": "scanner-primary", "fingerprint": "cfa505ffb56d17f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec5baf4aaa1bd64", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/templates/kreator-studio/shared/nav-config.ts:73"}, "properties": {"repobilityId": "a9e46910960a4367", "scanner": "scanner-primary", "fingerprint": "7ec5baf4aaa1bd64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30bb89f7db79ddc6", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/templates/_shared/stage.ts:3"}, "properties": {"repobilityId": "fd6c70314a7a872d", "scanner": "scanner-primary", "fingerprint": "30bb89f7db79ddc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d0ad1a5d7606b8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/templates/_shared/config/template-paths.ts:3"}, "properties": {"repobilityId": "053f6dd4d8074e33", "scanner": "scanner-primary", "fingerprint": "7d0ad1a5d7606b8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d561c5ea10b9a86", "level": "none", "message": {"text": "Commented-code block (10 lines) in components/templates/_shared/admin-panel/ui/tones.ts:5"}, "properties": {"repobilityId": "f7ebd20ea5a8c59a", "scanner": "scanner-primary", "fingerprint": "8d561c5ea10b9a86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d27429d6f232de76", "level": "note", "message": {"text": "Legacy-named symbol `wh_old` in components/templates/_shared/admin-panel/blocks/audit-log/seed.ts:133"}, "properties": {"repobilityId": "c304b268b5a121bf", "scanner": "scanner-primary", "fingerprint": "d27429d6f232de76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ace3de6399fe86c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/templates/_shared/admin-panel/blocks/audit-log/types.ts:1"}, "properties": {"repobilityId": "72eee25c1127d072", "scanner": "scanner-primary", "fingerprint": "ace3de6399fe86c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-558b710b19c47d68", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/site/catalog/poster-thumbnail.tsx:3"}, "properties": {"repobilityId": "00cdf102df336afc", "scanner": "scanner-primary", "fingerprint": "558b710b19c47d68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a859c092c021a86", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-parts.test.tsx:1"}, "properties": {"repobilityId": "10a45520160bdc4b", "scanner": "scanner-primary", "fingerprint": "6a859c092c021a86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9aa1621e2f2081d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/site/docs-sidebar/nav-types.ts:3"}, "properties": {"repobilityId": "a54a80b6859a2755", "scanner": "scanner-primary", "fingerprint": "9aa1621e2f2081d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55d9dcf210cba09e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/admin-shell.tsx:88"}, "properties": {"repobilityId": "2d1ad3a992c299ca", "scanner": "scanner-primary", "fingerprint": "55d9dcf210cba09e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dea8357f510d25f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/library/mutation.ts:3"}, "properties": {"repobilityId": "8363fefe110ca80c", "scanner": "scanner-primary", "fingerprint": "dea8357f510d25f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82db615ebd6877a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/library/_schema.ts:5"}, "properties": {"repobilityId": "0254547c2164ff87", "scanner": "scanner-primary", "fingerprint": "82db615ebd6877a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13005487befede65", "level": "none", "message": {"text": "Commented-code block (10 lines) in convex/features/activity/mutation.ts:10"}, "properties": {"repobilityId": "07fff94436796029", "scanner": "scanner-primary", "fingerprint": "13005487befede65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4daf102d37f16abc", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/activity/_schema.ts:5"}, "properties": {"repobilityId": "5530dd593c0de9da", "scanner": "scanner-primary", "fingerprint": "4daf102d37f16abc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69ec841d3212d394", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/rate_limit/mutation.ts:5"}, "properties": {"repobilityId": "8ef07a14a166c1e1", "scanner": "scanner-primary", "fingerprint": "69ec841d3212d394", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dc3d906cd0c0e2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/aiChat/_schema.ts:1"}, "properties": {"repobilityId": "c80d4619d97f92af", "scanner": "scanner-primary", "fingerprint": "5dc3d906cd0c0e2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47c8d9f8e975d1e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/create_your_mcp/mutation.ts:56"}, "properties": {"repobilityId": "e6576c0667500e46", "scanner": "scanner-primary", "fingerprint": "47c8d9f8e975d1e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c33d03fe2edde703", "level": "none", "message": {"text": "Commented-code block (7 lines) in convex/features/telemetry/_schema.ts:8"}, "properties": {"repobilityId": "422dbd8fc7dff9fa", "scanner": "scanner-primary", "fingerprint": "c33d03fe2edde703", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e63d8fdd154fc7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex/features/payment/mutation.ts:142"}, "properties": {"repobilityId": "8147039da5879765", "scanner": "scanner-primary", "fingerprint": "0e63d8fdd154fc7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a9f94214dd808f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in convex/features/payment/http.ts:5"}, "properties": {"repobilityId": "9c78753288a77ef2", "scanner": "scanner-primary", "fingerprint": "1a9f94214dd808f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d354cdf55728116", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 convex/features/payment/doku/client.ts:92"}, "properties": {"repobilityId": "d04269bb8cd222b4", "scanner": "scanner-primary", "fingerprint": "6d354cdf55728116", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac23d9b39d32b15f", "level": "none", "message": {"text": "Commented-code block (6 lines) in convex/features/seo/_seo_prompt.ts:3"}, "properties": {"repobilityId": "8c82c00247a36ebc", "scanner": "scanner-primary", "fingerprint": "ac23d9b39d32b15f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6df6cce85bab86ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/preview/slices/file-explorer/page.tsx:5"}, "properties": {"repobilityId": "773ebb7a1a25058a", "scanner": "scanner-primary", "fingerprint": "6df6cce85bab86ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaf99d2db65099a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/preview/slices/media-viewer/page.tsx:5"}, "properties": {"repobilityId": "dbcb6785f8b5186c", "scanner": "scanner-primary", "fingerprint": "aaf99d2db65099a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e396421c52be72ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/preview/slices/ai-chat/mock-data.tsx:20"}, "properties": {"repobilityId": "dac8fb1097544bed", "scanner": "scanner-primary", "fingerprint": "e396421c52be72ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-89a5270e1e2c3914", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/preview/slices/media-studio/page.tsx:5"}, "properties": {"repobilityId": "0a8088127acbad6e", "scanner": "scanner-primary", "fingerprint": "89a5270e1e2c3914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98ad612c2fbb6f97", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/preview/slices/image-editor/page.tsx:5"}, "properties": {"repobilityId": "01f43032f032192c", "scanner": "scanner-primary", "fingerprint": "98ad612c2fbb6f97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b0d72f2c97c76db", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/preview/slices/reel-editor/page.tsx:5"}, "properties": {"repobilityId": "ce6834057be6fc25", "scanner": "scanner-primary", "fingerprint": "2b0d72f2c97c76db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f45736999ebacba8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/preview/slices/code-editor/page.tsx:5"}, "properties": {"repobilityId": "0802c23dfef82f1e", "scanner": "scanner-primary", "fingerprint": "f45736999ebacba8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2998ed1c0efba006", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/preview/dashboard-ide/mock-data.ts:9"}, "properties": {"repobilityId": "afa54ae1124d6356", "scanner": "scanner-primary", "fingerprint": "2998ed1c0efba006", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60e3237b5520959a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/preview/dashboard-ide/explorer.tsx:9"}, "properties": {"repobilityId": "bcb6d4d40fec46ca", "scanner": "scanner-primary", "fingerprint": "60e3237b5520959a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53298f9dacaa3f4c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/(docs)/slices/[slug]/details-tab.tsx:3"}, "properties": {"repobilityId": "92689db468434985", "scanner": "scanner-primary", "fingerprint": "53298f9dacaa3f4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-711b325859b77460", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/preview-presets.ts:3"}, "properties": {"repobilityId": "8e7128dd453c4d3b", "scanner": "scanner-primary", "fingerprint": "711b325859b77460", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2273b7eb85a7208", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/shared/agentic/sse-client.ts:28"}, "properties": {"repobilityId": "41808e4423b2bd50", "scanner": "scanner-primary", "fingerprint": "e2273b7eb85a7208", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bfd8ee5871b1cc78", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/theme/theme-presets.ts:4"}, "properties": {"repobilityId": "6dddd9fee8a9fd95", "scanner": "scanner-primary", "fingerprint": "bfd8ee5871b1cc78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0ca02c22786d515", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/content/template-subdomains.ts:8"}, "properties": {"repobilityId": "7523cac268bcfd03", "scanner": "scanner-primary", "fingerprint": "b0ca02c22786d515", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6910aa01e3c9a07", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/content/slices.ts:737"}, "properties": {"repobilityId": "b1f53635c50fbfdb", "scanner": "scanner-primary", "fingerprint": "c6910aa01e3c9a07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68a6e542b0f86a53", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/content/slices.ts:1212"}, "properties": {"repobilityId": "8b54436cdd01d5f6", "scanner": "scanner-primary", "fingerprint": "68a6e542b0f86a53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4adb5f10b8e387a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/content/resources.ts:4"}, "properties": {"repobilityId": "1210b3c7d3517ab1", "scanner": "scanner-primary", "fingerprint": "a4adb5f10b8e387a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fe5892dffa087e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/content/best-practices.ts:3"}, "properties": {"repobilityId": "79ab08b0271ae50b", "scanner": "scanner-primary", "fingerprint": "1fe5892dffa087e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c13224f3a7f935c2", "level": "note", "message": {"text": "Legacy-named symbol `u_old` in lib/content/changelog/part-04.ts:263"}, "properties": {"repobilityId": "4e2d429ac1b68029", "scanner": "scanner-primary", "fingerprint": "c13224f3a7f935c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bd002fa45b93abac", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/update.ts:6"}, "properties": {"repobilityId": "4b24d1a2f527a3e9", "scanner": "scanner-primary", "fingerprint": "bd002fa45b93abac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96012578cb1dd8d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/authReset.ts:6"}, "properties": {"repobilityId": "e02e313d242e8c89", "scanner": "scanner-primary", "fingerprint": "96012578cb1dd8d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-585d30289d02709b", "level": "none", "message": {"text": "Commented-code block (5 lines) in convex-templates/personal-brand-os/seedPoster.ts:3"}, "properties": {"repobilityId": "816949119e5a70b0", "scanner": "scanner-primary", "fingerprint": "585d30289d02709b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-011a7c0d8a7fe415", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/mcp/scripts/check-peer.mjs:2"}, "properties": {"repobilityId": "764f8925c50d41eb", "scanner": "scanner-primary", "fingerprint": "011a7c0d8a7fe415", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20c26d731e16b34c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mcp/src/data-loader.mjs:13"}, "properties": {"repobilityId": "97c642656be09958", "scanner": "scanner-primary", "fingerprint": "20c26d731e16b34c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71a884655ddac556", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/mcp/src/oauth.mjs:3"}, "properties": {"repobilityId": "652ccfd83c6aa27d", "scanner": "scanner-primary", "fingerprint": "71a884655ddac556", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5007b51a2a5dc1a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/formulaEngine/ParserClass.ts:37"}, "properties": {"repobilityId": "6a6aa020760e93a3", "scanner": "scanner-primary", "fingerprint": "5007b51a2a5dc1a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1952340a7082414e", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/cli/scripts/validate-structure.mjs:7"}, "properties": {"repobilityId": "1f4d0f1d85bd2ea1", "scanner": "scanner-primary", "fingerprint": "1952340a7082414e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9a47754b894db3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/cli/scripts/gen-preview-registry.mjs:23"}, "properties": {"repobilityId": "8ace123b140a7219", "scanner": "scanner-primary", "fingerprint": "b9a47754b894db3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-566e0ec181771834", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/scripts/parse-content.mjs:94"}, "properties": {"repobilityId": "66f11537ce85f29e", "scanner": "scanner-primary", "fingerprint": "566e0ec181771834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0da4d253e3b2b72b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/scripts/gen-manifest.mjs:145"}, "properties": {"repobilityId": "c84988351211027f", "scanner": "scanner-primary", "fingerprint": "0da4d253e3b2b72b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0069efae41abb070", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/scripts/validate-slice.mjs:7"}, "properties": {"repobilityId": "5db9883378af0973", "scanner": "scanner-primary", "fingerprint": "0069efae41abb070", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-952c769df9df2cd0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/migration-plan.mjs:3"}, "properties": {"repobilityId": "d687816fb53c9de6", "scanner": "scanner-primary", "fingerprint": "952c769df9df2cd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ae2b9887a1f6008", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/cli/lib/contract-types.ts:101"}, "properties": {"repobilityId": "22c045534c084353", "scanner": "scanner-primary", "fingerprint": "4ae2b9887a1f6008", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a1b04396c9198e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/dna.mjs:7"}, "properties": {"repobilityId": "350271fd62a869f2", "scanner": "scanner-primary", "fingerprint": "0a1b04396c9198e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0339b429416c3c74", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/compose-solver.mjs:6"}, "properties": {"repobilityId": "536b1e525ebec005", "scanner": "scanner-primary", "fingerprint": "0339b429416c3c74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2900bf6faf23fe5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/merge3.mjs:3"}, "properties": {"repobilityId": "4757057d8fb71acd", "scanner": "scanner-primary", "fingerprint": "2900bf6faf23fe5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ffe265b2d16022b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/starter/scripts/setup-auth.mjs:1"}, "properties": {"repobilityId": "6ddf3564b0bcd2ea", "scanner": "scanner-primary", "fingerprint": "5ffe265b2d16022b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55eee644d6684dd7", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/cli/lib/starter/convex/schema.ts:27"}, "properties": {"repobilityId": "04169a2493044107", "scanner": "scanner-primary", "fingerprint": "55eee644d6684dd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f6cf5f835d2afb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cli/lib/starter/convex/update.ts:4"}, "properties": {"repobilityId": "668f2c1ed10e2341", "scanner": "scanner-primary", "fingerprint": "9f6cf5f835d2afb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37902bc3f99d1d08", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cr/src/lib/prompt-builder.mjs:1"}, "properties": {"repobilityId": "8423b3bbde00612e", "scanner": "scanner-primary", "fingerprint": "37902bc3f99d1d08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d4fd1c073e365ad", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugins/rresource/skills/rate-limit/src/convex/_shared/rateLimit.ts:13"}, "properties": {"repobilityId": "9ea45437f43736e5", "scanner": "scanner-primary", "fingerprint": "4d4fd1c073e365ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5c9df5191d269d4", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/rresource/skills/audit-log/src/convex/audit.ts:9"}, "properties": {"repobilityId": "d9f9bd912c8be2f6", "scanner": "scanner-primary", "fingerprint": "e5c9df5191d269d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e41c9b1903bfadd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugins/rresource/skills/markdown-editor/src/convex/markdownDoc.ts:9"}, "properties": {"repobilityId": "89f74c14c62273e7", "scanner": "scanner-primary", "fingerprint": "e41c9b1903bfadd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7158d37b86fe232", "level": "none", "message": {"text": "Commented-code block (7 lines) in plugins/rresource/skills/kanban-board/src/convex/kanban.ts:9"}, "properties": {"repobilityId": "25ff7d0f3fcb3dcf", "scanner": "scanner-primary", "fingerprint": "e7158d37b86fe232", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa27c56869a30047", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugins/rresource/skills/feedback-widget/src/convex/feedback.ts:9"}, "properties": {"repobilityId": "b9eebb3b242d3e53", "scanner": "scanner-primary", "fingerprint": "aa27c56869a30047", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca523559db56313e", "level": "none", "message": {"text": "Commented-code block (8 lines) in plugins/rresource/skills/public-profile/src/convex/profile.ts:9"}, "properties": {"repobilityId": "120ccb3c35c59ca8", "scanner": "scanner-primary", "fingerprint": "ca523559db56313e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c9d02364e09e13c", "level": "note", "message": {"text": "55 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "fc70195b3e64b9a7", "scanner": "scanner-primary", "fingerprint": "0c9d02364e09e13c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}