{"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: richducat/eb28.co", "shortDescription": {"text": "Foundry mined unresolved feedback: richducat/eb28.co"}, "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: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blue"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_review_followup_gap", "name": "Foundry mined review feedback without structured fix: richducat/eb28.co", "shortDescription": {"text": "Foundry mined review feedback without structured fix: richducat/eb28.co"}, "fullDescription": {"text": "Graph query export: Review feedback without structured fix chain\nQuery id: review_feedback_without_structured_fix\nQuery type: motif_query\nIntent: Weak-supervision examples for review comments lacking a traceable fix.\nMotif: review_feedback_without_structured_fix\nTraining usage: weak_supervision\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: PR review feedback lacks a clearly structured fix chain\nMotif id: review_feedback_without_structured_fix\nPolarity: mixed\nTraining usage: weak_supervision\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.72, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: richducat/eb28.co", "shortDescription": {"text": "Foundry mined blueprint gap alignment: richducat/eb28.co"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, '"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: richducat/eb28.co", "shortDescription": {"text": "Foundry mined test ci gap after feedback: richducat/eb28.co"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, '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"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: richducat/eb28.co", "shortDescription": {"text": "Foundry mined docs only runtime fix: richducat/eb28.co"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge ty"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: richducat/eb28.co", "shortDescription": {"text": "Foundry mined bad chains: richducat/eb28.co"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: richducat/eb28.co#4\nRepo: richducat/eb28.co\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 5\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 40\nLabels: {'mock_placeholder': 1, 'api_integration_gap': 3, 'human_feedback_general': 1}\nPolarities: {'bad': 4, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 12, 'api_or_backend': 1, 'ui_or_frontend': 3, 'source_or_other': 21, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: richducat/eb28.co", "shortDescription": {"text": "Foundry mined mock as real or placeholder: richducat/eb28.co"}, "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: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain':"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-d1bf0e1f1e42a37f", "name": "Possibly dead Python function: maybe_trip_circuit_breaker", "shortDescription": {"text": "Possibly dead Python function: maybe_trip_circuit_breaker"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5d6a079d5ff415", "name": "Possibly dead Python function: draw_create_scene", "shortDescription": {"text": "Possibly dead Python function: draw_create_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d984108d32cabb3", "name": "Possibly dead Python function: draw_editor_scene", "shortDescription": {"text": "Possibly dead Python function: draw_editor_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a8e8b363ff0c61f", "name": "Possibly dead Python function: draw_library_scene", "shortDescription": {"text": "Possibly dead Python function: draw_library_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0880eb4b1516ef3", "name": "Possibly dead Python function: draw_signup_scene", "shortDescription": {"text": "Possibly dead Python function: draw_signup_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ac43f0159f3f364", "name": "Possibly dead Python function: draw_pro_scene", "shortDescription": {"text": "Possibly dead Python function: draw_pro_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c11bcf288c0e3a91", "name": "Possibly dead Python function: draw_install_scene", "shortDescription": {"text": "Possibly dead Python function: draw_install_scene"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2af2338c04efcaf4", "name": "Possibly dead Python function: first_money_number", "shortDescription": {"text": "Possibly dead Python function: first_money_number"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12ecfc1914f395d8", "name": "Possibly dead Python function: letter_spaced", "shortDescription": {"text": "Possibly dead Python function: letter_spaced"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cf1dad25340617e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DgqG957U.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DgqG957U.js:49"}, "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-39c891702ad4945b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "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-f9d238eecd77f915", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S.js:49"}, "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-046caadef86160b5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "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-69dab081d5ce26ec", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "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-b76fdc4119bfa810", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-F_YBNTdL.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-F_YBNTdL.js:49"}, "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-ffcb7ac18e6f9d0b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DoaIS2Jb.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DoaIS2Jb.js:49"}, "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-60b86d6d8197f48d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "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-b0d4b5067edd9a2b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj.js:49"}, "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-34a0355a11b06a2b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "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-2701641cd92bb6f7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg.js:49"}, "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-fbf534715b66c07c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9.js:49"}, "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-6e49c45bbbe2ed86", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/index-DdU8sS1H.js:34", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/index-DdU8sS1H.js:34"}, "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-db18b8a51e8996ac", "name": "Stray `console.log` in TS/JS \u2014 docs/assets/App-BmYjzprM.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/assets/App-BmYjzprM.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61d80a835b6a971e", "name": "Stray `console.log` in TS/JS \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12"}, "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-ca33ac39c9ebf0e1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195"}, "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-25ac9bdaf1bd70f2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/servo/assets/index-IgVPJHNL.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/servo/assets/index-IgVPJHNL.js:49"}, "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-165fb9c1067e951e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DgqG957U.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DgqG957U.js:49"}, "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-d908df4e89c7c25e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "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-57ed25d75ec387dd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S.js:49"}, "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-131292476ec425a2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "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-ea55905acf847213", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "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-fb7961b42d852667", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-F_YBNTdL.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-F_YBNTdL.js:49"}, "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-52171d15887e3d4e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DoaIS2Jb.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DoaIS2Jb.js:49"}, "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-d1f6b8bf6b213887", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "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-38c0d25b6efaf8b2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj.js:49"}, "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-255e30f2ea7d7919", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "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-356b601ce7f3d84d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg.js:49"}, "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-eedee03bb154f887", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9.js:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9.js:49"}, "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-3ff6e258baa2f2eb", "name": "`truncate` class without `title=` for hover reveal \u2014 src/AppBuilderStudio.jsx:1639", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/AppBuilderStudio.jsx:1639"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03a561d041c18d54", "name": "\"active\" state uses light bg in a dark theme \u2014 src/LimitlessCreditGPS.jsx:210", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/LimitlessCreditGPS.jsx:210"}, "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-a865d3ff4835917a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/MelbourneWebStudioPage.tsx:1700", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/MelbourneWebStudioPage.tsx:1700"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf63061a44bf02f4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/MelbourneWebStudioPage.tsx:3104", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/MelbourneWebStudioPage.tsx:3104"}, "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-3174165655d1bda2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/AlarmClock.jsx:2086", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/AlarmClock.jsx:2086"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d825dcf41f30df63", "name": "Stray `console.log` in TS/JS \u2014 src/AlarmClock.jsx:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/AlarmClock.jsx:17"}, "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-554e2b83428d5cc9", "name": "Insecure pattern 'cors_wildcard' in api/fundmanager-data.js:637", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/fundmanager-data.js:637"}, "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-b5cce110f4c681a2", "name": "Insecure pattern 'node_child_process' in api/_lib/openclaw-data.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in api/_lib/openclaw-data.js: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-fb2258de7420df24", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DgqG957U.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DgqG957U.js:49"}, "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-ef77434e19fbc2fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DgqG957U.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DgqG957U.js:48"}, "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-e46ea86d8dd1fc58", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "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-58dc9675641207d2", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "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-e7811ffc06f0cd5a", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S.js:49"}, "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-2b8f2e95ed218e6c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S.js:48"}, "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-338c8e75a6da67d2", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "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-79bbd0df01d26e42", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "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-7cce94eeeeab15c7", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "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-eb2e3735a6d75a54", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "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-c9be4feec047e7d2", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-F_YBNTdL.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-F_YBNTdL.js:49"}, "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-3718e55b683a56dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-F_YBNTdL.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-F_YBNTdL.js:48"}, "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-9877a0225476472b", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DoaIS2Jb.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DoaIS2Jb.js:49"}, "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-e0151ce49281bf7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DoaIS2Jb.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DoaIS2Jb.js:48"}, "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-27b608a7aaa90a83", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "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-723a23d4a59d6d26", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "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-fb5c3a74c80fc4f6", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj.js:49"}, "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-ad7e808ce550aa29", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj.js:48"}, "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-d6bf2dc82c485558", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "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-aa5ffc503eff16d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "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-cfd63ba48ae0cf12", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg.js:49"}, "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-eaec485ed8c32eb8", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg.js:48"}, "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-83ced9c117c4e8c5", "name": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9.js:49"}, "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-d32f42b7d968b8b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9.js:48"}, "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-dc3ce9d30f0faab2", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/assets/index-DdU8sS1H.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/assets/index-DdU8sS1H.js:38"}, "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-3f71507e71086b79", "name": "Insecure pattern 'dangerous_innerhtml' in docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195"}, "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-fc9decd85a6bcb91", "name": "Insecure pattern 'new_function_used' in docs/assets/AppBuilderStudio-Cll0IYu5.js:32", "shortDescription": {"text": "Insecure pattern 'new_function_used' in docs/assets/AppBuilderStudio-Cll0IYu5.js:32"}, "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-1cd2d9cba4cc07d6", "name": "Insecure pattern 'dangerous_innerhtml' in docs/servo/assets/index-IgVPJHNL.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/servo/assets/index-IgVPJHNL.js:49"}, "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-448f28bd3b15564d", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/servo/assets/index-IgVPJHNL.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/servo/assets/index-IgVPJHNL.js:48"}, "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-23c351607c25e19e", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/york/qualifier.js:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/york/qualifier.js:109"}, "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-89936874ccd404e6", "name": "Insecure pattern 'node_child_process' in scripts/generate-silence.cjs:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/generate-silence.cjs: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-be10d3fa2a6276f1", "name": "Insecure pattern 'node_child_process' in scripts/generate-static-data.mjs:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/generate-static-data.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-31a6345d2d227f72", "name": "Insecure pattern 'node_child_process' in scripts/publish-fundmanager-live.mjs:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/publish-fundmanager-live.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-9dd6b837e1466b97", "name": "Insecure pattern 'node_child_process' in scripts/eb28-seo-daily-review.mjs:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eb28-seo-daily-review.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-b51929605e66b354", "name": "Insecure pattern 'node_child_process' in scripts/build-site.mjs:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-site.mjs:3"}, "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-7b5a9f3280d578c5", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DgqG957U.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DgqG957U.js:49"}, "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-2c3b7a871ff832b7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DgqG957U.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DgqG957U.js:48"}, "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-7dfb0cf95dc19aa3", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "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-1cac64d073b6df77", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "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-4c8e4e57d49e5457", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S.js:49"}, "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-5ba896a091e2a4c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S.js:48"}, "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-c42ed6ae5a5a3a28", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "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-cec584007f702215", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "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-11405ef7c4345a81", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "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-0d20f6122f39426e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "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-352766d512351d75", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-F_YBNTdL.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-F_YBNTdL.js:49"}, "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-62b9cb9074b9d551", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-F_YBNTdL.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-F_YBNTdL.js:48"}, "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-2214333a012c7d57", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DoaIS2Jb.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DoaIS2Jb.js:49"}, "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-b6a99ea2d555c91d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DoaIS2Jb.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DoaIS2Jb.js:48"}, "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-47bc5b6beec9a3ac", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "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-a8ef7826efff97d3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "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-ab0ecc2cd381653e", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj.js:49"}, "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-da850d81d7ecb169", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj.js:48"}, "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-058b87ee438c7b94", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "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-2f363531b1d61671", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "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-86e92391683b95c8", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg.js:49"}, "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-04b44e06af4b5011", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg.js:48"}, "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-79a319a3fa373b4a", "name": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9.js:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9.js:49"}, "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-24792afb2a8a0624", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9.js:48"}, "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-0ccfcbf810e29a9b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/york/qualifier.js:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/york/qualifier.js:109"}, "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-bf17fe9ee11032c5", "name": "Insecure pattern 'dangerous_innerhtml' in src/MelbourneWebStudioPage.tsx:3104", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/MelbourneWebStudioPage.tsx:3104"}, "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-1995405ff1c4bf4a", "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-3dd7e8589cff7904", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ca31e22d7f04fd0", "name": "Very large file: src/AppBuilderStudio.jsx (2021 lines)", "shortDescription": {"text": "Very large file: src/AppBuilderStudio.jsx (2021 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-4f07a244f32946c2", "name": "Very large file: src/ThomasCustomHomesHomepageClassic.jsx (1997 lines)", "shortDescription": {"text": "Very large file: src/ThomasCustomHomesHomepageClassic.jsx (1997 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-912afa7fc221f6d9", "name": "Very large file: src/LimitlessCreditGPS.jsx (1283 lines)", "shortDescription": {"text": "Very large file: src/LimitlessCreditGPS.jsx (1283 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-cd756773314a9481", "name": "Very large file: src/App.jsx (972 lines)", "shortDescription": {"text": "Very large file: src/App.jsx (972 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-6e6ec9c70f4df127", "name": "Very large file: src/FundManager.jsx (1190 lines)", "shortDescription": {"text": "Very large file: src/FundManager.jsx (1190 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-b0b2325373e642e1", "name": "Very large file: src/MelbourneWebStudioPage.tsx (4221 lines)", "shortDescription": {"text": "Very large file: src/MelbourneWebStudioPage.tsx (4221 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-c6518c4ee428288a", "name": "Very large file: src/AlarmClock.jsx (2673 lines)", "shortDescription": {"text": "Very large file: src/AlarmClock.jsx (2673 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": "3 test file(s) for 174 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 48 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 208 placeholder/mock markers across 53 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ec9202af00ad6bc", "name": "Network/subprocess call without timeout or try/except \u2014 ops/scripts/fundmanager_watchdog.py:44", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 ops/scripts/fundmanager_watchdog.py:44"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3bd1cb8bcfb035c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 ops/recon-agent/recon-agent.mjs:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ops/recon-agent/recon-agent.mjs:56"}, "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-dc904c5b3250629f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/appbuilder-build.js:915", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/appbuilder-build.js:915"}, "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-c49f9a838cf2993c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/submit-lead.js:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/submit-lead.js:45"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a98ea21fe1a2e43", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DgqG957U.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DgqG957U.js:48"}, "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-392a89d7b99b5d7d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DgqG957U.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DgqG957U.js:1"}, "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-79a73a5f7f1b04c6", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "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-edbf8d3fffd67e21", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:1"}, "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-85e2712f197b4b01", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S.js:48"}, "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-f21e61beb2915f1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S.js:1"}, "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-7a87b93b3293f76e", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "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-6739b2b7b932d699", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:1"}, "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-06b2b5ab72e8eba6", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "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-721c3d32e112cc7e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:1"}, "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-911f60aeb1c68f35", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-F_YBNTdL.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-F_YBNTdL.js:48"}, "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-c09291acfef8bd02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-F_YBNTdL.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-F_YBNTdL.js:1"}, "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-4b89ecf25b09630d", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DoaIS2Jb.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DoaIS2Jb.js:48"}, "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-85e66e5f618b7c56", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DoaIS2Jb.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DoaIS2Jb.js:1"}, "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-9908bf96f48ba56e", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "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-4856038edbb42f08", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1"}, "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-8de754a35c0909d3", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj.js:48"}, "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-2bc0a61dd614dd1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj.js:1"}, "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-3e953bfcb38eb37a", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "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-3f0381bbacc056ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:1"}, "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-89dbb5a2582908c4", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg.js:48"}, "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-30ded091727fbbc2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg.js:1"}, "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-ee4a7942a1b1e837", "name": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9.js:48"}, "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-485eae6c00644a76", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9.js:1"}, "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-7031afea5eb0febe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/CadetCatch-DcP0fC7t.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/CadetCatch-DcP0fC7t.js:36"}, "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-f45316063322ab6b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/index-DdU8sS1H.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/index-DdU8sS1H.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ec645c3b9b8eb3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/App-BmYjzprM.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/App-BmYjzprM.js:91"}, "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-79bd3bc11bc0afa7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-190be531dc64d3b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/Dashboard-DUcffa_u.js:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/Dashboard-DUcffa_u.js:16"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-986656ce41a246b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/WelcomePage-C0EeVLbn.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/WelcomePage-C0EeVLbn.js:1"}, "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-979b57d07ff42af4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ThomasCustomHomesPage-B0EgpFF5.js:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ThomasCustomHomesPage-B0EgpFF5.js:21"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8bb94fe622a6f95", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/FundManager-DxOpXgEH.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/FundManager-DxOpXgEH.js:1"}, "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-db3b2bc8286cc268", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AppBuilderStudio-Cll0IYu5.js:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AppBuilderStudio-Cll0IYu5.js:39"}, "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-e62e2094bdd3414c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ReconAgentPage-DScuPWjR.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ReconAgentPage-DScuPWjR.js:1"}, "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-9a2b7c518ad2e0c6", "name": "Legacy-named symbol `unstable_legacy` in docs/servo/assets/index-IgVPJHNL.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in docs/servo/assets/index-IgVPJHNL.js:48"}, "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-bcc0055f73f8b847", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/servo/assets/index-IgVPJHNL.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/servo/assets/index-IgVPJHNL.js:1"}, "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-cdd2fb195ee0d201", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/update-ugcma-dashboard-feed.py:504", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/update-ugcma-dashboard-feed.py:504"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-79bb1cbe0d3c4076", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-eb28-blog.mjs:470", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-eb28-blog.mjs:470"}, "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-63c09c6997ed904d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-fundmanager-live.mjs:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-fundmanager-live.mjs:56"}, "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-11e402319a929723", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DgqG957U.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DgqG957U.js:48"}, "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-4b2dd4f55006455a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DgqG957U.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DgqG957U.js:1"}, "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-696df3790d4fd5f9", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "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-78beed4e3371359c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:1"}, "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-c649f36c2f77d5ce", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S.js:48"}, "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-b7723782e1ab47cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S.js:1"}, "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-d40057b8b53bd993", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "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-f92dc4b923e52764", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:1"}, "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-f9fa7a6fe36f4b84", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "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-ea73f9f2a804e662", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:1"}, "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-2a151d56a43ece9b", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-F_YBNTdL.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-F_YBNTdL.js:48"}, "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-3be49e5b71b35c1f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-F_YBNTdL.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-F_YBNTdL.js:1"}, "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-783fd1b52b8f9b04", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DoaIS2Jb.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DoaIS2Jb.js:48"}, "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-a9eea4c628bd8757", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DoaIS2Jb.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DoaIS2Jb.js:1"}, "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-5f6e154b5969f5d0", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "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-5d2c09505ab0e06b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1"}, "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-6ae597d33d3458a5", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj.js:48"}, "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-4b50381e10ad3c48", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj.js:1"}, "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-33065b2aa9e8442e", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "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-ebb8899bb2724a9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:1"}, "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-bc98fc5fee9b98a5", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg.js:48"}, "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-f89cb68b2b2a581c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg.js:1"}, "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-ed38005152d91a1f", "name": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9.js:48", "shortDescription": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9.js:48"}, "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-809bc155ddf61935", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9.js:1"}, "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-83a86e4319777fe6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ReconAgentPage.jsx:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ReconAgentPage.jsx:181"}, "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-d0cffa11cb5d68dd", "name": "Commented-code block (5 lines) in src/fundmanagerMeta.js:122", "shortDescription": {"text": "Commented-code block (5 lines) in src/fundmanagerMeta.js:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-859473cb1ad9ba7d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/CadetCatch.jsx:184", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/CadetCatch.jsx:184"}, "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-66ea59dca848cffc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/AlarmClock.jsx:845", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/AlarmClock.jsx:845"}, "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-ef22fd58bfde6f76", "name": "51 env vars used in code but missing from .env.example", "shortDescription": {"text": "51 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `APPBUILDER_CRITIC_MODEL`, `APPBUILDER_CRITIC_THRESHOLD`, `APPBUILDER_MODEL`, `ASSISTANT_WORKSPACE`, `BUILD_ID`, `CADETCATCH_OPENAI_MODEL`, `CHROME_PATH`, `COMMAND_CENTER_WORKSPACE` + 43 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nops/fundmanager/providers.py:get_wallet_state, ops/fundmanager/providers.py:get_wallet_state\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18136"}, "properties": {"repository": "richducat/eb28.co", "repoUrl": "https://github.com/richducat/eb28.co", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: richducat/eb28.co"}, "properties": {"repobilityId": 429298, "scanner": "foundry_dataset", "fingerprint": "0fed6a45bdaf5aeb2b99ad888e8443babd7b0e0837b5b7f9dc72e9d69af55106", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 12, "ui_or_frontend": 3, "source_or_other": 21, "mock_placeholder": 1, "api_integration_gap": 3, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 3, "human_reported_issue_no_linked_fix": 4, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 12, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 155, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 5, "thread_has_comment": 4, "thread_touches_file": 40, "thread_has_pr_review": 1, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 10, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 5, "comment_chain_touches_file": 60, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 5}, "node_count": 68, "node_types": {"repo": 1, "thread": 1, "comment": 4, "pr_file": 40, "alignment": 3, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 5, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#4", "issue_number": "4", "quality_tiers": {"unresolved": 7, "assumption_check": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-b0ce9ccef3c4b325", "graph_gold_label": "assumption_check", "changed_file_labels": {"test_or_ci": 24, "api_or_backend": 8, "docs_or_claims": 96, "ui_or_frontend": 24, "source_or_other": 168}}, "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: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 60, 'thread_touches_file': 40, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 5, 'comment_has_chain': 5, 'issue_chain_has_comment_chain': 5, 'thread_has_comment': 4, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 21, 'docs_or_claims': 12, 'not_resolved_or_not_observed': 6, 'human_reported_issue_no_linked_fix': 4, 'api_integration_gap': 3, 'ui_or_frontend': 3, 'test_or_ci': 3, 'blueprint_human_gap_disagreement': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 12, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 7, 'assumption_check': 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/richducat/eb28.co", "source_id": "graph-query-motif_query-1f052e17cd2e7c93", "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": "richducat/eb28.co", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: richducat/eb28.co"}, "properties": {"repobilityId": 429297, "scanner": "foundry_dataset", "fingerprint": "6ef6f0a907422513b7a04131cb5149399aec0e88b33a8d8153dc42ce1c2f890d", "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, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 2, "dependency_or_build": 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": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "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": 8, "thread_has_comment_chain": 1, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#3", "issue_number": "3", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-ef8daf6c25aeef5e", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 16, "ui_or_frontend": 4, "source_or_other": 8, "dependency_or_build": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, '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': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, '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: {'docs_or_claims': 4, 'not_resolved_or_not_observed': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'dependency_or_build': 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/richducat/eb28.co", "source_id": "graph-query-motif_query-fe5d47c65a0a4620", "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": "richducat/eb28.co", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: richducat/eb28.co"}, "properties": {"repobilityId": 429296, "scanner": "foundry_dataset", "fingerprint": "bde435f3f7d7b0d92381ebbfaec0a03d77be1ac4c71d7e0d97f9e5ef6edde9ca", "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": 1, "runtime_failure": 1, "api_integration_gap": 2, "mostly follows blueprint": 1, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 2, "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": 2, "not_resolved_or_not_observed": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 21, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#2", "issue_number": "2", "quality_tiers": {"unresolved": 2, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-dbb3415efaee58c6", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#2\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#2\nRepo: richducat/eb28.co\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 21\nEdges: 30\nNode types: {'link_quality': 7, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 7, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'api_integration_gap': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'claimed_resolved_unverified': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2, 'assumption_check': 2}\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/richducat/eb28.co", "source_id": "graph-query-motif_query-88a66f751c8d71fa", "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": "richducat/eb28.co", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: richducat/eb28.co"}, "properties": {"repobilityId": 429295, "scanner": "foundry_dataset", "fingerprint": "d1a53f0692dba125c9e9658dea69d7cbb9617bfed9845463c00c1b1d6e9904cf", "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": 3, "source_or_other": 3, "api_integration_gap": 2, "dependency_or_build": 2, "build_install_failure": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 5, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 10}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 69, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 8, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 3, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 28, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 8, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#1", "issue_number": "1", "quality_tiers": {"unresolved": 5, "assumption_check": 2}, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fd3bd705f2cb60df", "graph_gold_label": "assumption_check", "changed_file_labels": {"ui_or_frontend": 18, "source_or_other": 18, "dependency_or_build": 12}}, "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: richducat/eb28.co\nThread: richducat/eb28.co#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#1\nRepo: richducat/eb28.co\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 28\nEdges: 69\nNode types: {'pr_file': 8, 'link_quality': 7, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 7, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 5, 'source_or_other': 3, 'ui_or_frontend': 3, 'human_reported_issue_no_linked_fix': 3, 'api_integration_gap': 2, 'dependency_or_build': 2, 'thread_has_human_issue_without_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 10}\nQuality tiers: {'unresolved': 5, 'assumption_check': 2}\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/richducat/eb28.co", "source_id": "graph-query-motif_query-7207656cddcbcddf", "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": "richducat/eb28.co", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_review_followup_gap", "level": "warning", "message": {"text": "Foundry mined review feedback without structured fix: richducat/eb28.co"}, "properties": {"repobilityId": 408577, "scanner": "foundry_dataset", "fingerprint": "b3f2680f77130750b05543eb05d628c4e62e1e71cddc7473090f74bd84a4cf04", "category": "practices", "severity": "medium", "confidence": 0.72, "triageState": "open", "verdict": "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": "Review feedback without structured fix chain", "intent": "Weak-supervision examples for review comments lacking a traceable fix.", "labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 12, "ui_or_frontend": 3, "source_or_other": 21, "mock_placeholder": 1, "api_integration_gap": 3, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 3, "human_reported_issue_no_linked_fix": 4, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "review_feedback_without_structured_fix", "outcomes": {"not_resolved_or_not_observed": 12, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "review_feedback_without_structured_fix", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 155, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 5, "thread_has_comment": 4, "thread_touches_file": 40, "thread_has_pr_review": 1, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 10, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 5, "comment_chain_touches_file": 60, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 5}, "node_count": 68, "node_types": {"repo": 1, "thread": 1, "comment": 4, "pr_file": 40, "alignment": 3, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 5, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#4", "issue_number": "4", "quality_tiers": {"unresolved": 7, "assumption_check": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "weak_supervision", "source_motif_id": "graph-pattern-motif-thread-62bfd39ee91dd491", "graph_gold_label": "assumption_check", "changed_file_labels": {"test_or_ci": 24, "api_or_backend": 8, "docs_or_claims": 96, "ui_or_frontend": 24, "source_or_other": 168}}, "text": "Graph query export: Review feedback without structured fix chain\nQuery id: review_feedback_without_structured_fix\nQuery type: motif_query\nIntent: Weak-supervision examples for review comments lacking a traceable fix.\nMotif: review_feedback_without_structured_fix\nTraining usage: weak_supervision\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: PR review feedback lacks a clearly structured fix chain\nMotif id: review_feedback_without_structured_fix\nPolarity: mixed\nTraining usage: weak_supervision\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 60, 'thread_touches_file': 40, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 5, 'comment_has_chain': 5, 'issue_chain_has_comment_chain': 5, 'thread_has_comment': 4, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 21, 'docs_or_claims': 12, 'not_resolved_or_not_observed': 6, 'human_reported_issue_no_linked_fix': 4, 'api_integration_gap': 3, 'ui_or_frontend': 3, 'test_or_ci': 3, 'blueprint_human_gap_disagreement': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 12, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 7, 'assumption_check': 3}\nCI labels: {}\nCurriculum targets:\n- Normalize PR reviews into finding, fix, verification, and residual-risk fields.\n- Teach agents to answer review comments with traceable code and test changes.\nAssumption checks:\n- Can each review comment be mapped to a changed file or commit?\n- Was the review resolved by evidence or only left as commentary?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "graph-query-motif_query-5de6b358e3b74213", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/review_feedback_without_structured_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "richducat/eb28.co", "source_dataset": "graph_queries/review_feedback_without_structured_fix", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_review_followup_gap", "level": "warning", "message": {"text": "Foundry mined review feedback without structured fix: richducat/eb28.co"}, "properties": {"repobilityId": 408576, "scanner": "foundry_dataset", "fingerprint": "50fa380f31e4f8349bd19764c99ca3fd39fc050d33c3345eb56d04ec0f8c5b0f", "category": "practices", "severity": "medium", "confidence": 0.72, "triageState": "open", "verdict": "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": "Review feedback without structured fix chain", "intent": "Weak-supervision examples for review comments lacking a traceable fix.", "labels": {"ui_or_frontend": 3, "source_or_other": 3, "api_integration_gap": 2, "dependency_or_build": 2, "build_install_failure": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 5, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "review_feedback_without_structured_fix", "outcomes": {"not_resolved_or_not_observed": 10}, "polarity": "mixed", "query_id": "review_feedback_without_structured_fix", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 69, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 8, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 3, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 28, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 8, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#1", "issue_number": "1", "quality_tiers": {"unresolved": 5, "assumption_check": 2}, "repo_full_name": "richducat/eb28.co", "training_usage": "weak_supervision", "source_motif_id": "graph-pattern-motif-thread-19e467ba084d7174", "graph_gold_label": "assumption_check", "changed_file_labels": {"ui_or_frontend": 18, "source_or_other": 18, "dependency_or_build": 12}}, "text": "Graph query export: Review feedback without structured fix chain\nQuery id: review_feedback_without_structured_fix\nQuery type: motif_query\nIntent: Weak-supervision examples for review comments lacking a traceable fix.\nMotif: review_feedback_without_structured_fix\nTraining usage: weak_supervision\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nEvidence:\nGraph motif: PR review feedback lacks a clearly structured fix chain\nMotif id: review_feedback_without_structured_fix\nPolarity: mixed\nTraining usage: weak_supervision\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#1\nRepo: richducat/eb28.co\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 28\nEdges: 69\nNode types: {'pr_file': 8, 'link_quality': 7, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 7, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 5, 'source_or_other': 3, 'ui_or_frontend': 3, 'human_reported_issue_no_linked_fix': 3, 'api_integration_gap': 2, 'dependency_or_build': 2, 'thread_has_human_issue_without_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 10}\nQuality tiers: {'unresolved': 5, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Normalize PR reviews into finding, fix, verification, and residual-risk fields.\n- Teach agents to answer review comments with traceable code and test changes.\nAssumption checks:\n- Can each review comment be mapped to a changed file or commit?\n- Was the review resolved by evidence or only left as commentary?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "graph-query-motif_query-d69321469f16eb62", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/review_feedback_without_structured_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "richducat/eb28.co", "source_dataset": "graph_queries/review_feedback_without_structured_fix", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: richducat/eb28.co"}, "properties": {"repobilityId": 402999, "scanner": "foundry_dataset", "fingerprint": "6cca21edc5cb09058b5cd69570ab28d3de33e8f0717b3ef5d9d40c834f2f87eb", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 12, "ui_or_frontend": 3, "source_or_other": 21, "mock_placeholder": 1, "api_integration_gap": 3, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 3, "human_reported_issue_no_linked_fix": 4, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 12, "ambiguous_needs_more_evidence": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 155, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 5, "thread_has_comment": 4, "thread_touches_file": 40, "thread_has_pr_review": 1, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 10, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 5, "comment_chain_touches_file": 60, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 5}, "node_count": 68, "node_types": {"repo": 1, "thread": 1, "comment": 4, "pr_file": 40, "alignment": 3, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 5, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#4", "issue_number": "4", "quality_tiers": {"unresolved": 7, "assumption_check": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-6a85c97091208ac3", "graph_gold_label": "assumption_check", "changed_file_labels": {"test_or_ci": 24, "api_or_backend": 8, "docs_or_claims": 96, "ui_or_frontend": 24, "source_or_other": 168}}, "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: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 60, 'thread_touches_file': 40, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 5, 'comment_has_chain': 5, 'issue_chain_has_comment_chain': 5, 'thread_has_comment': 4, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 21, 'docs_or_claims': 12, 'not_resolved_or_not_observed': 6, 'human_reported_issue_no_linked_fix': 4, 'api_integration_gap': 3, 'ui_or_frontend': 3, 'test_or_ci': 3, 'blueprint_human_gap_disagreement': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 12, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 7, 'assumption_check': 3}\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/richducat/eb28.co", "source_id": "graph-query-motif_query-59feee9e57b43a70", "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": "richducat/eb28.co", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: richducat/eb28.co"}, "properties": {"repobilityId": 402998, "scanner": "foundry_dataset", "fingerprint": "548d6db02f4324a5428dbc65ba8532b90aafa4961236f87540c18b44f18ae34f", "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, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 2, "dependency_or_build": 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": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "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": 8, "thread_has_comment_chain": 1, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#3", "issue_number": "3", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "richducat/eb28.co", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-29e203843c8f8e7d", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 16, "ui_or_frontend": 4, "source_or_other": 8, "dependency_or_build": 4}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, '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': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, '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: {'docs_or_claims': 4, 'not_resolved_or_not_observed': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'dependency_or_build': 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/richducat/eb28.co", "source_id": "graph-query-motif_query-52325d4939922163", "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": "richducat/eb28.co", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: richducat/eb28.co"}, "properties": {"repobilityId": 402997, "scanner": "foundry_dataset", "fingerprint": "0ec02f0ced3b46e36ad6be838b8953fd7c754620571654268045672793da7920", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 1, "runtime_failure": 1, "api_integration_gap": 2, "mostly follows blueprint": 1, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 2, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 2, "not_resolved_or_not_observed": 8}, "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": 3, "thread_has_comment": 2, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 21, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#2", "issue_number": "2", "quality_tiers": {"unresolved": 2, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-1fed9c2ea26f9928", "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: richducat/eb28.co\nThread: richducat/eb28.co#2\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#2\nRepo: richducat/eb28.co\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 21\nEdges: 30\nNode types: {'link_quality': 7, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 7, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'api_integration_gap': 2, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'human_reported_issue_then_fix_attempt': 1, 'bug_fix': 1, 'claimed_resolved_unverified': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "graph-query-motif_query-6baf93ec71c96e31", "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": "richducat/eb28.co", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: richducat/eb28.co"}, "properties": {"repobilityId": 402996, "scanner": "foundry_dataset", "fingerprint": "d07953c56fb1864ac058e66baaf26497144719f0cce50b3c49beb3e6b458361e", "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": 3, "source_or_other": 3, "api_integration_gap": 2, "dependency_or_build": 2, "build_install_failure": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 5, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 10}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 69, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 8, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 8, "thread_has_comment_chain": 3, "comment_chain_touches_file": 24, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 28, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 8, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#1", "issue_number": "1", "quality_tiers": {"unresolved": 5, "assumption_check": 2}, "repo_full_name": "richducat/eb28.co", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d6d295674eca8b57", "graph_gold_label": "assumption_check", "changed_file_labels": {"ui_or_frontend": 18, "source_or_other": 18, "dependency_or_build": 12}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#1\nRepo: richducat/eb28.co\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 28\nEdges: 69\nNode types: {'pr_file': 8, 'link_quality': 7, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 24, 'thread_touches_file': 8, 'issue_chain_touches_file': 8, 'chain_has_link_quality': 7, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 5, 'source_or_other': 3, 'ui_or_frontend': 3, 'human_reported_issue_no_linked_fix': 3, 'api_integration_gap': 2, 'dependency_or_build': 2, 'thread_has_human_issue_without_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 10}\nQuality tiers: {'unresolved': 5, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "graph-query-motif_query-90c59b8037ec6a3c", "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": "richducat/eb28.co", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: richducat/eb28.co"}, "properties": {"repobilityId": 419754, "scanner": "foundry_dataset", "fingerprint": "4fd8726c3b06154a2d31ad9c6d4e7db9b401466af1d0b3f5fd30d0f2ff2b0482", "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, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 2, "dependency_or_build": 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": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "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": 8, "thread_has_comment_chain": 1, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#3", "issue_number": "3", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "richducat/eb28.co", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c129817ba5f2ca89", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 16, "ui_or_frontend": 4, "source_or_other": 8, "dependency_or_build": 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: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, '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': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, '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: {'docs_or_claims': 4, 'not_resolved_or_not_observed': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'dependency_or_build': 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/richducat/eb28.co", "source_id": "graph-query-motif_query-71af14fdb32fe177", "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": "richducat/eb28.co", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: richducat/eb28.co"}, "properties": {"repobilityId": 406304, "scanner": "foundry_dataset", "fingerprint": "3962e30ca42ce05f0352cac05b0a24185b8b73cd43618010c07180d5b944b9a5", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"test_ci_gap": 1, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 2, "dependency_or_build": 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": "docs_only_runtime_fix", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 39, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 8, "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": 8, "thread_has_comment_chain": 1, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 20, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 8, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#3", "issue_number": "3", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "richducat/eb28.co", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9c3b8469debe9e5e", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 16, "ui_or_frontend": 4, "source_or_other": 8, "dependency_or_build": 4}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#3\nRepo: richducat/eb28.co\nIssue/PR number: 3\nGraph consistency label: assumption_check\nNodes: 20\nEdges: 39\nNode types: {'pr_file': 8, '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': 8, 'comment_chain_touches_file': 8, 'issue_chain_touches_file': 8, '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: {'docs_or_claims': 4, 'not_resolved_or_not_observed': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'ui_or_frontend': 1, 'dependency_or_build': 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- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "graph-query-motif_query-3a980b62b3112951", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "richducat/eb28.co", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: richducat/eb28.co"}, "properties": {"repobilityId": 390743, "scanner": "foundry_dataset", "fingerprint": "e5df8bb4a28cde5f7351780804e3bbc6d66a5438e8f5a6cbb26c63bf9d24ba38", "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": "richducat/eb28.co#4", "human_labels": ["api_integration_gap", "api_or_backend", "docs_or_claims", "human_feedback_general", "mock_placeholder", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "4", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-599614a4a3493bce", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 2, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 40, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 12, "ui_or_frontend": 3, "source_or_other": 21}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: richducat/eb28.co#4\nRepo: richducat/eb28.co\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 5\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 40\nLabels: {'mock_placeholder': 1, 'api_integration_gap': 3, 'human_feedback_general': 1}\nPolarities: {'bad': 4, 'neutral': 1}\nChanged file labels: {'docs_or_claims': 12, 'api_or_backend': 1, 'ui_or_frontend': 3, 'source_or_other': 21, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7ce74fd2e27664a0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/4\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: richducat/eb28.co\\nAuthor: richducat (User)\\nURL: https://github.com/richducat/eb28.co/pull/4\\nTitle: [codex] Fundmanager cutover reliability and dashboard wiring\\nBody:\\nThis PR completes the repo-side production cutover work for `eb28.co/fundmanager` so the trading dashboard reflects the orchestrator's real state instead of a scraped upstream placeholder.\\n\\nBefore this change, the new fundmanager orchestration code and systemd units existed locally, but the user-facing `/fundmanager` experience was still reading unrelated HTML from `freeopenclawtrader.com` and could fall back to simulated activity. That meant active lanes could be skipping, degraded, or paused while the page still looked superficially live and healthy. On the execution side, some guard outcomes were also being flattened into generic `NO_ELIGIBLE_MARKET` results, which hid the real reason a lane could not trade and reduced the value of cooldown and blocker telemetry.\\n\\nThe root cause was that the cutover stopped halfway between infrastructure and presentation. The orchestrator, state management, cooldown tracking, and circuit breaker logic were\"\n  },\n  {\n    \"id\": \"github-feedback-comment-1b3f157186e54adf\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/4#issuecomment-4015355321\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: richducat/eb28.co\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/richducat/eb28.co/pull/4#issuecomment-4015355321\\nTitle: \\nBody:\\n[vc]: #n4V6yZqX05YNnZ7TTlWPDpfdn8c4oEudfSvFI45ARGg=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJva\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "comment-chain-pattern-bad_chains-4f91737cd70db568", "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": "richducat/eb28.co", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: richducat/eb28.co"}, "properties": {"repobilityId": 390742, "scanner": "foundry_dataset", "fingerprint": "a6ebc5d552f38cbeb5b9808e16223618af9ecacc335fd8b637e7db4a7638d817", "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": "richducat/eb28.co#3", "human_labels": ["dependency_or_build", "docs_or_claims", "source_or_other", "test_ci_gap", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-749a77b0bcd7a056", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 2, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 2, "dependency_or_build": 1}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#3\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: richducat/eb28.co#3\nRepo: richducat/eb28.co\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: 8\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 2, 'docs_or_claims': 4, 'ui_or_frontend': 1, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c1998b5d9c4805f4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/3\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: richducat/eb28.co\\nAuthor: richducat (User)\\nURL: https://github.com/richducat/eb28.co/pull/3\\nTitle: Configure Vite build for GitHub Pages and add built static output\\nBody:\\n### Motivation\\n- GitHub Pages serves static files, while the repository contained a Vite + React source tree that needs to be built before serving. \\n- Provide a simple workflow to produce the static site and include the custom domain `eb28.co` so Pages can host the site correctly.\\n\\n### Description\\n- Configure Vite to write production output into the `docs/` folder by setting `build.outDir = 'docs'` and `build.emptyOutDir = true` in `vite.config.js`.\\n- Add a `public/CNAME` file containing `eb28.co` so the custom domain is included in builds and ends up in `docs/CNAME` on build.\\n- Add a `%3C.gitignore%3E` with `node_modules/` and `.DS_Store` and expand `README.md` with GitHub Pages deployment instructions using `main/docs` as the Pages source.\\n- Generate a production build and place the static output under `docs/` (includes `docs/index.html`, `docs/CNAME`, and `docs/assets/*` such as `index-CmEEh-KA.js` and `index-sgFzebYV.css`).\\n\\n### Testing\\n-\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-92d946a85ef2001a\",\n    \"filename\": \".gitignore\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 2,\n    \"deletions\": 0,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/richducat/eb28.co/blob/c703a0627cd3b6d029c712cdd55cd6c8314ff2d0/.gitignore\"\n  },\n  {\n    \"id\": \"github-pr-file-file-51796a8dceee1aab\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 22,\n    \"deletions\": 1,\n    \"changes\": 23,\n    \"blob_url\": \"https://github.com/richducat/eb28.co/blob/c703a0627cd3b6d029c712cdd55cd6c8314ff2d0/README.md\"\n  },\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "comment-chain-pattern-bad_chains-9604484d9f831515", "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": "richducat/eb28.co", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: richducat/eb28.co"}, "properties": {"repobilityId": 390741, "scanner": "foundry_dataset", "fingerprint": "7a79f1891fa70215c499182b7710d3ebce62b582cdd046cdd0b3fc558783f33e", "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": "richducat/eb28.co#2", "human_labels": ["api_integration_gap", "runtime_failure"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.618, "repo_full_name": "richducat/eb28.co", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3dc4b16e9a69412c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 2, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#2\nOutcome: not_resolved_or_not_observed\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: richducat/eb28.co#2\nRepo: richducat/eb28.co\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 3\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1, 'api_integration_gap': 2}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d676a890d8a622eb\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/2\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: richducat/eb28.co\\nAuthor: richducat (User)\\nURL: https://github.com/richducat/eb28.co/pull/2\\nTitle: Replace npm/Vite/React app with standalone static index.html (no npm required)\\nBody:\\n### Motivation\\n- The previous React/Vite/Tailwind implementation required `npm install` and could not be started in restricted environments (npm registry access blocked), so the site needed a build-free version that opens immediately in a browser. \\n- Preserve the EB 28 landing page content and interactivity (nav, hero, services, systems marketplace, pricing, contact, footer) while removing the dependency/install friction.\\n\\n### Description\\n- Added a single standalone `index.html` that contains inline CSS and lightweight vanilla JavaScript implementing the full landing page, responsive layout, mobile menu toggle, marketplace category filters, product rendering, and dynamic footer year. \\n- Removed build tooling and dependency files: `package.json`, `vite.config.js`, `tailwind.config.js`, `postcss.config.js`, and the `src/` React source (the change converts the project to a static deliverable to avoid runtime installs). \\n- Kept t\"\n  },\n  {\n    \"id\": \"github-feedback-comment-dcf34a664e7f543c\",\n    \"kind\": \"review_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/2#discussion_r2827182636\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: review_comment\\nRepo: richducat/eb28.co\\nAuthor: chatgpt-codex-connector[bot] (Bot)\\nURL: https://github.com/richducat/eb28.co/pull/2#discussion_r2827182636\\nTitle: \\nBody:\\n**<sub><sub>![P1 Badge](https://img.shields.io/badge/P1-orange?style=flat)</sub></sub>  Make contact form submit when CTA is clicked**\\n\\nUsers who fill out the contact form cannot send their inquiry because the CTA is defined as `type\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "comment-chain-pattern-bad_chains-23588ace3c768ac4", "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": "richducat/eb28.co", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: richducat/eb28.co"}, "properties": {"repobilityId": 390740, "scanner": "foundry_dataset", "fingerprint": "6150966f758bb7b980fc898d9d8680cffece573132e325580b2fd82038e08d90", "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": "richducat/eb28.co#1", "human_labels": ["api_integration_gap", "build_install_failure", "dependency_or_build", "source_or_other", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "richducat/eb28.co", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-b21e1a9bcaa69d07", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 2, "docs": 5, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 8, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 3, "source_or_other": 3, "dependency_or_build": 2}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: richducat/eb28.co#1\nRepo: richducat/eb28.co\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 3\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 8\nLabels: {'build_install_failure': 1, 'api_integration_gap': 2}\nPolarities: {'bad': 3}\nChanged file labels: {'source_or_other': 3, 'dependency_or_build': 2, 'ui_or_frontend': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-92934a5fef0c0c8d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/1\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: richducat/eb28.co\\nAuthor: richducat (User)\\nURL: https://github.com/richducat/eb28.co/pull/1\\nTitle: Add EB 28 React landing page with Vite + Tailwind setup\\nBody:\\n### Motivation\\n- Provide a full main landing page implementation for the EB 28 website as a React single-page app with modern tooling and Tailwind-based styling.\\n- Ship a minimal, runnable project structure so the site can be developed, previewed, and built with `vite` locally.\\n\\n### Description\\n- Added the main React app component implementing navigation, hero, services, marketplace filters, pricing cards, lead form, and footer in `src/App.jsx`.\\n- Bootstrapped the app entry and styles with `index.html`, `src/main.jsx`, and Tailwind directives in `src/index.css`.\\n- Included project configuration for development and build tooling via `package.json`, `vite.config.js`, `tailwind.config.js`, and `postcss.config.js` with scripts for `dev`, `build`, and `preview`.\\n- Wired in `lucide-react` icons and prepared the UI to use Tailwind utility classes for styling and responsive layout.\\n\\n### Testing\\n- Attempted an automated dependency install with `npm in\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7f7c7c36c71deb78\",\n    \"kind\": \"review_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/richducat/eb28.co/pull/1#discussion_r2825897920\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: review_comment\\nRepo: richducat/eb28.co\\nAuthor: chatgpt-codex-connector[bot] (Bot)\\nURL: https://github.com/richducat/eb28.co/pull/1#discussion_r2825897920\\nTitle: \\nBody:\\n**<sub><sub>![P1 Badge](https://img.shields.io/badge/P1-orange?style=flat)</sub></sub>  Make the lead form actually submit**\\n\\nClicking the primary C\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/richducat/eb28.co", "source_id": "comment-chain-pattern-bad_chains-c808ff21d17b15cf", "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": "richducat/eb28.co", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: richducat/eb28.co"}, "properties": {"repobilityId": 408025, "scanner": "foundry_dataset", "fingerprint": "cc1c945d1d00cb8e0eb57bfa783520ad38b211bad53cc92965cdbaf625849508", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 12, "ui_or_frontend": 3, "source_or_other": 21, "mock_placeholder": 1, "api_integration_gap": 3, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 1, "blueprint_human_gap_disagreement": 3, "human_reported_issue_no_linked_fix": 4, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 12, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 155, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 5, "thread_has_comment": 4, "thread_touches_file": 40, "thread_has_pr_review": 1, "alignment_uses_comment": 3, "alignment_uses_finding": 3, "chain_has_link_quality": 10, "comment_aligns_finding": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 5, "comment_chain_touches_file": 60, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 5}, "node_count": 68, "node_types": {"repo": 1, "thread": 1, "comment": 4, "pr_file": 40, "alignment": 3, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 5, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "richducat/eb28.co#4", "issue_number": "4", "quality_tiers": {"unresolved": 7, "assumption_check": 3}, "repo_full_name": "richducat/eb28.co", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-45b2a4b0d62f7255", "graph_gold_label": "assumption_check", "changed_file_labels": {"test_or_ci": 24, "api_or_backend": 8, "docs_or_claims": 96, "ui_or_frontend": 24, "source_or_other": 168}}, "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: assumption_check\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: richducat/eb28.co\nThread: richducat/eb28.co#4\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: richducat/eb28.co#4\nRepo: richducat/eb28.co\nIssue/PR number: 4\nGraph consistency label: assumption_check\nNodes: 68\nEdges: 155\nNode types: {'pr_file': 40, 'link_quality': 10, 'comment_chain': 5, 'comment': 4, 'alignment': 3, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 60, 'thread_touches_file': 40, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 5, 'comment_has_chain': 5, 'issue_chain_has_comment_chain': 5, 'thread_has_comment': 4, 'alignment_uses_comment': 3, 'alignment_uses_finding': 3, 'comment_aligns_finding': 3, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 21, 'docs_or_claims': 12, 'not_resolved_or_not_observed': 6, 'human_reported_issue_no_linked_fix': 4, 'api_integration_gap': 3, 'ui_or_frontend': 3, 'test_or_ci': 3, 'blueprint_human_gap_disagreement': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_feedback_general': 1, 'api_or_backend': 1, 'unlinked_human_feedback': 1, 'ambiguous_needs_more_evidence': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 12, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'unresolved': 7, 'assumption_check': 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/richducat/eb28.co", "source_id": "graph-query-motif_query-5db5c8989758485e", "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": "richducat/eb28.co", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-d1bf0e1f1e42a37f", "level": "note", "message": {"text": "Possibly dead Python function: maybe_trip_circuit_breaker"}, "properties": {"repobilityId": "1632d5ac1492e150", "scanner": "scanner-primary", "fingerprint": "d1bf0e1f1e42a37f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ops/fundmanager/state.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5d6a079d5ff415", "level": "note", "message": {"text": "Possibly dead Python function: draw_create_scene"}, "properties": {"repobilityId": "e26b4c36fa9cc627", "scanner": "scanner-primary", "fingerprint": "aa5d6a079d5ff415", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:246"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d984108d32cabb3", "level": "note", "message": {"text": "Possibly dead Python function: draw_editor_scene"}, "properties": {"repobilityId": "b12d081551c3d605", "scanner": "scanner-primary", "fingerprint": "7d984108d32cabb3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:258"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2a8e8b363ff0c61f", "level": "note", "message": {"text": "Possibly dead Python function: draw_library_scene"}, "properties": {"repobilityId": "7078ebc3bcaa0067", "scanner": "scanner-primary", "fingerprint": "2a8e8b363ff0c61f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:273"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0880eb4b1516ef3", "level": "note", "message": {"text": "Possibly dead Python function: draw_signup_scene"}, "properties": {"repobilityId": "461064cc403a3bf3", "scanner": "scanner-primary", "fingerprint": "e0880eb4b1516ef3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:287"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ac43f0159f3f364", "level": "note", "message": {"text": "Possibly dead Python function: draw_pro_scene"}, "properties": {"repobilityId": "ea0a536b36d1f341", "scanner": "scanner-primary", "fingerprint": "6ac43f0159f3f364", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:305"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c11bcf288c0e3a91", "level": "note", "message": {"text": "Possibly dead Python function: draw_install_scene"}, "properties": {"repobilityId": "050655a4ed26a0cb", "scanner": "scanner-primary", "fingerprint": "c11bcf288c0e3a91", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ringtonepro-premium-marketing-assets.py:321"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2af2338c04efcaf4", "level": "note", "message": {"text": "Possibly dead Python function: first_money_number"}, "properties": {"repobilityId": "5b100ae85e230980", "scanner": "scanner-primary", "fingerprint": "2af2338c04efcaf4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/update-ugcma-dashboard-feed.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12ecfc1914f395d8", "level": "note", "message": {"text": "Possibly dead Python function: letter_spaced"}, "properties": {"repobilityId": "cb395c7c92e9d006", "scanner": "scanner-primary", "fingerprint": "12ecfc1914f395d8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/create-elw-social-batch-2.py:430"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-8cf1dad25340617e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DgqG957U.js:49"}, "properties": {"repobilityId": "2758e6e55c84a828", "scanner": "scanner-primary", "fingerprint": "8cf1dad25340617e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-39c891702ad4945b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "properties": {"repobilityId": "ec11619b9f1989b5", "scanner": "scanner-primary", "fingerprint": "39c891702ad4945b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f9d238eecd77f915", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S.js:49"}, "properties": {"repobilityId": "20c940c5709ad1c0", "scanner": "scanner-primary", "fingerprint": "f9d238eecd77f915", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-046caadef86160b5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "properties": {"repobilityId": "168df334f65d1c0d", "scanner": "scanner-primary", "fingerprint": "046caadef86160b5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-69dab081d5ce26ec", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "properties": {"repobilityId": "77eb28b98865351f", "scanner": "scanner-primary", "fingerprint": "69dab081d5ce26ec", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b76fdc4119bfa810", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-F_YBNTdL.js:49"}, "properties": {"repobilityId": "c8b5f6dafaf13d0f", "scanner": "scanner-primary", "fingerprint": "b76fdc4119bfa810", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ffcb7ac18e6f9d0b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-DoaIS2Jb.js:49"}, "properties": {"repobilityId": "3ac8fb9bd348045b", "scanner": "scanner-primary", "fingerprint": "ffcb7ac18e6f9d0b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-60b86d6d8197f48d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "properties": {"repobilityId": "f7a953413ce89f27", "scanner": "scanner-primary", "fingerprint": "60b86d6d8197f48d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b0d4b5067edd9a2b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-Bq2QpPdj.js:49"}, "properties": {"repobilityId": "e5820c7143d64fe1", "scanner": "scanner-primary", "fingerprint": "b0d4b5067edd9a2b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-34a0355a11b06a2b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "properties": {"repobilityId": "52a01e5f5032a7e8", "scanner": "scanner-primary", "fingerprint": "34a0355a11b06a2b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2701641cd92bb6f7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-jjAchhLg.js:49"}, "properties": {"repobilityId": "6ea48e4804006979", "scanner": "scanner-primary", "fingerprint": "2701641cd92bb6f7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fbf534715b66c07c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/ELW/assets/index-C99C1-Z9.js:49"}, "properties": {"repobilityId": "1a87ac069e32e129", "scanner": "scanner-primary", "fingerprint": "fbf534715b66c07c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6e49c45bbbe2ed86", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/index-DdU8sS1H.js:34"}, "properties": {"repobilityId": "e4d9c044bd95c1ab", "scanner": "scanner-primary", "fingerprint": "6e49c45bbbe2ed86", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-db18b8a51e8996ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/assets/App-BmYjzprM.js:11"}, "properties": {"repobilityId": "2207592beca755da", "scanner": "scanner-primary", "fingerprint": "db18b8a51e8996ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61d80a835b6a971e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12"}, "properties": {"repobilityId": "32cd19b15f15c059", "scanner": "scanner-primary", "fingerprint": "61d80a835b6a971e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca33ac39c9ebf0e1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195"}, "properties": {"repobilityId": "273a7ac6f08fa332", "scanner": "scanner-primary", "fingerprint": "ca33ac39c9ebf0e1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-25ac9bdaf1bd70f2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/servo/assets/index-IgVPJHNL.js:49"}, "properties": {"repobilityId": "17104721c683e1f1", "scanner": "scanner-primary", "fingerprint": "25ac9bdaf1bd70f2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-165fb9c1067e951e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DgqG957U.js:49"}, "properties": {"repobilityId": "d7cac57d0651e027", "scanner": "scanner-primary", "fingerprint": "165fb9c1067e951e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d908df4e89c7c25e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "properties": {"repobilityId": "7fbe690c14e0ae3f", "scanner": "scanner-primary", "fingerprint": "d908df4e89c7c25e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-57ed25d75ec387dd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S.js:49"}, "properties": {"repobilityId": "42b00d4d470c7b79", "scanner": "scanner-primary", "fingerprint": "57ed25d75ec387dd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-131292476ec425a2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "properties": {"repobilityId": "5890d5f0bdcce05d", "scanner": "scanner-primary", "fingerprint": "131292476ec425a2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ea55905acf847213", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "properties": {"repobilityId": "a4b84ec781b139c5", "scanner": "scanner-primary", "fingerprint": "ea55905acf847213", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fb7961b42d852667", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-F_YBNTdL.js:49"}, "properties": {"repobilityId": "f8b6eba33c846848", "scanner": "scanner-primary", "fingerprint": "fb7961b42d852667", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-52171d15887e3d4e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-DoaIS2Jb.js:49"}, "properties": {"repobilityId": "575d026bb4c6ac43", "scanner": "scanner-primary", "fingerprint": "52171d15887e3d4e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d1f6b8bf6b213887", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "properties": {"repobilityId": "57a6fb59979a414d", "scanner": "scanner-primary", "fingerprint": "d1f6b8bf6b213887", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-38c0d25b6efaf8b2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-Bq2QpPdj.js:49"}, "properties": {"repobilityId": "5dcd69035196a378", "scanner": "scanner-primary", "fingerprint": "38c0d25b6efaf8b2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-255e30f2ea7d7919", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "properties": {"repobilityId": "92b7220230e06c5b", "scanner": "scanner-primary", "fingerprint": "255e30f2ea7d7919", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-356b601ce7f3d84d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-jjAchhLg.js:49"}, "properties": {"repobilityId": "c31cc6541a68922a", "scanner": "scanner-primary", "fingerprint": "356b601ce7f3d84d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eedee03bb154f887", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 public/ELW/assets/index-C99C1-Z9.js:49"}, "properties": {"repobilityId": "24036b6847f47ee5", "scanner": "scanner-primary", "fingerprint": "eedee03bb154f887", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3ff6e258baa2f2eb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/AppBuilderStudio.jsx:1639"}, "properties": {"repobilityId": "a1b141b72bbe7900", "scanner": "scanner-primary", "fingerprint": "3ff6e258baa2f2eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03a561d041c18d54", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/LimitlessCreditGPS.jsx:210"}, "properties": {"repobilityId": "dffa9bd76b09755b", "scanner": "scanner-primary", "fingerprint": "03a561d041c18d54", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-a865d3ff4835917a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/MelbourneWebStudioPage.tsx:1700"}, "properties": {"repobilityId": "32b10dc246d1379a", "scanner": "scanner-primary", "fingerprint": "a865d3ff4835917a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cf63061a44bf02f4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/MelbourneWebStudioPage.tsx:3104"}, "properties": {"repobilityId": "b2ff58b481af8d2a", "scanner": "scanner-primary", "fingerprint": "cf63061a44bf02f4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3174165655d1bda2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/AlarmClock.jsx:2086"}, "properties": {"repobilityId": "8e11835c4384f724", "scanner": "scanner-primary", "fingerprint": "3174165655d1bda2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d825dcf41f30df63", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/AlarmClock.jsx:17"}, "properties": {"repobilityId": "aa49f98470662065", "scanner": "scanner-primary", "fingerprint": "d825dcf41f30df63", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-554e2b83428d5cc9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/fundmanager-data.js:637"}, "properties": {"repobilityId": "83744a9fbb1b8e0a", "scanner": "scanner-primary", "fingerprint": "554e2b83428d5cc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/fundmanager-data.js"}, "region": {"startLine": 637}}}]}, {"ruleId": "scanner-b5cce110f4c681a2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in api/_lib/openclaw-data.js:4"}, "properties": {"repobilityId": "1ceb4aaf25c10726", "scanner": "scanner-primary", "fingerprint": "b5cce110f4c681a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/_lib/openclaw-data.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-fb2258de7420df24", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DgqG957U.js:49"}, "properties": {"repobilityId": "ff56f3252e92f671", "scanner": "scanner-primary", "fingerprint": "fb2258de7420df24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-DgqG957U.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-ef77434e19fbc2fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DgqG957U.js:48"}, "properties": {"repobilityId": "bb87367f76607377", "scanner": "scanner-primary", "fingerprint": "ef77434e19fbc2fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-DgqG957U.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-e46ea86d8dd1fc58", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "properties": {"repobilityId": "6792fc02d47d45dc", "scanner": "scanner-primary", "fingerprint": "e46ea86d8dd1fc58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg-lisa-exact.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-58dc9675641207d2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "properties": {"repobilityId": "961b2b184aa2d2df", "scanner": "scanner-primary", "fingerprint": "58dc9675641207d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg-lisa-exact.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-e7811ffc06f0cd5a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S.js:49"}, "properties": {"repobilityId": "8f324049a8e1d34a", "scanner": "scanner-primary", "fingerprint": "e7811ffc06f0cd5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-BIQb1w8S.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-2b8f2e95ed218e6c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S.js:48"}, "properties": {"repobilityId": "894dee0f92497a9e", "scanner": "scanner-primary", "fingerprint": "2b8f2e95ed218e6c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-BIQb1w8S.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-338c8e75a6da67d2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "properties": {"repobilityId": "da519ea405f6e41c", "scanner": "scanner-primary", "fingerprint": "338c8e75a6da67d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-79bbd0df01d26e42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "properties": {"repobilityId": "c28815c43d5caaed", "scanner": "scanner-primary", "fingerprint": "79bbd0df01d26e42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-7cce94eeeeab15c7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "properties": {"repobilityId": "5d24e600cc4bfc06", "scanner": "scanner-primary", "fingerprint": "7cce94eeeeab15c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-BIQb1w8S-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-eb2e3735a6d75a54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "properties": {"repobilityId": "346f260eadf795a3", "scanner": "scanner-primary", "fingerprint": "eb2e3735a6d75a54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-BIQb1w8S-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-c9be4feec047e7d2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-F_YBNTdL.js:49"}, "properties": {"repobilityId": "33d699a393a2864c", "scanner": "scanner-primary", "fingerprint": "c9be4feec047e7d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-F_YBNTdL.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-3718e55b683a56dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-F_YBNTdL.js:48"}, "properties": {"repobilityId": "ed4bb38ec5127aaf", "scanner": "scanner-primary", "fingerprint": "3718e55b683a56dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-F_YBNTdL.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-9877a0225476472b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-DoaIS2Jb.js:49"}, "properties": {"repobilityId": "b724dc4fdab60c14", "scanner": "scanner-primary", "fingerprint": "9877a0225476472b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-DoaIS2Jb.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-e0151ce49281bf7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-DoaIS2Jb.js:48"}, "properties": {"repobilityId": "1f550bdc13eac832", "scanner": "scanner-primary", "fingerprint": "e0151ce49281bf7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-DoaIS2Jb.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-27b608a7aaa90a83", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "properties": {"repobilityId": "127b904697ca0639", "scanner": "scanner-primary", "fingerprint": "27b608a7aaa90a83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-723a23d4a59d6d26", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "properties": {"repobilityId": "f2ead81d238f7bec", "scanner": "scanner-primary", "fingerprint": "723a23d4a59d6d26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-fb5c3a74c80fc4f6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-Bq2QpPdj.js:49"}, "properties": {"repobilityId": "e1e2e3d73768a37a", "scanner": "scanner-primary", "fingerprint": "fb5c3a74c80fc4f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-Bq2QpPdj.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-ad7e808ce550aa29", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-Bq2QpPdj.js:48"}, "properties": {"repobilityId": "e86d09fe1c2db8b6", "scanner": "scanner-primary", "fingerprint": "ad7e808ce550aa29", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-Bq2QpPdj.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-d6bf2dc82c485558", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "properties": {"repobilityId": "a783b3f409532250", "scanner": "scanner-primary", "fingerprint": "d6bf2dc82c485558", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-C99C1-Z9-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-aa5ffc503eff16d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "properties": {"repobilityId": "0c45b88d981c5446", "scanner": "scanner-primary", "fingerprint": "aa5ffc503eff16d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-C99C1-Z9-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-cfd63ba48ae0cf12", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-jjAchhLg.js:49"}, "properties": {"repobilityId": "63185f2a161ffa20", "scanner": "scanner-primary", "fingerprint": "cfd63ba48ae0cf12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-eaec485ed8c32eb8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-jjAchhLg.js:48"}, "properties": {"repobilityId": "55251a369d23da4e", "scanner": "scanner-primary", "fingerprint": "eaec485ed8c32eb8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-jjAchhLg.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-83ced9c117c4e8c5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/ELW/assets/index-C99C1-Z9.js:49"}, "properties": {"repobilityId": "edc3e8ee653d2336", "scanner": "scanner-primary", "fingerprint": "83ced9c117c4e8c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-C99C1-Z9.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-d32f42b7d968b8b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ELW/assets/index-C99C1-Z9.js:48"}, "properties": {"repobilityId": "8eaba4114034b4d3", "scanner": "scanner-primary", "fingerprint": "d32f42b7d968b8b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ELW/assets/index-C99C1-Z9.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-dc3ce9d30f0faab2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/assets/index-DdU8sS1H.js:38"}, "properties": {"repobilityId": "bab475a3ba0a181c", "scanner": "scanner-primary", "fingerprint": "dc3ce9d30f0faab2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/assets/index-DdU8sS1H.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-3f71507e71086b79", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js:195"}, "properties": {"repobilityId": "0d69269b152d0ed2", "scanner": "scanner-primary", "fingerprint": "3f71507e71086b79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/assets/MelbourneWebStudioPage-Bn0A4HZZ.js"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-fc9decd85a6bcb91", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in docs/assets/AppBuilderStudio-Cll0IYu5.js:32"}, "properties": {"repobilityId": "77f6385cede825a9", "scanner": "scanner-primary", "fingerprint": "fc9decd85a6bcb91", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/assets/AppBuilderStudio-Cll0IYu5.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-1cd2d9cba4cc07d6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/servo/assets/index-IgVPJHNL.js:49"}, "properties": {"repobilityId": "9845192e96385668", "scanner": "scanner-primary", "fingerprint": "1cd2d9cba4cc07d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/servo/assets/index-IgVPJHNL.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-448f28bd3b15564d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/servo/assets/index-IgVPJHNL.js:48"}, "properties": {"repobilityId": "c52f673c285c79ff", "scanner": "scanner-primary", "fingerprint": "448f28bd3b15564d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/servo/assets/index-IgVPJHNL.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-23c351607c25e19e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/york/qualifier.js:109"}, "properties": {"repobilityId": "21de1006afb3f1f8", "scanner": "scanner-primary", "fingerprint": "23c351607c25e19e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/york/qualifier.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-89936874ccd404e6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/generate-silence.cjs:2"}, "properties": {"repobilityId": "0b4dab6ac1356490", "scanner": "scanner-primary", "fingerprint": "89936874ccd404e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-silence.cjs"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-be10d3fa2a6276f1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/generate-static-data.mjs:5"}, "properties": {"repobilityId": "f05a62c17a0b03f6", "scanner": "scanner-primary", "fingerprint": "be10d3fa2a6276f1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-static-data.mjs"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-31a6345d2d227f72", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/publish-fundmanager-live.mjs:5"}, "properties": {"repobilityId": "48f9eff542875a64", "scanner": "scanner-primary", "fingerprint": "31a6345d2d227f72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/publish-fundmanager-live.mjs"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-9dd6b837e1466b97", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eb28-seo-daily-review.mjs:9"}, "properties": {"repobilityId": "fc36fbd231f22be0", "scanner": "scanner-primary", "fingerprint": "9dd6b837e1466b97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eb28-seo-daily-review.mjs"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-b51929605e66b354", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-site.mjs:3"}, "properties": {"repobilityId": "97ab21fa7304036f", "scanner": "scanner-primary", "fingerprint": "b51929605e66b354", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-site.mjs"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-7b5a9f3280d578c5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DgqG957U.js:49"}, "properties": {"repobilityId": "a2e022539c3c9bd2", "scanner": "scanner-primary", "fingerprint": "7b5a9f3280d578c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-DgqG957U.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-2c3b7a871ff832b7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DgqG957U.js:48"}, "properties": {"repobilityId": "9fa26f3f9cc691ae", "scanner": "scanner-primary", "fingerprint": "2c3b7a871ff832b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-DgqG957U.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-7dfb0cf95dc19aa3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:49"}, "properties": {"repobilityId": "60113d6efc6b5b0d", "scanner": "scanner-primary", "fingerprint": "7dfb0cf95dc19aa3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg-lisa-exact.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-1cac64d073b6df77", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "properties": {"repobilityId": "d5f4f54544a69771", "scanner": "scanner-primary", "fingerprint": "1cac64d073b6df77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg-lisa-exact.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-4c8e4e57d49e5457", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S.js:49"}, "properties": {"repobilityId": "e9417dc06a744a5a", "scanner": "scanner-primary", "fingerprint": "4c8e4e57d49e5457", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-BIQb1w8S.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-5ba896a091e2a4c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S.js:48"}, "properties": {"repobilityId": "c8c7dabe2a32b8b2", "scanner": "scanner-primary", "fingerprint": "5ba896a091e2a4c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-BIQb1w8S.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-c42ed6ae5a5a3a28", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:49"}, "properties": {"repobilityId": "a6371b69d5bb2983", "scanner": "scanner-primary", "fingerprint": "c42ed6ae5a5a3a28", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-cec584007f702215", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "properties": {"repobilityId": "671d3c17e2645722", "scanner": "scanner-primary", "fingerprint": "cec584007f702215", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-11405ef7c4345a81", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:49"}, "properties": {"repobilityId": "8c5159bfebe6bb63", "scanner": "scanner-primary", "fingerprint": "11405ef7c4345a81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-BIQb1w8S-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-0d20f6122f39426e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "properties": {"repobilityId": "51ada41c61c21d47", "scanner": "scanner-primary", "fingerprint": "0d20f6122f39426e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-BIQb1w8S-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-352766d512351d75", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-F_YBNTdL.js:49"}, "properties": {"repobilityId": "042d12f6a95a3935", "scanner": "scanner-primary", "fingerprint": "352766d512351d75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-F_YBNTdL.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-62b9cb9074b9d551", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-F_YBNTdL.js:48"}, "properties": {"repobilityId": "8daee70a835fd68c", "scanner": "scanner-primary", "fingerprint": "62b9cb9074b9d551", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-F_YBNTdL.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-2214333a012c7d57", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-DoaIS2Jb.js:49"}, "properties": {"repobilityId": "2a976918ac2cdaf8", "scanner": "scanner-primary", "fingerprint": "2214333a012c7d57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-DoaIS2Jb.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-b6a99ea2d555c91d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-DoaIS2Jb.js:48"}, "properties": {"repobilityId": "2a32203383b2455b", "scanner": "scanner-primary", "fingerprint": "b6a99ea2d555c91d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-DoaIS2Jb.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-47bc5b6beec9a3ac", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:49"}, "properties": {"repobilityId": "5c13612063bc800e", "scanner": "scanner-primary", "fingerprint": "47bc5b6beec9a3ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-Bq2QpPdj-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-a8ef7826efff97d3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "properties": {"repobilityId": "a5979ffe43d26587", "scanner": "scanner-primary", "fingerprint": "a8ef7826efff97d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-Bq2QpPdj-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-ab0ecc2cd381653e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-Bq2QpPdj.js:49"}, "properties": {"repobilityId": "027a64be5de4d017", "scanner": "scanner-primary", "fingerprint": "ab0ecc2cd381653e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-Bq2QpPdj.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-da850d81d7ecb169", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-Bq2QpPdj.js:48"}, "properties": {"repobilityId": "834bfa8a1a61a08d", "scanner": "scanner-primary", "fingerprint": "da850d81d7ecb169", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-Bq2QpPdj.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-058b87ee438c7b94", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:49"}, "properties": {"repobilityId": "9d582f37ac62e046", "scanner": "scanner-primary", "fingerprint": "058b87ee438c7b94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-C99C1-Z9-lisa-lock.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-2f363531b1d61671", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "properties": {"repobilityId": "64b0d34d512f0a4c", "scanner": "scanner-primary", "fingerprint": "2f363531b1d61671", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-C99C1-Z9-lisa-lock.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-86e92391683b95c8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-jjAchhLg.js:49"}, "properties": {"repobilityId": "7dd18b3a28018166", "scanner": "scanner-primary", "fingerprint": "86e92391683b95c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-04b44e06af4b5011", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-jjAchhLg.js:48"}, "properties": {"repobilityId": "d811544dba88c746", "scanner": "scanner-primary", "fingerprint": "04b44e06af4b5011", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-jjAchhLg.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-79a319a3fa373b4a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in public/ELW/assets/index-C99C1-Z9.js:49"}, "properties": {"repobilityId": "a52daf03e764b906", "scanner": "scanner-primary", "fingerprint": "79a319a3fa373b4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-C99C1-Z9.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-24792afb2a8a0624", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ELW/assets/index-C99C1-Z9.js:48"}, "properties": {"repobilityId": "b1ed0e0ec0b095b7", "scanner": "scanner-primary", "fingerprint": "24792afb2a8a0624", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ELW/assets/index-C99C1-Z9.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-0ccfcbf810e29a9b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/york/qualifier.js:109"}, "properties": {"repobilityId": "19c436ec81eaae2d", "scanner": "scanner-primary", "fingerprint": "0ccfcbf810e29a9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/york/qualifier.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-bf17fe9ee11032c5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/MelbourneWebStudioPage.tsx:3104"}, "properties": {"repobilityId": "3f29c5026d1aafe9", "scanner": "scanner-primary", "fingerprint": "bf17fe9ee11032c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/MelbourneWebStudioPage.tsx"}, "region": {"startLine": 3104}}}]}, {"ruleId": "scanner-1995405ff1c4bf4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "20b925077e717ce8", "scanner": "scanner-primary", "fingerprint": "1995405ff1c4bf4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eb28-organic-growth-cron.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-1995405ff1c4bf4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6d19ae7e08b20613", "scanner": "scanner-primary", "fingerprint": "1995405ff1c4bf4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eb28-organic-growth-cron.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-3dd7e8589cff7904", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "3cb3f6d6948a796d", "scanner": "scanner-primary", "fingerprint": "3dd7e8589cff7904", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eb28-organic-growth-cron.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ca31e22d7f04fd0", "level": "note", "message": {"text": "Very large file: src/AppBuilderStudio.jsx (2021 lines)"}, "properties": {"repobilityId": "cb640b5f5ffc0074", "scanner": "scanner-primary", "fingerprint": "0ca31e22d7f04fd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f07a244f32946c2", "level": "note", "message": {"text": "Very large file: src/ThomasCustomHomesHomepageClassic.jsx (1997 lines)"}, "properties": {"repobilityId": "a50960f44392ea0c", "scanner": "scanner-primary", "fingerprint": "4f07a244f32946c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-912afa7fc221f6d9", "level": "note", "message": {"text": "Very large file: src/LimitlessCreditGPS.jsx (1283 lines)"}, "properties": {"repobilityId": "746bdfd0a3764c12", "scanner": "scanner-primary", "fingerprint": "912afa7fc221f6d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cd756773314a9481", "level": "note", "message": {"text": "Very large file: src/App.jsx (972 lines)"}, "properties": {"repobilityId": "a59a84e7052cf35b", "scanner": "scanner-primary", "fingerprint": "cd756773314a9481", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e6ec9c70f4df127", "level": "note", "message": {"text": "Very large file: src/FundManager.jsx (1190 lines)"}, "properties": {"repobilityId": "f95b7db41c2fd12b", "scanner": "scanner-primary", "fingerprint": "6e6ec9c70f4df127", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b0b2325373e642e1", "level": "note", "message": {"text": "Very large file: src/MelbourneWebStudioPage.tsx (4221 lines)"}, "properties": {"repobilityId": "ba7faaa140a9704f", "scanner": "scanner-primary", "fingerprint": "b0b2325373e642e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c6518c4ee428288a", "level": "note", "message": {"text": "Very large file: src/AlarmClock.jsx (2673 lines)"}, "properties": {"repobilityId": "370d8bd06aed2cc9", "scanner": "scanner-primary", "fingerprint": "c6518c4ee428288a", "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-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "fb1d387139282382", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "288fa4e3b7f49f74", "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": "456e64f79c87b9aa", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "b1706cf6356b9bff", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "2db57fdf4c9655fe", "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": "0ffeb44a26780790", "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": "1386c296b0a5c73f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-6ec9202af00ad6bc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 ops/scripts/fundmanager_watchdog.py:44"}, "properties": {"repobilityId": "8a67164b87fb26cd", "scanner": "scanner-primary", "fingerprint": "6ec9202af00ad6bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f3bd1cb8bcfb035c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 ops/recon-agent/recon-agent.mjs:56"}, "properties": {"repobilityId": "2b7fed7da60b1e81", "scanner": "scanner-primary", "fingerprint": "f3bd1cb8bcfb035c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc904c5b3250629f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/appbuilder-build.js:915"}, "properties": {"repobilityId": "0999f74ae0fdc31e", "scanner": "scanner-primary", "fingerprint": "dc904c5b3250629f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c49f9a838cf2993c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/submit-lead.js:45"}, "properties": {"repobilityId": "dba005ca71376236", "scanner": "scanner-primary", "fingerprint": "c49f9a838cf2993c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a98ea21fe1a2e43", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DgqG957U.js:48"}, "properties": {"repobilityId": "54378568204d4b13", "scanner": "scanner-primary", "fingerprint": "3a98ea21fe1a2e43", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-392a89d7b99b5d7d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DgqG957U.js:1"}, "properties": {"repobilityId": "fd2b8be6d9317cde", "scanner": "scanner-primary", "fingerprint": "392a89d7b99b5d7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79a73a5f7f1b04c6", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "properties": {"repobilityId": "f7f0e9e21b735094", "scanner": "scanner-primary", "fingerprint": "79a73a5f7f1b04c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-edbf8d3fffd67e21", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-exact.js:1"}, "properties": {"repobilityId": "3f4d2dd99b2eedc0", "scanner": "scanner-primary", "fingerprint": "edbf8d3fffd67e21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85e2712f197b4b01", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S.js:48"}, "properties": {"repobilityId": "8f8a036b1c1c2a16", "scanner": "scanner-primary", "fingerprint": "85e2712f197b4b01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f21e61beb2915f1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S.js:1"}, "properties": {"repobilityId": "d91b9cf2eaac6480", "scanner": "scanner-primary", "fingerprint": "f21e61beb2915f1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7a87b93b3293f76e", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "properties": {"repobilityId": "65df2ef5083b32d1", "scanner": "scanner-primary", "fingerprint": "7a87b93b3293f76e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6739b2b7b932d699", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg-lisa-lock.js:1"}, "properties": {"repobilityId": "6fc40d719ae09669", "scanner": "scanner-primary", "fingerprint": "6739b2b7b932d699", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-06b2b5ab72e8eba6", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "properties": {"repobilityId": "82b3d74cefc1cb3c", "scanner": "scanner-primary", "fingerprint": "06b2b5ab72e8eba6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-721c3d32e112cc7e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-BIQb1w8S-lisa-lock.js:1"}, "properties": {"repobilityId": "95564c3ce3323a23", "scanner": "scanner-primary", "fingerprint": "721c3d32e112cc7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-911f60aeb1c68f35", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-F_YBNTdL.js:48"}, "properties": {"repobilityId": "50fe6e54b409c2fc", "scanner": "scanner-primary", "fingerprint": "911f60aeb1c68f35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c09291acfef8bd02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-F_YBNTdL.js:1"}, "properties": {"repobilityId": "fa7741637313cfc4", "scanner": "scanner-primary", "fingerprint": "c09291acfef8bd02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b89ecf25b09630d", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-DoaIS2Jb.js:48"}, "properties": {"repobilityId": "765c8ae223a1e457", "scanner": "scanner-primary", "fingerprint": "4b89ecf25b09630d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-85e66e5f618b7c56", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-DoaIS2Jb.js:1"}, "properties": {"repobilityId": "61cc7551b3d62a5b", "scanner": "scanner-primary", "fingerprint": "85e66e5f618b7c56", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9908bf96f48ba56e", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "properties": {"repobilityId": "52a77ce32e41e25b", "scanner": "scanner-primary", "fingerprint": "9908bf96f48ba56e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4856038edbb42f08", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1"}, "properties": {"repobilityId": "3f92e214554771a1", "scanner": "scanner-primary", "fingerprint": "4856038edbb42f08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8de754a35c0909d3", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-Bq2QpPdj.js:48"}, "properties": {"repobilityId": "af07174238928b7d", "scanner": "scanner-primary", "fingerprint": "8de754a35c0909d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2bc0a61dd614dd1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-Bq2QpPdj.js:1"}, "properties": {"repobilityId": "37d7f203c1d207c2", "scanner": "scanner-primary", "fingerprint": "2bc0a61dd614dd1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e953bfcb38eb37a", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "properties": {"repobilityId": "7b40e165f81c997a", "scanner": "scanner-primary", "fingerprint": "3e953bfcb38eb37a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f0381bbacc056ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9-lisa-lock.js:1"}, "properties": {"repobilityId": "256b1760411e9d36", "scanner": "scanner-primary", "fingerprint": "3f0381bbacc056ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-89dbb5a2582908c4", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-jjAchhLg.js:48"}, "properties": {"repobilityId": "7f5a02786fff68f2", "scanner": "scanner-primary", "fingerprint": "89dbb5a2582908c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-30ded091727fbbc2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-jjAchhLg.js:1"}, "properties": {"repobilityId": "400246e96c534034", "scanner": "scanner-primary", "fingerprint": "30ded091727fbbc2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ee4a7942a1b1e837", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/ELW/assets/index-C99C1-Z9.js:48"}, "properties": {"repobilityId": "585c9774fc3d1bb2", "scanner": "scanner-primary", "fingerprint": "ee4a7942a1b1e837", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-485eae6c00644a76", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/ELW/assets/index-C99C1-Z9.js:1"}, "properties": {"repobilityId": "21576d8b331061da", "scanner": "scanner-primary", "fingerprint": "485eae6c00644a76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7031afea5eb0febe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/CadetCatch-DcP0fC7t.js:36"}, "properties": {"repobilityId": "0fe979ddce7c02b3", "scanner": "scanner-primary", "fingerprint": "7031afea5eb0febe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f45316063322ab6b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/index-DdU8sS1H.js:2"}, "properties": {"repobilityId": "36ed59990bf6c4a9", "scanner": "scanner-primary", "fingerprint": "f45316063322ab6b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8ec645c3b9b8eb3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/App-BmYjzprM.js:91"}, "properties": {"repobilityId": "12c788a0c37e4631", "scanner": "scanner-primary", "fingerprint": "8ec645c3b9b8eb3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79bd3bc11bc0afa7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AlarmClock-Dc_mA7u1.js:12"}, "properties": {"repobilityId": "b9964eed9fb8a720", "scanner": "scanner-primary", "fingerprint": "79bd3bc11bc0afa7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-190be531dc64d3b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/Dashboard-DUcffa_u.js:16"}, "properties": {"repobilityId": "e84a6c7f9376720c", "scanner": "scanner-primary", "fingerprint": "190be531dc64d3b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-986656ce41a246b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/WelcomePage-C0EeVLbn.js:1"}, "properties": {"repobilityId": "b9a3e5e4c7602541", "scanner": "scanner-primary", "fingerprint": "986656ce41a246b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-979b57d07ff42af4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ThomasCustomHomesPage-B0EgpFF5.js:21"}, "properties": {"repobilityId": "6207c257cd16aaa1", "scanner": "scanner-primary", "fingerprint": "979b57d07ff42af4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8bb94fe622a6f95", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/FundManager-DxOpXgEH.js:1"}, "properties": {"repobilityId": "166223cf96310c81", "scanner": "scanner-primary", "fingerprint": "f8bb94fe622a6f95", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db3b2bc8286cc268", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/AppBuilderStudio-Cll0IYu5.js:39"}, "properties": {"repobilityId": "28a0c21913ecd12c", "scanner": "scanner-primary", "fingerprint": "db3b2bc8286cc268", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e62e2094bdd3414c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/assets/ReconAgentPage-DScuPWjR.js:1"}, "properties": {"repobilityId": "8d2b6a53ff45f48d", "scanner": "scanner-primary", "fingerprint": "e62e2094bdd3414c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9a2b7c518ad2e0c6", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in docs/servo/assets/index-IgVPJHNL.js:48"}, "properties": {"repobilityId": "4e5fc824dd7dae61", "scanner": "scanner-primary", "fingerprint": "9a2b7c518ad2e0c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bcc0055f73f8b847", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/servo/assets/index-IgVPJHNL.js:1"}, "properties": {"repobilityId": "8d145d6e3e201389", "scanner": "scanner-primary", "fingerprint": "bcc0055f73f8b847", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdd2fb195ee0d201", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/update-ugcma-dashboard-feed.py:504"}, "properties": {"repobilityId": "2ffb4881370b39a7", "scanner": "scanner-primary", "fingerprint": "cdd2fb195ee0d201", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79bb1cbe0d3c4076", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-eb28-blog.mjs:470"}, "properties": {"repobilityId": "ee09acf3a5d099d1", "scanner": "scanner-primary", "fingerprint": "79bb1cbe0d3c4076", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63c09c6997ed904d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-fundmanager-live.mjs:56"}, "properties": {"repobilityId": "3844f0c393869830", "scanner": "scanner-primary", "fingerprint": "63c09c6997ed904d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11e402319a929723", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DgqG957U.js:48"}, "properties": {"repobilityId": "6acf234af8063d65", "scanner": "scanner-primary", "fingerprint": "11e402319a929723", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4b2dd4f55006455a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DgqG957U.js:1"}, "properties": {"repobilityId": "bb7508c3dbec8955", "scanner": "scanner-primary", "fingerprint": "4b2dd4f55006455a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-696df3790d4fd5f9", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-exact.js:48"}, "properties": {"repobilityId": "42fe136aeb7048bc", "scanner": "scanner-primary", "fingerprint": "696df3790d4fd5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-78beed4e3371359c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-exact.js:1"}, "properties": {"repobilityId": "14fef29e3474d091", "scanner": "scanner-primary", "fingerprint": "78beed4e3371359c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c649f36c2f77d5ce", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S.js:48"}, "properties": {"repobilityId": "a07be9b07d84f048", "scanner": "scanner-primary", "fingerprint": "c649f36c2f77d5ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b7723782e1ab47cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S.js:1"}, "properties": {"repobilityId": "8863e1ba2f104f5a", "scanner": "scanner-primary", "fingerprint": "b7723782e1ab47cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d40057b8b53bd993", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg-lisa-lock.js:48"}, "properties": {"repobilityId": "2c6029cee9791e22", "scanner": "scanner-primary", "fingerprint": "d40057b8b53bd993", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f92dc4b923e52764", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg-lisa-lock.js:1"}, "properties": {"repobilityId": "fb4e4bf6e0661cba", "scanner": "scanner-primary", "fingerprint": "f92dc4b923e52764", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f9fa7a6fe36f4b84", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-BIQb1w8S-lisa-lock.js:48"}, "properties": {"repobilityId": "61ffcc9afc488494", "scanner": "scanner-primary", "fingerprint": "f9fa7a6fe36f4b84", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea73f9f2a804e662", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-BIQb1w8S-lisa-lock.js:1"}, "properties": {"repobilityId": "0e01ce515eff1585", "scanner": "scanner-primary", "fingerprint": "ea73f9f2a804e662", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a151d56a43ece9b", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-F_YBNTdL.js:48"}, "properties": {"repobilityId": "a3608ffc14a3172b", "scanner": "scanner-primary", "fingerprint": "2a151d56a43ece9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3be49e5b71b35c1f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-F_YBNTdL.js:1"}, "properties": {"repobilityId": "c3cafa2f6e39c437", "scanner": "scanner-primary", "fingerprint": "3be49e5b71b35c1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-783fd1b52b8f9b04", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-DoaIS2Jb.js:48"}, "properties": {"repobilityId": "209a94d38dce9b86", "scanner": "scanner-primary", "fingerprint": "783fd1b52b8f9b04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a9eea4c628bd8757", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-DoaIS2Jb.js:1"}, "properties": {"repobilityId": "9768e74619726951", "scanner": "scanner-primary", "fingerprint": "a9eea4c628bd8757", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5f6e154b5969f5d0", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:48"}, "properties": {"repobilityId": "29b89621f704dfec", "scanner": "scanner-primary", "fingerprint": "5f6e154b5969f5d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d2c09505ab0e06b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj-lisa-lock.js:1"}, "properties": {"repobilityId": "d7a095476c38d481", "scanner": "scanner-primary", "fingerprint": "5d2c09505ab0e06b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ae597d33d3458a5", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-Bq2QpPdj.js:48"}, "properties": {"repobilityId": "4182bc76ad30d48c", "scanner": "scanner-primary", "fingerprint": "6ae597d33d3458a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4b50381e10ad3c48", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-Bq2QpPdj.js:1"}, "properties": {"repobilityId": "fab94c2db1cc055b", "scanner": "scanner-primary", "fingerprint": "4b50381e10ad3c48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33065b2aa9e8442e", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9-lisa-lock.js:48"}, "properties": {"repobilityId": "845796c73b96ac64", "scanner": "scanner-primary", "fingerprint": "33065b2aa9e8442e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ebb8899bb2724a9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9-lisa-lock.js:1"}, "properties": {"repobilityId": "44f30222c916c6ad", "scanner": "scanner-primary", "fingerprint": "ebb8899bb2724a9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc98fc5fee9b98a5", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-jjAchhLg.js:48"}, "properties": {"repobilityId": "5ba05480ba6d737a", "scanner": "scanner-primary", "fingerprint": "bc98fc5fee9b98a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f89cb68b2b2a581c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-jjAchhLg.js:1"}, "properties": {"repobilityId": "1ecd04637efcd558", "scanner": "scanner-primary", "fingerprint": "f89cb68b2b2a581c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed38005152d91a1f", "level": "note", "message": {"text": "Legacy-named symbol `unstable_legacy` in public/ELW/assets/index-C99C1-Z9.js:48"}, "properties": {"repobilityId": "4790554a40197c50", "scanner": "scanner-primary", "fingerprint": "ed38005152d91a1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-809bc155ddf61935", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/ELW/assets/index-C99C1-Z9.js:1"}, "properties": {"repobilityId": "8fb5b9e552639524", "scanner": "scanner-primary", "fingerprint": "809bc155ddf61935", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-83a86e4319777fe6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ReconAgentPage.jsx:181"}, "properties": {"repobilityId": "e5bf0248f6e1cb02", "scanner": "scanner-primary", "fingerprint": "83a86e4319777fe6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0cffa11cb5d68dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/fundmanagerMeta.js:122"}, "properties": {"repobilityId": "339da039f581a4a8", "scanner": "scanner-primary", "fingerprint": "d0cffa11cb5d68dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-859473cb1ad9ba7d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/CadetCatch.jsx:184"}, "properties": {"repobilityId": "2ba572f48afbc6e7", "scanner": "scanner-primary", "fingerprint": "859473cb1ad9ba7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-66ea59dca848cffc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/AlarmClock.jsx:845"}, "properties": {"repobilityId": "8ec1980a071c409b", "scanner": "scanner-primary", "fingerprint": "66ea59dca848cffc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef22fd58bfde6f76", "level": "note", "message": {"text": "51 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "3022eac3b673b267", "scanner": "scanner-primary", "fingerprint": "ef22fd58bfde6f76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "29a5c8698564733a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7c55be69b940c8b4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "09b1051a9d703737", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "77891016beb02351", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3ce2645e88b2ae10", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}