{"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: VictorNavasH/newsmartapp", "shortDescription": {"text": "Foundry mined unresolved feedback: VictorNavasH/newsmartapp"}, "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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#1\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 44\nNode types: {'pr_file': 6, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: VictorNavasH/newsmartapp", "shortDescription": {"text": "Foundry mined blueprint gap alignment: VictorNavasH/newsmartapp"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_c"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: VictorNavasH/newsmartapp", "shortDescription": {"text": "Foundry mined assumption checks: VictorNavasH/newsmartapp"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'security_auth_secret': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 1, 'docs_or_claims': 4, 'source_or_other': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c89f5ec33c61ca88\",\n    \"kind\": \"pull_reque"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: VictorNavasH/newsmartapp", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: VictorNavasH/newsmartapp"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'comment': 2, 'commen"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: VictorNavasH/newsmartapp", "shortDescription": {"text": "Foundry mined mock as real or placeholder: VictorNavasH/newsmartapp"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, '"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"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-5e5156654d2dc80a", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-supabase-connection.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-supabase-connection.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34af45479180737c", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-turnos.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-turnos.ts:13"}, "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-e14a17d70c167bbd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:49"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c65ac6099a34cea5", "name": "`truncate` class without `title=` for hover reveal \u2014 components/features/FoodCostTab.tsx:596", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/features/FoodCostTab.tsx:596"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ce7fabb6cfe8ca8", "name": "`truncate` class without `title=` for hover reveal \u2014 components/features/BenchmarksTab.tsx:360", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/features/BenchmarksTab.tsx:360"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d6e916fbc6d805b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/FacturacionPage.tsx:711", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/FacturacionPage.tsx:711"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcec618d67c4132d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/ProductsPage.tsx:1158", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/ProductsPage.tsx:1158"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffc32d163fc62d15", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/OperationsPage.tsx:593", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/OperationsPage.tsx:593"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4b3550ed13f78a7", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/IncomePage.tsx:865", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/IncomePage.tsx:865"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07e9080f8287fc7b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/SettingsPage.tsx:373", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/SettingsPage.tsx:373"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7614be5735bb55e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/AgentPage.tsx:434", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/AgentPage.tsx:434"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ad513ae16793316", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasPedidosTab.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasPedidosTab.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ba1183699247e98", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasAnalisisTab.tsx:450", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasAnalisisTab.tsx:450"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36b0566effbe4ea9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankResumenTab.tsx:218", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankResumenTab.tsx:218"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c210a9bfe1c96e85", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankMovimientosTab.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankMovimientosTab.tsx:95"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca0df4a932f29740", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/personal/AusenciasTab.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/personal/AusenciasTab.tsx:53"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42e4b3b700792af3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesProveedorTab.tsx:293", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesProveedorTab.tsx:293"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed71a69b546c1dc9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCalendarioTab.tsx:171", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCalendarioTab.tsx:171"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e48f37b8e22d3315", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCategoriaTab.tsx:529", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCategoriaTab.tsx:529"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62a5940d97e95f25", "name": "`truncate` class without `title=` for hover reveal \u2014 components/views/treasury/TreasuryMovimientosTab.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/treasury/TreasuryMovimientosTab.tsx:105"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6c0dcacb6a7c270", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:59", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:59"}, "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-10511779d945c733", "name": "TODO/FIXME marker in shipping code \u2014 lib/hermesService.ts:14", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/hermesService.ts:14"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9fbc619218e1ee50", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:342", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:342"}, "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-cff595a3f829d334", "name": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankResumenTab.tsx:206", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankResumenTab.tsx:206"}, "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-e308a72ce3fc05a8", "name": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankConnectSheet.tsx:171", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankConnectSheet.tsx:171"}, "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-00b94290eda2fd4f", "name": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:59", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:59"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bde15dfeb0bd457c", "name": "Very large file: components/views/FacturacionPage.tsx (1301 lines)", "shortDescription": {"text": "Very large file: components/views/FacturacionPage.tsx (1301 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-f9ba055d6ca30550", "name": "Very large file: components/views/ProductsPage.tsx (1347 lines)", "shortDescription": {"text": "Very large file: components/views/ProductsPage.tsx (1347 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-758d22ac482c1481", "name": "Very large file: components/views/DashboardPage.tsx (1231 lines)", "shortDescription": {"text": "Very large file: components/views/DashboardPage.tsx (1231 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-5c735afb381eae11", "name": "Very large file: lib/dataService.ts (1944 lines)", "shortDescription": {"text": "Very large file: lib/dataService.ts (1944 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": "13 test file(s) for 178 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 49 placeholder/mock markers across 21 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0af42de38736b3e1", "name": "Commented-code block (6 lines) in components/views/IncomePage.tsx:265", "shortDescription": {"text": "Commented-code block (6 lines) in components/views/IncomePage.tsx:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fb72f8e6aadf055", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gocardless.ts:76", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gocardless.ts:76"}, "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-e779f5aab8c9b3a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dotykService.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dotykService.ts:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6e9b1a70f294c6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:34"}, "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}}]}}, "automationDetails": {"id": "repobility/22197"}, "properties": {"repository": "VictorNavasH/newsmartapp", "repoUrl": "https://github.com/VictorNavasH/newsmartapp", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 361800, "scanner": "foundry_dataset", "fingerprint": "a87df1420ed55a92bf5ca12e152fc419f06dfe9be5a19825ea8ac7b716e4501e", "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": {"docs_or_claims": 1, "ui_or_frontend": 3, "source_or_other": 2, "api_integration_gap": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 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": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 44, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "VictorNavasH/newsmartapp#1", "issue_number": "1", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-db0f48c7f515a1f6", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 5, "ui_or_frontend": 15, "source_or_other": 10}}, "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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#1\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 44\nNode types: {'pr_file': 6, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 12, 'thread_touches_file': 6, 'issue_chain_touches_file': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 3, 'ambiguous_needs_more_evidence': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'api_integration_gap': 1, 'docs_or_claims': 1, 'unlinked_human_feedback': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "graph-query-motif_query-2093d182b396e564", "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": "VictorNavasH/newsmartapp", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 345565, "scanner": "foundry_dataset", "fingerprint": "a26c5ea2818ed29266644dc3a442ec2910a2d50c5fe475d8b1eb5c036aeca851", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 4, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 4, "api_integration_gap": 1, "generated_provenance": 1, "security_auth_secret": 1, "mostly follows blueprint": 1, "self_attested_unverified": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"self_attested_unverified": 2, "claimed_resolved_unverified": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 62, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 9, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "VictorNavasH/newsmartapp#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-39e015ed0698b3ee", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 20, "ui_or_frontend": 5, "source_or_other": 20}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 4, 'source_or_other': 4, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'api_integration_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_fix_attempt': 1, 'generated_provenance': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, '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/VictorNavasH/newsmartapp", "source_id": "graph-query-motif_query-e683a0c8c1432dea", "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": "VictorNavasH/newsmartapp", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 345564, "scanner": "foundry_dataset", "fingerprint": "9fbfee44cca92d68c9ffe4855acfbb12250946e13b41331c2a03d8311152724e", "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": {"docs_or_claims": 1, "ui_or_frontend": 3, "source_or_other": 2, "api_integration_gap": 1, "human_feedback_general": 1, "unlinked_human_feedback": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 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": 2, "ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 44, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "thread": 1, "comment": 2, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "VictorNavasH/newsmartapp#1", "issue_number": "1", "quality_tiers": {"unresolved": 4, "assumption_check": 1}, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-9d20c45dc656373c", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 5, "ui_or_frontend": 15, "source_or_other": 10}}, "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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#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: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#1\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 21\nEdges: 44\nNode types: {'pr_file': 6, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 12, 'thread_touches_file': 6, 'issue_chain_touches_file': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'ui_or_frontend': 3, 'ambiguous_needs_more_evidence': 3, 'source_or_other': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'api_integration_gap': 1, 'docs_or_claims': 1, 'unlinked_human_feedback': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'unresolved': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "graph-query-motif_query-b43272c6ec891d83", "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": "VictorNavasH/newsmartapp", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 301263, "scanner": "foundry_dataset", "fingerprint": "775c59777979437935831eaaf2a266cc52318623c115f9374d95eaa992f254cc", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "VictorNavasH/newsmartapp#2", "human_labels": ["api_integration_gap", "docs_or_claims", "security_auth_secret", "source_or_other", "ui_or_frontend"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.8, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-8b77882ed17e469c", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 2, "schemas": 3, "routes_api": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 9, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 4}, "linked_commit_count": 6, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 5, "design_schema_api_artifact_count": 4}, "text": "Comment chain pattern product: assumption_checks\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 9\nLabels: {'security_auth_secret': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 1, 'docs_or_claims': 4, 'source_or_other': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c89f5ec33c61ca88\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/VictorNavasH/newsmartapp/pull/2\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: VictorNavasH/newsmartapp\\nAuthor: VictorNavasH (User)\\nURL: https://github.com/VictorNavasH/newsmartapp/pull/2\\nTitle: Rehacer pesta\u00f1a Food Cost de Smart Food\\nBody:\\nRehace la pesta\u00f1a **Food Cost** de Smart Food para reflejar el nuevo sistema de food cost (costes sincronizados con GStock + coste din\u00e1mico de opciones).\\n\\n## Cambios\\n- **Cabecera**: food cost **real ponderado por ventas 30d** (Global / Comida / Bebida) de `vw_food_cost_real`, con \u20ac de coste, \u20ac de venta y unidades. Nuevo hook `useFoodCostReal()`. Sustituye a la media simple.\\n- **Tabla por plato**: recoloreada con umbrales de marca (verde `#17c3b2` \u226430% \u00b7 \u00e1mbar `#ffcb77` \u226435% \u00b7 rojo `#fe6d73` >35%), coherente con Dashboard y Facturaci\u00f3n.\\n- **Receta GStock origen** + chip de estado de mapeo (`Coste parcial` / `Sin receta` / `Sin revisar`) en lugar de 0 \u20ac enga\u00f1oso.\\n- **Platos din\u00e1micos** (hummus, vinos, kids\u2026): badge \\\"Din\u00e1mico\\\" + desglose de opciones con **estimador interactivo** (marcas opciones \u2192 coste y food cost resultante). Opciones sin coste marcadas \\\"sin mapear\\\".\\n- **Limpieza de c\u00f3digo muerto**: `variant_id`, `precio_manual`, `food_cost_pe\"\n  },\n  {\n    \"id\": \"github-feedback-comment-dae729507e86dff0\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/VictorNavasH/newsmartapp/pull/2#issuecomment-4699877892\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: VictorNavasH/newsmartapp\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/VictorNavasH/newsmartapp/pull/2#issuecomment-4699877892\\nTitle: \\nBody:\\n[vc]: #6puaC/FcY/p1Im4GAzem5X9AnxJ3DiJWjUFHwwn0OGw=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "comment-chain-pattern-assumption_checks-93dc6fb5e85d0277", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "VictorNavasH/newsmartapp", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 301262, "scanner": "foundry_dataset", "fingerprint": "b35d35e508d5e623f320a7b83f7219e2d4aae62bf22b3fd28a89784c2f850600", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "VictorNavasH/newsmartapp#1", "human_labels": ["api_integration_gap", "docs_or_claims", "human_feedback_general", "source_or_other", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-38715cf7b996f3d4", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 2, "docs": 2, "schemas": 3, "routes_api": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1, "ui_or_frontend": 3, "source_or_other": 2}, "linked_commit_count": 0, "helicopter_view_count": 2, "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": 5, "design_schema_api_artifact_count": 4}, "text": "Comment chain pattern product: assumption_checks\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#1\nOutcome: ambiguous_needs_more_evidence\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: VictorNavasH/newsmartapp#1\nRepo: VictorNavasH/newsmartapp\nThread label: thread_has_human_issue_without_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'human_feedback_general': 1, 'api_integration_gap': 1}\nPolarities: {'neutral': 1, 'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'ui_or_frontend': 3, 'source_or_other': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-516fd00be56e2ee3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/VictorNavasH/newsmartapp/pull/1\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: VictorNavasH/newsmartapp\\nAuthor: VictorNavasH (User)\\nURL: https://github.com/VictorNavasH/newsmartapp/pull/1\\nTitle: Update project files\\nBody:\\nThis PR includes 37 commits with various updates and improvements.\\n\\nChat link: https://v0.app/chat/tK7g0peTsXI\"\n  },\n  {\n    \"id\": \"github-feedback-comment-b0a9aa2a2d705091\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/VictorNavasH/newsmartapp/pull/1#issuecomment-3802427443\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: VictorNavasH/newsmartapp\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/VictorNavasH/newsmartapp/pull/1#issuecomment-3802427443\\nTitle: \\nBody:\\n[vc]: #iCQzIOKTst3l2iB0Z71ZN1NOgoC4IHdfmbXOTJFJlXA=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJuZXdzbWFydGFwcCIsInByb2plY3RJZCI6InByal9nM05LWnFvNGFTUzlrVFM3OFpCb29kY2JBRElrIiwidjAiOnRydWUsImxpdmVGZWVkYmFjayI6eyJyZXNvbHZlZCI6MCwidW5yZXNvbHZlZCI6MCwidG90YWwiOjAsImxpbmsiOiJuZXdzbWFydGFwcC1naXQtdjAtbWFpbi0wYjI4MWIzNC1udWFzbWFydHByb2plY3RzLnZlcmNlbC5hcHAifSwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY29tL251YXNtYXJ0cHJvamVjdHMvbmV3c21hcnRhcHAvMTJTQzlweUZndjlIU1NzUEhodkRoUXlyTWVRTCIsInByZXZpZXdVcmwiOiJuZXdzbWFydGFwcC1naXQtdjAtbWFpbi0wYjI4MWIzNC1udWFzbWFydHByb2plY3RzLnZlcmNlbC5hcHAiLCJuZXh0Q29tbWl0U3RhdHVzIjoiREVQTE9ZRUQiLCJyb290RGlyZWN0b3J5IjpudWxsfV19\\nThe latest updates on your projects. Learn more about [Vercel for GitHub](https://vercel.link/github-learn-more).\\n\\n| Project | Deployment | Actions | Updated (UTC) |\\n| :--- | :----- | :------ | :------ |\\n| [newsmartapp](https://vercel.com/nuasmartprojects/newsmarta\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "comment-chain-pattern-assumption_checks-5a4053010acd3b38", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "VictorNavasH/newsmartapp", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 332258, "scanner": "foundry_dataset", "fingerprint": "8ab67c035d213e1477ae277fa168795290961c73275422c1a4bffb282967bda0", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 4, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 4, "api_integration_gap": 1, "generated_provenance": 1, "security_auth_secret": 1, "mostly follows blueprint": 1, "self_attested_unverified": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"self_attested_unverified": 2, "claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 62, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 9, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "VictorNavasH/newsmartapp#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-be538761b120645e", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 20, "ui_or_frontend": 5, "source_or_other": 20}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 4, 'source_or_other': 4, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'api_integration_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_fix_attempt': 1, 'generated_provenance': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "graph-query-motif_query-b3043e2c50bbb4bf", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "VictorNavasH/newsmartapp", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: VictorNavasH/newsmartapp"}, "properties": {"repobilityId": 324977, "scanner": "foundry_dataset", "fingerprint": "23c8bf1643f007efbb5cba84d1e3f759bc875d451af5174cc8e6641a98e92db0", "category": "practices", "severity": "critical", "confidence": 0.82, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 4, "docs_or_claims": 4, "ui_or_frontend": 1, "source_or_other": 4, "api_integration_gap": 1, "generated_provenance": 1, "security_auth_secret": 1, "mostly follows blueprint": 1, "self_attested_unverified": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2, "self_attested_or_generated_fix_unverified": 1}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"self_attested_unverified": 2, "claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 62, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 9, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 5, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 9, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 18, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 29, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 9, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 2, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "VictorNavasH/newsmartapp#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "VictorNavasH/newsmartapp", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-580f7be4409b3c1b", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 20, "ui_or_frontend": 5, "source_or_other": 20}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: VictorNavasH/newsmartapp\nThread: VictorNavasH/newsmartapp#2\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: VictorNavasH/newsmartapp#2\nRepo: VictorNavasH/newsmartapp\nIssue/PR number: 2\nGraph consistency label: supported_by_high_confidence_link\nNodes: 29\nEdges: 62\nNode types: {'pr_file': 9, 'commit': 5, 'link_quality': 5, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 18, 'thread_touches_file': 9, 'issue_chain_touches_file': 9, 'comment_chain_links_commit': 6, 'chain_has_link_quality': 5, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 4, 'source_or_other': 4, 'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'api_integration_gap': 1, 'ui_or_frontend': 1, 'human_reported_issue_then_fix_attempt': 1, 'generated_provenance': 1, 'self_attested_or_generated_fix_unverified': 1, 'self_attested_unverified': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'self_attested_unverified': 2}\nQuality tiers: {'high_confidence': 3, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/VictorNavasH/newsmartapp", "source_id": "graph-query-motif_query-969ba18826026fd2", "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": "VictorNavasH/newsmartapp", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"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-5e5156654d2dc80a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-supabase-connection.js:9"}, "properties": {"repobilityId": "48283caecbc10c54", "scanner": "scanner-primary", "fingerprint": "5e5156654d2dc80a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34af45479180737c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-turnos.ts:13"}, "properties": {"repobilityId": "02b656b921144bf4", "scanner": "scanner-primary", "fingerprint": "34af45479180737c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e14a17d70c167bbd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:49"}, "properties": {"repobilityId": "ed7c8f2901f0ddbb", "scanner": "scanner-primary", "fingerprint": "e14a17d70c167bbd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c65ac6099a34cea5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/features/FoodCostTab.tsx:596"}, "properties": {"repobilityId": "45419f136d28769d", "scanner": "scanner-primary", "fingerprint": "c65ac6099a34cea5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ce7fabb6cfe8ca8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/features/BenchmarksTab.tsx:360"}, "properties": {"repobilityId": "ab4404305584321b", "scanner": "scanner-primary", "fingerprint": "2ce7fabb6cfe8ca8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d6e916fbc6d805b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/FacturacionPage.tsx:711"}, "properties": {"repobilityId": "14a3c333887c3fad", "scanner": "scanner-primary", "fingerprint": "3d6e916fbc6d805b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcec618d67c4132d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/ProductsPage.tsx:1158"}, "properties": {"repobilityId": "8956d727331f38ac", "scanner": "scanner-primary", "fingerprint": "bcec618d67c4132d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ffc32d163fc62d15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/OperationsPage.tsx:593"}, "properties": {"repobilityId": "6c8f8716768958d6", "scanner": "scanner-primary", "fingerprint": "ffc32d163fc62d15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4b3550ed13f78a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/IncomePage.tsx:865"}, "properties": {"repobilityId": "a3816c6c53170837", "scanner": "scanner-primary", "fingerprint": "b4b3550ed13f78a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-07e9080f8287fc7b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/SettingsPage.tsx:373"}, "properties": {"repobilityId": "55c5febba5578467", "scanner": "scanner-primary", "fingerprint": "07e9080f8287fc7b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c7614be5735bb55e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/AgentPage.tsx:434"}, "properties": {"repobilityId": "f55f2e1200e8bf81", "scanner": "scanner-primary", "fingerprint": "c7614be5735bb55e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ad513ae16793316", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasPedidosTab.tsx:118"}, "properties": {"repobilityId": "4e7d7d4a24fc1048", "scanner": "scanner-primary", "fingerprint": "0ad513ae16793316", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ba1183699247e98", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/compras/ComprasAnalisisTab.tsx:450"}, "properties": {"repobilityId": "068b6b800cb8cd80", "scanner": "scanner-primary", "fingerprint": "2ba1183699247e98", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-36b0566effbe4ea9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankResumenTab.tsx:218"}, "properties": {"repobilityId": "a60d892099fd4fd8", "scanner": "scanner-primary", "fingerprint": "36b0566effbe4ea9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c210a9bfe1c96e85", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/bankConnections/BankMovimientosTab.tsx:95"}, "properties": {"repobilityId": "f4c8ff2d4250942e", "scanner": "scanner-primary", "fingerprint": "c210a9bfe1c96e85", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ca0df4a932f29740", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/personal/AusenciasTab.tsx:53"}, "properties": {"repobilityId": "fdbb69eea75cda0c", "scanner": "scanner-primary", "fingerprint": "ca0df4a932f29740", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42e4b3b700792af3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesProveedorTab.tsx:293"}, "properties": {"repobilityId": "d3e758637f3915c4", "scanner": "scanner-primary", "fingerprint": "42e4b3b700792af3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed71a69b546c1dc9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCalendarioTab.tsx:171"}, "properties": {"repobilityId": "45faff4b11927a79", "scanner": "scanner-primary", "fingerprint": "ed71a69b546c1dc9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e48f37b8e22d3315", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/expenses/ExpensesCategoriaTab.tsx:529"}, "properties": {"repobilityId": "80ff69ea33e41360", "scanner": "scanner-primary", "fingerprint": "e48f37b8e22d3315", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-62a5940d97e95f25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/views/treasury/TreasuryMovimientosTab.tsx:105"}, "properties": {"repobilityId": "ca4e3b43471902a5", "scanner": "scanner-primary", "fingerprint": "62a5940d97e95f25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6c0dcacb6a7c270", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:59"}, "properties": {"repobilityId": "6f16eb9b82a2dcd6", "scanner": "scanner-primary", "fingerprint": "e6c0dcacb6a7c270", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-10511779d945c733", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/hermesService.ts:14"}, "properties": {"repobilityId": "574ad90e43b38265", "scanner": "scanner-primary", "fingerprint": "10511779d945c733", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9fbc619218e1ee50", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:342"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "9fbc619218e1ee50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-cff595a3f829d334", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankResumenTab.tsx:206"}, "properties": {"repobilityId": "a5b3224b7435f4ef", "scanner": "scanner-primary", "fingerprint": "cff595a3f829d334", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/views/bankConnections/BankResumenTab.tsx"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-e308a72ce3fc05a8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/views/bankConnections/BankConnectSheet.tsx:171"}, "properties": {"repobilityId": "066c08a8314f379a", "scanner": "scanner-primary", "fingerprint": "e308a72ce3fc05a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/views/bankConnections/BankConnectSheet.tsx"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-00b94290eda2fd4f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:59"}, "properties": {"repobilityId": "69d4743587f721a0", "scanner": "scanner-primary", "fingerprint": "00b94290eda2fd4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/layout.tsx"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-bde15dfeb0bd457c", "level": "note", "message": {"text": "Very large file: components/views/FacturacionPage.tsx (1301 lines)"}, "properties": {"repobilityId": "473b85a97c5bca64", "scanner": "scanner-primary", "fingerprint": "bde15dfeb0bd457c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9ba055d6ca30550", "level": "note", "message": {"text": "Very large file: components/views/ProductsPage.tsx (1347 lines)"}, "properties": {"repobilityId": "ee64e2cb9c86f0b5", "scanner": "scanner-primary", "fingerprint": "f9ba055d6ca30550", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-758d22ac482c1481", "level": "note", "message": {"text": "Very large file: components/views/DashboardPage.tsx (1231 lines)"}, "properties": {"repobilityId": "bab9897539a118b5", "scanner": "scanner-primary", "fingerprint": "758d22ac482c1481", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c735afb381eae11", "level": "note", "message": {"text": "Very large file: lib/dataService.ts (1944 lines)"}, "properties": {"repobilityId": "3ea407a94803b15a", "scanner": "scanner-primary", "fingerprint": "5c735afb381eae11", "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": "0d0da15495816282", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "905da3878d0a5eca", "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": "aa487487aaf19ad2", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "54b7d3c06f2cd8e4", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "87f0a97adcd0e4a6", "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": "0345775c6bd60795", "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": "ba9b57784a0c1525", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0af42de38736b3e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/views/IncomePage.tsx:265"}, "properties": {"repobilityId": "7230750435dd91ff", "scanner": "scanner-primary", "fingerprint": "0af42de38736b3e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fb72f8e6aadf055", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/gocardless.ts:76"}, "properties": {"repobilityId": "4e05596f339e1225", "scanner": "scanner-primary", "fingerprint": "7fb72f8e6aadf055", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e779f5aab8c9b3a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dotykService.ts:23"}, "properties": {"repobilityId": "b8468f06df9e9b2a", "scanner": "scanner-primary", "fingerprint": "e779f5aab8c9b3a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6e9b1a70f294c6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:34"}, "properties": {"repobilityId": "ac4ffc7215527f5a", "scanner": "scanner-primary", "fingerprint": "c6e9b1a70f294c6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}