{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined blueprint gap alignment: yutinfo/tiny-transport"}, "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: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined assumption checks: yutinfo/tiny-transport"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 1\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9780a14de7c6bc40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_pers"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined docs only runtime fix: yutinfo/tiny-transport"}, "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: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment'"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined test ci gap after feedback: yutinfo/tiny-transport"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined schema ui api mismatch: yutinfo/tiny-transport"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined bad chains: yutinfo/tiny-transport"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#6\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 42\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 10, 'ui_or_frontend': 14, 'source_or_other': 12, 'security_or_auth': 1, 'api_or_backend': 1, 'test_or_ci': 3, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: yutinfo/tiny-transport"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#1\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#1\nRepo: yutinfo/tiny-transport\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 42\nEdges: 68\nNode types: {'pr_file': 32, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1,"}, "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: yutinfo/tiny-transport", "shortDescription": {"text": "Foundry mined mock as real or placeholder: yutinfo/tiny-transport"}, "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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#6\nRepo: yutinfo/tiny-transport\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 52\nEdges: 78\nNode types: {'pr_file': 42, 'link_quality': 3, 'thread': 1, 'repo': 1, '"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "scanner-9b0b0f6a2f5b83ea", "name": "TODO/FIXME marker in shipping code \u2014 public/js/tracking.js:6941", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/js/tracking.js:6941"}, "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-b498d5ddf2da2d92", "name": "TODO/FIXME marker in shipping code \u2014 public/js/landing.js:6941", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/js/landing.js:6941"}, "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-453a45fabcfc0cde", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.min.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.min.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-5e75cebc8a21ed96", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:1262", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:1262"}, "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-2a462365c99b16f8", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:94"}, "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-78850a0845f2746e", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.colVis.js:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.colVis.js:63"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4d8733f3138a6761", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.html5.js:1074", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.html5.js:1074"}, "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-044582deeedf5bea", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.slim.js:794", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.slim.js:794"}, "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-1133f1ecfa9abb97", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.js:794", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.js:794"}, "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-6a48321d6c5a2d52", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.min.js:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.min.js:89"}, "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-62a94cc4f0f07f5b", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.js:6615", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.js:6615"}, "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-1045d8032c723b1c", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.js:2992", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.js:2992"}, "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-d96433c6982557e2", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.bundle.js:2996", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.bundle.js:2996"}, "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-e53486cdb1eae1bf", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/chart.js/Chart.bundle.js:17137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/chart.js/Chart.bundle.js:17137"}, "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-4b0c905241cc368f", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js:3124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js:3124"}, "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-792372e1aea18988", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/jszip/jszip.js:1060", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jszip/jszip.js:1060"}, "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-f48ebde4b60ae8d3", "name": "Stray `console.log` in TS/JS \u2014 public/plugins/jszip/jszip.js:4689", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/jszip/jszip.js:4689"}, "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-e9d6c93517e950ef", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/moment-with-locales.js:358", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/moment-with-locales.js:358"}, "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-ad44725a99414a25", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locales.js:4394", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locales.js:4394"}, "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-21c30174c88d500b", "name": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locale/fr.js:87", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locale/fr.js:87"}, "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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1efd8bd221e53ff", "name": "Docker base image is tag-pinned but not digest-pinned: composer:2", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: composer:2"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf1b31e7f21ac723", "name": "Docker base image is tag-pinned but not digest-pinned: php:8.1-apache", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.1-apache"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-540522f3f1cba228", "name": "Insecure pattern 'new_function_used' in public/js/tracking.js:4042", "shortDescription": {"text": "Insecure pattern 'new_function_used' in public/js/tracking.js:4042"}, "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-76e0150bf41efd28", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/tracking.js:6224", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/tracking.js:6224"}, "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-68fd54eddf276430", "name": "Insecure pattern 'new_function_used' in public/js/landing.js:4042", "shortDescription": {"text": "Insecure pattern 'new_function_used' in public/js/landing.js:4042"}, "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-a1e7b1f1eac85bb2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/landing.js:6224", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/landing.js:6224"}, "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-a51fb1d7eb132af5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.js:1739", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.js:1739"}, "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-960125206eb91459", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.min.js:8", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.min.js:8"}, "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-6998db79ed0d2fad", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.min.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.min.js:14"}, "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-282ddf87a0d44063", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.js:194", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.js:194"}, "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-aff86b481c49c442", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.min.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.min.js:37"}, "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-ea30aeae7348a03c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.js:163", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.js:163"}, "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-b0b6a6b95f133e65", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/daterangepicker/daterangepicker.js:158", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/daterangepicker/daterangepicker.js:158"}, "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-6aec2f3db7d0032e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.min.js:2"}, "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-f953a01b95eec159", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.js:1332", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.js:1332"}, "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-e4b0280e6c2d6ba2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.js:1332", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.js:1332"}, "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-cd1c2f244e313cc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.min.js:2"}, "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-2e74de42b8721985", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables/jquery.dataTables.min.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables/jquery.dataTables.min.js:35"}, "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-141e21f0d8e18df2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.js:1369", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.js:1369"}, "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-c8ff49853bda6804", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.js:1369", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.js:1369"}, "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-ca418ed67b02c24e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.min.js:2"}, "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-acc4408651e572d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.min.js:2"}, "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-b95cdfe4a7ece3ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2844", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2844"}, "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-0b1e9a37fe3b5a72", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2500", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2500"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba628978f30cf2fe", "name": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.js:340", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.js:340"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8911f57dd94a0dc7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "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-e94e1baa05529006", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe494698c138cc42", "name": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.min.js:1", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7bf2228252830b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "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-ba378af0a9815379", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15d2e899cff5157c", "name": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.min.js:1", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e887747a6180c4fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2844", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2844"}, "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-ec7b32560a06716c", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2500", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2500"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-775ba6550ced66f1", "name": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.js:340", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.js:340"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "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-53d859d8343fd6bf", "name": "Very large file: public/js/tracking.js (22028 lines)", "shortDescription": {"text": "Very large file: public/js/tracking.js (22028 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-21ce5c4ba3c41e5a", "name": "Very large file: public/js/landing.js (23674 lines)", "shortDescription": {"text": "Very large file: public/js/landing.js (23674 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-bc1756351399aa91", "name": "Very large file: public/plugins/datatables-buttons/js/dataTables.buttons.js (2478 lines)", "shortDescription": {"text": "Very large file: public/plugins/datatables-buttons/js/dataTables.buttons.js (2478 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-15fe54b4a77b1ee1", "name": "Very large file: public/plugins/daterangepicker/daterangepicker.js (1578 lines)", "shortDescription": {"text": "Very large file: public/plugins/daterangepicker/daterangepicker.js (1578 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-333725e48b88e0a3", "name": "Very large file: public/plugins/jquery/jquery.slim.js (8782 lines)", "shortDescription": {"text": "Very large file: public/plugins/jquery/jquery.slim.js (8782 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-ce5ab5a2de9f1726", "name": "Very large file: public/plugins/jquery/jquery.js (10881 lines)", "shortDescription": {"text": "Very large file: public/plugins/jquery/jquery.js (10881 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-c13486386915f381", "name": "Very large file: public/plugins/datatables/jquery.dataTables.js (15345 lines)", "shortDescription": {"text": "Very large file: public/plugins/datatables/jquery.dataTables.js (15345 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-4a0e8da55c3eb666", "name": "Very large file: public/plugins/chart.js/Chart.js (16172 lines)", "shortDescription": {"text": "Very large file: public/plugins/chart.js/Chart.js (16172 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-19675c07e3b55181", "name": "Very large file: public/plugins/chart.js/Chart.bundle.js (20776 lines)", "shortDescription": {"text": "Very large file: public/plugins/chart.js/Chart.bundle.js (20776 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-46588b43c0702ee9", "name": "Very large file: public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js (3171 lines)", "shortDescription": {"text": "Very large file: public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js (3171 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-f63704667a4c41b7", "name": "Very large file: public/plugins/select2/js/select2.js (6108 lines)", "shortDescription": {"text": "Very large file: public/plugins/select2/js/select2.js (6108 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-4d3bb9454f22783e", "name": "Very large file: public/plugins/select2/js/select2.full.js (6820 lines)", "shortDescription": {"text": "Very large file: public/plugins/select2/js/select2.full.js (6820 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-c2504c5d6e13a565", "name": "Very large file: public/plugins/jszip/jszip.js (11369 lines)", "shortDescription": {"text": "Very large file: public/plugins/jszip/jszip.js (11369 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-d3e93f32b400cc3e", "name": "Very large file: public/plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js (3797 lines)", "shortDescription": {"text": "Very large file: public/plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js (3797 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-0f3fd8afebcdf0b0", "name": "Very large file: public/plugins/moment/moment-with-locales.js (18083 lines)", "shortDescription": {"text": "Very large file: public/plugins/moment/moment-with-locales.js (18083 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-9f07daff42c156bf", "name": "Very large file: public/plugins/moment/locales.js (12429 lines)", "shortDescription": {"text": "Very large file: public/plugins/moment/locales.js (12429 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-0911b45593f0f7b2", "name": "Very large file: public/plugins/sweetalert2/sweetalert2.all.js (3392 lines)", "shortDescription": {"text": "Very large file: public/plugins/sweetalert2/sweetalert2.all.js (3392 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-b9e569403057c2e6", "name": "Very large file: public/plugins/sweetalert2/sweetalert2.js (3391 lines)", "shortDescription": {"text": "Very large file: public/plugins/sweetalert2/sweetalert2.js (3391 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": "0 test file(s) for 295 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f94c0f8ba902dcf", "name": "145 TODO/FIXME markers", "shortDescription": {"text": "145 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 12 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 289 placeholder/mock markers across 45 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: ci, tests. 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 ci, tests. 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-7b884de382c29c12", "name": "Agent authority lacks a verifier contract: .claude/commands/laravel-code-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/laravel-code-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f675b4ff8228388", "name": "Agent authority lacks a verifier contract: .codex/agents/planner.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/agents/planner.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6f8f0e96d12a709", "name": "Agent authority lacks a verifier contract: .codex/agents/implementer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/agents/implementer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37a3bee08fa92397", "name": "Agent authority lacks a verifier contract: .codex/agents/ui-engineer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/agents/ui-engineer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4e57e57065963cec", "name": "Agent authority lacks a verifier contract: .codex/agents/backend-engineer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/agents/backend-engineer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b31a26cccbc8443", "name": "Agent authority lacks a verifier contract: .codex/workflows/ui-modernization.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/workflows/ui-modernization.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbd44aab68300afc", "name": "Agent authority lacks a verifier contract: .codex/prompts/execute-task.prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/prompts/execute-task.prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32d39eab4ede16b8", "name": "Agent authority lacks a verifier contract: .codex/prompts/plan-first.prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/prompts/plan-first.prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-218875c1779ed67a", "name": "Agent authority lacks a verifier contract: .codex/skills/update-documentation.skill.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/skills/update-documentation.skill.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-667921fcb1c63e41", "name": "Agent authority lacks a verifier contract: .codex/skills/review-laravel-diff.skill.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/skills/review-laravel-diff.skill.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c623d89d7ab2397c", "name": "Commented-code block (6 lines) in resources/js/bootstrap.js:27", "shortDescription": {"text": "Commented-code block (6 lines) in resources/js/bootstrap.js:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2eefd8c0e83587ce", "name": "Commented-code block (5 lines) in public/js/tracking.js:21310", "shortDescription": {"text": "Commented-code block (5 lines) in public/js/tracking.js:21310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21849ba0d37e1aee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/tracking.js:20711", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/tracking.js:20711"}, "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-e6d3966f205f5755", "name": "Commented-code block (5 lines) in public/js/landing.js:22307", "shortDescription": {"text": "Commented-code block (5 lines) in public/js/landing.js:22307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30defdeedefac6c9", "name": "Commented-code block (8 lines) in public/plugins/datatables-autofill/js/dataTables.autoFill.js:882", "shortDescription": {"text": "Commented-code block (8 lines) in public/plugins/datatables-autofill/js/dataTables.autoFill.js:882"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a9240a3e2102c87", "name": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.slim.js:5988", "shortDescription": {"text": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.slim.js:5988"}, "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-4843964afdff7c4a", "name": "Commented-code block (7 lines) in public/plugins/jquery/jquery.slim.js:20", "shortDescription": {"text": "Commented-code block (7 lines) in public/plugins/jquery/jquery.slim.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c89c4dbaacf0c80f", "name": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.js:5988", "shortDescription": {"text": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.js:5988"}, "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-5cd635e930e7e63b", "name": "Commented-code block (7 lines) in public/plugins/jquery/jquery.js:20", "shortDescription": {"text": "Commented-code block (7 lines) in public/plugins/jquery/jquery.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79d4e23ad54d9466", "name": "Commented-code block (12 lines) in public/plugins/datatables/jquery.dataTables.js:1362", "shortDescription": {"text": "Commented-code block (12 lines) in public/plugins/datatables/jquery.dataTables.js:1362"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-450f814a46d36e8d", "name": "Commented-code block (8 lines) in public/plugins/datatables-scroller/js/dataTables.scroller.js:800", "shortDescription": {"text": "Commented-code block (8 lines) in public/plugins/datatables-scroller/js/dataTables.scroller.js:800"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c326cae724c6862", "name": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.js:2826", "shortDescription": {"text": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.js:2826"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5d7dbd1c902d390", "name": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.bundle.js:2830", "shortDescription": {"text": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.bundle.js:2830"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e4b0f5160e22864", "name": "Commented-code block (6 lines) in public/plugins/datatables-rowreorder/js/dataTables.rowReorder.js:177", "shortDescription": {"text": "Commented-code block (6 lines) in public/plugins/datatables-rowreorder/js/dataTables.rowReorder.js:177"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a36aa507ef33353e", "name": "Commented-code block (6 lines) in public/plugins/jszip/jszip.js:62", "shortDescription": {"text": "Commented-code block (6 lines) in public/plugins/jszip/jszip.js:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eab00722b19c874a", "name": "Commented-code block (5 lines) in public/plugins/moment/moment-with-locales.js:3290", "shortDescription": {"text": "Commented-code block (5 lines) in public/plugins/moment/moment-with-locales.js:3290"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9041903707b3f5f0", "name": "Commented-code block (5 lines) in public/plugins/datatables-responsive/js/dataTables.responsive.js:400", "shortDescription": {"text": "Commented-code block (5 lines) in public/plugins/datatables-responsive/js/dataTables.responsive.js:400"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0775f9f7dcd2acaf", "name": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.all.js:222", "shortDescription": {"text": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.all.js:222"}, "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-ab0315814a3479bf", "name": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.js:222", "shortDescription": {"text": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.js:222"}, "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}}]}}, "automationDetails": {"id": "repobility/23463"}, "properties": {"repository": "yutinfo/tiny-transport", "repoUrl": "https://github.com/yutinfo/tiny-transport", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: yutinfo/tiny-transport"}, "properties": {"repobilityId": 357517, "scanner": "foundry_dataset", "fingerprint": "891607cde7e0b7502617cb070feaeb39617270d9f436b22e1493921a2e5efe19", "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_chore": 1, "docs_or_claims": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#7", "issue_number": "7", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-844d263d9a20f389", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 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: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1, 'docs_or_chore': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\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/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-592d85113c43ea93", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: yutinfo/tiny-transport"}, "properties": {"repobilityId": 357516, "scanner": "foundry_dataset", "fingerprint": "a459a13b8c0c48242abadd3ce8d765149e004f3593e394bd4aa30ad302d14af9", "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": {"feature": 1, "test_or_ci": 3, "ui_workflow": 2, "api_or_backend": 4, "docs_or_claims": 2, "ui_or_frontend": 4, "source_or_other": 9, "ui_workflow_gap": 1, "dependency_or_build": 1, "generated_provenance": 1, "partial blueprint fit": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 71, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 23, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 43, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 23, "alignment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#2", "issue_number": "2", "quality_tiers": {"high_confidence": 3, "assumption_check": 2}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-2cdd7ecc69bfd4ee", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"test_or_ci": 12, "api_or_backend": 16, "docs_or_claims": 8, "ui_or_frontend": 16, "source_or_other": 36, "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: supported_by_verification_signal\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#2\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#2\nRepo: yutinfo/tiny-transport\nIssue/PR number: 2\nGraph consistency label: supported_by_verification_signal\nNodes: 43\nEdges: 71\nNode types: {'pr_file': 23, 'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 23, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 9, 'api_or_backend': 4, 'ui_or_frontend': 4, 'test_or_ci': 3, 'claimed_resolved_with_verification_signal': 3, 'docs_or_claims': 2, 'ui_workflow': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'dependency_or_build': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'feature': 1, 'generated_provenance': 1, 'verification_or_tests': 1, 'blueprint_human_gap_alignment': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-7e4e3522c743314e", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yutinfo/tiny-transport"}, "properties": {"repobilityId": 313940, "scanner": "foundry_dataset", "fingerprint": "25ed9f10455eb043849a8a43aa7d186440724612d8e37b047b123b58b1a3b856", "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": "yutinfo/tiny-transport#7", "human_labels": ["data_schema_persistence", "docs_or_claims"], "issue_number": "7", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.725, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-269eda06901a8a89", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1}, "linked_commit_count": 5, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 1, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 1\nLinked CI labels: {'ci_pending_or_incomplete': 1}\nChanged file count: 1\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9780a14de7c6bc40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/7\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/7\\nTitle: docs: refresh README for public repo\\nBody:\\n## Summary\\n\\n- **Public-repo hygiene:** removed the seeded admin credentials block and the Docker DB username/password from the README; replaced with a dev-only warning (change all passwords before any real deployment, never seed production)\\n- **Brought up to date with the current app:**\\n  - Public surface documented: landing `/`, tracking `/tracking` (+ `/web` 301 redirect preserving `?q=`), public `GET /api/track`\\n  - Tech stack now lists Vue 3 SPAs for public pages + the `APP_NAME` brand-rename note\\n  - Features grouped Public / Admin / Driver Portal; server-side DataTables noted\\n  - Routes regrouped into Public / Admin / Driver tables\\n  - Testing section now shows the Docker commands actually used (`-e APP_ENV=testing`)\\n\\n## Notes\\n\\n- Default credentials still exist in `database/seeders/` source (unavoidable for a dev seeder) \u2014 README now explicitly warns they are dev-only instead of advertising them\\n- No code changes; docs only\\n\\n\ud83e\udd16 Generated with [Cl\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-0d31cb58e7813fae\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 53,\n    \"deletions\": 38,\n    \"changes\": 91,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/7db41cd64705d7c37a95770bdc188c0c09f41db1/README.md\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d7e002448a03c282\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: yutinfo/tiny-transport\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-assumption_checks-2f96971abdf8ccc5", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yutinfo/tiny-transport"}, "properties": {"repobilityId": 313939, "scanner": "foundry_dataset", "fingerprint": "9b4a2d87745d253122932813f7b06d400adb88588e2d1e48ae7bfdaee29476fd", "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": "yutinfo/tiny-transport#5", "human_labels": ["api_or_backend", "dependency_or_build", "security_auth_secret", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "5", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.795, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-83a3cfd17ad431b0", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 12, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 3, "ui_or_frontend": 1, "source_or_other": 4, "dependency_or_build": 3}, "linked_commit_count": 1, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#5\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#5\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 12\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 3, 'dependency_or_build': 3, 'source_or_other': 4, 'ui_or_frontend': 1, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c9e1dc1d650b8cc9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/5\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/5\\nTitle: feat: public parcel tracking page at /web (Vue 3 SPA)\\nBody:\\n## Summary\\n\\n- **`GET /web`** \u2014 standalone public tracking page (no AdminLTE, no Bootstrap, no auth required)\\n- **`GET /api/track?codes[]=...`** \u2014 public JSON API, up to 10 codes per request, returns status / timeline / COD per parcel\\n- **Vue 3 SPA** (Composition API, `<script setup>`): chip-tag multi-code input, comma/paste split, skeleton shimmer loader, `<TransitionGroup>` fade cards, status badges, vertical timeline, COD badge, copy-link button\\n- **URL param**: `?q=CODE1,CODE2` \u2192 chips pre-filled + auto-search on mount\\n- **Responsive**: single column mobile, max-width 720px desktop \u2014 Noto Sans Thai font\\n- **5 feature tests** pass; **8 UI scenarios** pass (browser agent, 0 console errors)\\n\\n## Test plan\\n\\n- [x] `docker compose exec -e APP_ENV=testing app php artisan test --filter=PublicTrackingApiTest` \u2192 5 passed\\n- [x] UI-tested all scenarios: page load (desktop+mobile), single code, not-found, multi-code, chip input, URL param, copy lin\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4786a5e03e738543\",\n    \"filename\": \"app/Http/Controllers/PublicTrackingController.php\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"added\",\n    \"additions\": 145,\n    \"deletions\": 0,\n    \"changes\": 145,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/ff02ff35d838425f5816584d8d72e52ae1e14b5f/app%2FHttp%2FControllers%2FPublicTrackingController.php\"\n  },\n  {\n    \"id\": \"github-pr-file-file-48e561c4b93ed8cd\",\n    \"filename\": \"package-lock.json\",\n    \"label\": \"dependency_or_build\",\n    \"status\": \"modified\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-assumption_checks-49739ec28dc6337f", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yutinfo/tiny-transport"}, "properties": {"repobilityId": 313938, "scanner": "foundry_dataset", "fingerprint": "94f76b76a4aa66e32469eab1b3f7d5d869dba65ae4ad48faba8e358960f01aa0", "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": "yutinfo/tiny-transport#1", "human_labels": ["security_auth_secret", "source_or_other", "ui_or_frontend"], "issue_number": "1", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.708, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-fe04fe4e0eb19d32", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 32, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 7, "source_or_other": 25}, "linked_commit_count": 1, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: assumption_checks\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#1\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#1\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 32\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 7, 'source_or_other': 25}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-265463e633f113a4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/1\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/1\\nTitle: [codex] modernize admin ui\\nBody:\\n## Summary\\n- modernize the admin shell, navigation, shared buttons/forms/tables, and feedback states around a blue-led design token system\\n- refresh key admin list and form screens for orders, trips, contacts, and users with consistent headers, filters, sticky save bars, and responsive layouts\\n- update parcel search/tracking and add basic styled error states to align the admin experience end-to-end\\n\\n## Validation\\n- ran `npm run dev`\\n- compiled Laravel Mix assets successfully\\n\\n## Notes\\n- branch includes rebuilt frontend assets under `public/`\\n- local-only uncommitted files in `tasks/` and `docs/UI_MODERNIZATION_PLAN.md` were not included in this PR\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-754f66f0ce66ce06\",\n    \"filename\": \"public/css/app.css\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 1582,\n    \"deletions\": 962,\n    \"changes\": 2544,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/2d6ffdbae768eefe234252e1686e5410399cd9a7/public%2Fcss%2Fapp.css\"\n  },\n  {\n    \"id\": \"github-pr-file-file-2765be2f4c7c4bc9\",\n    \"filename\": \"public/js/app.js\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 27,\n    \"deletions\": 27,\n    \"changes\": 54,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/2d6ffdbae768eefe234252e1686e5410399cd9a7/public%2Fjs%2Fapp.js\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5f68a3944c2b4543\",\n    \"filename\": \"public/mix-manifest.json\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 2,\n    \"deletions\": 2,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-assumption_checks-a8532e7f10cbe50b", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: yutinfo/tiny-transport"}, "properties": {"repobilityId": 358324, "scanner": "foundry_dataset", "fingerprint": "71dae6b03462d4fdd463833777fec36953c45598b33a6d0207be3cca51c64cc4", "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": {"docs_or_chore": 1, "docs_or_claims": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#7", "issue_number": "7", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9f65907b5bc2773c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 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: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1, 'docs_or_chore': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\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/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-c9a5e43042d07000", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: yutinfo/tiny-transport"}, "properties": {"repobilityId": 341619, "scanner": "foundry_dataset", "fingerprint": "5f3d442190ec7a8e79fa6eaaefd4210dccd0d97308d3a02853bb2cf4bc909f03", "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": {"docs_or_chore": 1, "docs_or_claims": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#7", "issue_number": "7", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7b9a2a171606d0b7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 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: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1, 'docs_or_chore': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-33b3709d3f4829bc", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: yutinfo/tiny-transport"}, "properties": {"repobilityId": 331210, "scanner": "foundry_dataset", "fingerprint": "4210e8fd7681a09b0271a22cf7969b34cd382b54d9e21a4613cc30e8e9b5ea2e", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"docs_or_chore": 1, "docs_or_claims": 1, "partial blueprint fit": 1, "verification_or_tests": 4, "data_schema_persistence": 1, "ci_pending_or_incomplete": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "blueprint_human_gap_alignment": 1, "blueprint_human_gap_disagreement": 1, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {"ci_pending_or_incomplete": 2}, "synthetic": false, "edge_count": 28, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "comment_chain_has_ci": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 5, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "alignment": 2, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 1, "blueprint_finding": 2}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#7", "issue_number": "7", "quality_tiers": {"assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-83c46fd8eaeffff7", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 4}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#7\nRepo: yutinfo/tiny-transport\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 28\nNode types: {'commit': 5, 'link_quality': 5, 'alignment': 2, 'blueprint_finding': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_has_ci': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 4, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1, 'docs_or_chore': 1, 'ci_pending_or_incomplete': 1, 'blueprint_human_gap_alignment': 1, 'partial blueprint fit': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 2}\nCI labels: {'ci_pending_or_incomplete': 2}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-778ddb7da251c83b", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yutinfo/tiny-transport", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: yutinfo/tiny-transport"}, "properties": {"repobilityId": 323888, "scanner": "foundry_dataset", "fingerprint": "6192080b7601ce2a1ee5e7e7ffd5b8b11a703511b6f4f026cbe576ef5a516283", "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": "yutinfo/tiny-transport#6", "human_labels": ["api_or_backend", "dependency_or_build", "docs_or_claims", "mock_placeholder", "security_or_auth", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.912, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-007903d75879ca69", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 42, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 10, "ui_or_frontend": 14, "source_or_other": 12, "security_or_auth": 1, "dependency_or_build": 1}, "linked_commit_count": 1, "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": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#6\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 42\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 10, 'ui_or_frontend': 14, 'source_or_other': 12, 'security_or_auth': 1, 'api_or_backend': 1, 'test_or_ci': 3, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dfa849419d585b85\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/6\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/6\\nTitle: feat: tech-blue theme across the app \u2014 landing, tracking, login, admin\\nBody:\\n## Summary\\n\\nOne coherent tech-blue visual identity across the whole product:\\n\\n- **Landing page at `/`** (Vue 3 SPA, guests only) \u2014 dark navy hero with animated gradient mesh + floating mock tracking card, stats count-up, service cards, 4-step stepper, CTA band; authed users keep their dashboard redirect. **Brand rename contract:** name lives only in `config('app.name')` \u2192 `window.__BRAND` \u2192 `BrandLogo.vue` (proven by test).\\n- **Tracking renamed `/web` \u2192 `/tracking`** (consistent with `/api/track`); `/web` 301-redirects preserving `?q=` so old links/QR keep working. Page fully redesigned to the landing theme; all features kept (chips, max 10, auto-search, copy link).\\n- **Login retheme** \u2014 navy + grid + cyan glow, gradient submit; zero changes to form mechanics or redirects.\\n- **Admin + driver retheme (CSS tokens only)** \u2014 navy sidebar + gradient accents + new badge palette + cyan charts + Noto Sans Thai; print labels verified\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-53f7bfa80900ec3c\",\n    \"filename\": \".claude/agents/laravel-code-reviewer.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 14,\n    \"deletions\": 6,\n    \"changes\": 20,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/23230a5a0dd08e1bf500ac20726e5af601adb37c/.claude%2Fagents%2Flaravel-code-reviewer.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-58fd20dc739b62b9\",\n    \"filename\": \".claude/agents/laravel-debugger.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-bad_chains-a82ae2695695bbb2", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: yutinfo/tiny-transport"}, "properties": {"repobilityId": 323887, "scanner": "foundry_dataset", "fingerprint": "f330c8bd9c71f870e760a3045f9e52ea4288e8d9f96aa9a3496ff9b14c577229", "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": "yutinfo/tiny-transport#4", "human_labels": ["api_or_backend", "dependency_or_build", "docs_or_claims", "security_auth_secret", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.777, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-9a86a629038752f8", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 26, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 7, "api_or_backend": 5, "docs_or_claims": 1, "ui_or_frontend": 2, "source_or_other": 10, "dependency_or_build": 1}, "linked_commit_count": 2, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#4\nOutcome: self_attested_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#4\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 26\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 5, 'ui_or_frontend': 2, 'docs_or_claims': 1, 'dependency_or_build': 1, 'source_or_other': 10, 'test_or_ci': 7}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-82b4e843d533d39e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/4\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/4\\nTitle: feat: server-side DataTables for 5 admin list screens\\nBody:\\n## Summary\\n\\n- **No new dependency** \u2014 uses AdminLTE's bundled `public/plugins/datatables-bs4` assets\\n- **Hand-rolled** `app/Support/DataTable.php` helper (whitelist ordering, global search, 200-row cap, no SQL injection via order params)\\n- **5 screens converted:** orders list, trips list, assign-parcel pool, trip-items table, parcel search\\n- **Orders subtotals** moved from interleaved table rows to a summary card above the table (refreshes per filter draw)\\n- **Assign cross-page selection** \u2014 JS `Set` tracks selected ids across DataTables pages; live \\\"\u0e40\u0e25\u0e37\u0e2d\u0e01 N \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\\\" counter; hidden inputs on submit\\n- **Trip-items action cell** \u2014 pre-rendered server-side with `@csrf`, POST routes unchanged\\n- 22 new feature tests; 102 total passing\\n\\n## Test plan\\n\\n- [x] `docker compose exec -e APP_ENV=testing app php artisan test` \u2192 102 passed\\n- [x] UI-tested all 5 screens via browser agent (PASS):\\n  - Orders: AJAX load, search, sort, summary card, page-siz\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5f801e6363b28dd8\",\n    \"filename\": \"app/Http/Controllers/OrderController.php\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 116,\n    \"deletions\": 69,\n    \"changes\": 185,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/8b62d891c9b7a4dd249603dc88c3e5dae967841f/app%2FHttp%2FControllers%2FOrderController.php\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5768adf7ef7ee6f7\",\n    \"filename\": \"app/Http/Controllers/ParcelTrackingController.php\",\n    \"label\": \"api_or_backend\",\n    \"st\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-bad_chains-1c44fbac7b29a4a7", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: yutinfo/tiny-transport"}, "properties": {"repobilityId": 323886, "scanner": "foundry_dataset", "fingerprint": "4f63e6943d7fd6f675c32f275fdb8b2e17925cabf29b700e978efef3cb6b879b", "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": "yutinfo/tiny-transport#3", "human_labels": ["api_or_backend", "docs_or_claims", "schema_or_data", "security_auth_secret", "source_or_other", "test_or_ci", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "self_attested_unverified", "source_backed": true, "max_confidence": 0.742, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-471393bfa89e98ab", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 3, "docs": 4, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 26, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 3, "docs_or_claims": 1, "schema_or_data": 4, "ui_or_frontend": 7, "source_or_other": 9}, "linked_commit_count": 2, "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_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 3, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#3\nOutcome: self_attested_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yutinfo/tiny-transport#3\nRepo: yutinfo/tiny-transport\nThread label: thread_has_human_issue_and_fix_context\nOutcome: self_attested_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 26\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'ui_or_frontend': 7, 'api_or_backend': 3, 'schema_or_data': 4, 'source_or_other': 9, 'test_or_ci': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b8b2130d1db17b06\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yutinfo/tiny-transport/pull/3\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yutinfo/tiny-transport\\nAuthor: yutinfo (User)\\nURL: https://github.com/yutinfo/tiny-transport/pull/3\\nTitle: feat: driver management system\\nBody:\\n## Summary\\n\\n- **drivers table** \u2014 master data for drivers, separate from users; 1:1 optional link to a `users` record (`role_name=driver`)\\n- **CRUD** \u2014 index (search/filter), create, show, edit, delete; admin-write / staff-read access control\\n- **Account management** \u2014 create new login, link existing driver-role user, unlink, reset password, toggle status (syncs linked user)\\n- **Availability API** \u2014 `GET /admin/api/drivers/availability?date=YYYY-MM-DD` \u2014 warns (not blocks) when driver already has a non-cancelled trip; confirm with `confirm_busy=1`\\n- **Trip form integration** \u2014 Select2 driver picker with live \ud83d\udfe2/\ud83d\udd34 availability badge; auto-fills driver_name/mobile/car_id/area_name\\n- **Backfill command** \u2014 `php artisan drivers:backfill [--dry-run]` migrates legacy `trips.driver_user_id` \u2192 `trips.driver_id` idempotently\\n- **CSS Grid fix** \u2014 added `col-md-8` and `col-md-9` to `ta-form-grid` map in `_modern-ui.scss`\\n- **17 feature tests** \u2014 all pass (DriverManagement\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-fc0e5b5f070002a0\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 11,\n    \"deletions\": 2,\n    \"changes\": 13,\n    \"blob_url\": \"https://github.com/yutinfo/tiny-transport/blob/139f9539a42b35631b5ec7eb4c36dab3a82ded83/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-ef0e275c8a70b74a\",\n    \"filename\": \"app/Console/Commands/BackfillDrivers.php\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 125,\n    \"deletions\": 0,\n    \"changes\": 125,\n    \"blob_url\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "comment-chain-pattern-bad_chains-f7893fb3fa7643b4", "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": "yutinfo/tiny-transport", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: yutinfo/tiny-transport"}, "properties": {"repobilityId": 335306, "scanner": "foundry_dataset", "fingerprint": "e43d0264a4f63e0a0024c43652965af7e6124f15fe7f3a453dc4ef5c4439eb12", "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": {"ui_workflow": 1, "ui_or_frontend": 7, "source_or_other": 25, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 68, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 32, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 42, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 32, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#1", "issue_number": "1", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-2bd49f56c198f42d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 28, "source_or_other": 100}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#1\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#1\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#1\nRepo: yutinfo/tiny-transport\nIssue/PR number: 1\nGraph consistency label: weak_supervision_needs_review\nNodes: 42\nEdges: 68\nNode types: {'pr_file': 32, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 32, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 25, 'ui_or_frontend': 7, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_then_fix_attempt': 1, 'ui_workflow': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-51a6ce0b9af69fc6", "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": "yutinfo/tiny-transport", "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: yutinfo/tiny-transport"}, "properties": {"repobilityId": 327453, "scanner": "foundry_dataset", "fingerprint": "17743541bf6382be69daa4804a840ba584e5083c2dc23cc4c3fc93d73a926824", "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": {"feature": 1, "test_or_ci": 3, "api_or_backend": 1, "docs_or_claims": 10, "ui_or_frontend": 14, "source_or_other": 12, "mock_placeholder": 1, "security_or_auth": 1, "dependency_or_build": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 78, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 42, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 52, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 42, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#6", "issue_number": "6", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a1bf23582b3b1a34", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 12, "api_or_backend": 4, "docs_or_claims": 40, "ui_or_frontend": 56, "source_or_other": 48, "security_or_auth": 4, "dependency_or_build": 4}}, "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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#6\nRepo: yutinfo/tiny-transport\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 52\nEdges: 78\nNode types: {'pr_file': 42, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 42, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 14, 'source_or_other': 12, 'docs_or_claims': 10, 'test_or_ci': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'security_or_auth': 1, 'api_or_backend': 1, 'dependency_or_build': 1, 'comment_has_related_commit_context': 1, 'feature': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-341f23dd44addfbe", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: yutinfo/tiny-transport"}, "properties": {"repobilityId": 327452, "scanner": "foundry_dataset", "fingerprint": "b0d267c1f30f543f991d3120f7df535cb13e48684571bdc9912f715922ce9491", "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": {"feature": 1, "test_or_ci": 7, "api_or_backend": 5, "docs_or_claims": 1, "ui_or_frontend": 2, "source_or_other": 10, "dependency_or_build": 1, "generated_provenance": 1, "security_auth_secret": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 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": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 63, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 26, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 37, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 26, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#4", "issue_number": "4", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-902c5f184e566986", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 28, "api_or_backend": 20, "docs_or_claims": 4, "ui_or_frontend": 8, "source_or_other": 40, "dependency_or_build": 4}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#4\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#4\nRepo: yutinfo/tiny-transport\nIssue/PR number: 4\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 63\nNode types: {'pr_file': 26, 'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 26, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 10, 'test_or_ci': 7, 'api_or_backend': 5, 'self_attested_unverified': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'docs_or_claims': 1, 'dependency_or_build': 1, 'self_attested_or_generated_fix_unverified': 1, 'feature': 1, 'generated_provenance': 1}\nOutcomes: {'self_attested_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-103c972f0bb1dc35", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: yutinfo/tiny-transport"}, "properties": {"repobilityId": 327451, "scanner": "foundry_dataset", "fingerprint": "728f40c383d7e69ce8fdadd8f97f9b92bc8eb54f44e0487e1fe0a28b7365bf84", "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": {"feature": 1, "test_or_ci": 2, "api_or_backend": 3, "docs_or_claims": 1, "schema_or_data": 4, "ui_or_frontend": 7, "source_or_other": 9, "generated_provenance": 1, "security_auth_secret": 1, "self_attested_unverified": 3, "issue_or_pull_request_thread": 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": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 63, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 26, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 37, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 26, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "yutinfo/tiny-transport#3", "issue_number": "3", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "yutinfo/tiny-transport", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-80df5fd0b03e248d", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"test_or_ci": 8, "api_or_backend": 12, "docs_or_claims": 4, "schema_or_data": 16, "ui_or_frontend": 28, "source_or_other": 36}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#3\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: yutinfo/tiny-transport\nThread: yutinfo/tiny-transport#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yutinfo/tiny-transport#3\nRepo: yutinfo/tiny-transport\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 63\nNode types: {'pr_file': 26, 'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 26, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 9, 'ui_or_frontend': 7, 'schema_or_data': 4, 'api_or_backend': 3, 'self_attested_unverified': 3, 'test_or_ci': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'docs_or_claims': 1, 'self_attested_or_generated_fix_unverified': 1, 'feature': 1, 'generated_provenance': 1}\nOutcomes: {'self_attested_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yutinfo/tiny-transport", "source_id": "graph-query-motif_query-da95da987048cd80", "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": "yutinfo/tiny-transport", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-9b0b0f6a2f5b83ea", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/js/tracking.js:6941"}, "properties": {"repobilityId": "1f7ba0f07681b3c1", "scanner": "scanner-primary", "fingerprint": "9b0b0f6a2f5b83ea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b498d5ddf2da2d92", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/js/landing.js:6941"}, "properties": {"repobilityId": "5919fd28a62c1ab5", "scanner": "scanner-primary", "fingerprint": "b498d5ddf2da2d92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-453a45fabcfc0cde", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.min.js:12"}, "properties": {"repobilityId": "efc6d4a3d1d70393", "scanner": "scanner-primary", "fingerprint": "453a45fabcfc0cde", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e75cebc8a21ed96", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:1262"}, "properties": {"repobilityId": "f52bc0d9eac31706", "scanner": "scanner-primary", "fingerprint": "5e75cebc8a21ed96", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2a462365c99b16f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.flash.js:94"}, "properties": {"repobilityId": "af546d4fae0393ac", "scanner": "scanner-primary", "fingerprint": "2a462365c99b16f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-78850a0845f2746e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-buttons/js/buttons.colVis.js:63"}, "properties": {"repobilityId": "4f898773a9cda27a", "scanner": "scanner-primary", "fingerprint": "78850a0845f2746e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d8733f3138a6761", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/datatables-buttons/js/buttons.html5.js:1074"}, "properties": {"repobilityId": "70f55a935804520d", "scanner": "scanner-primary", "fingerprint": "4d8733f3138a6761", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-044582deeedf5bea", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.slim.js:794"}, "properties": {"repobilityId": "cfbd6837b2f781c0", "scanner": "scanner-primary", "fingerprint": "044582deeedf5bea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1133f1ecfa9abb97", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jquery/jquery.js:794"}, "properties": {"repobilityId": "6eabf5fa5ce22f39", "scanner": "scanner-primary", "fingerprint": "1133f1ecfa9abb97", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6a48321d6c5a2d52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.min.js:89"}, "properties": {"repobilityId": "70ab5f2e8cc58169", "scanner": "scanner-primary", "fingerprint": "6a48321d6c5a2d52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-62a94cc4f0f07f5b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables/jquery.dataTables.js:6615"}, "properties": {"repobilityId": "ad92a050f8d2d5fb", "scanner": "scanner-primary", "fingerprint": "62a94cc4f0f07f5b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1045d8032c723b1c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.js:2992"}, "properties": {"repobilityId": "076519a4ba41fde5", "scanner": "scanner-primary", "fingerprint": "1045d8032c723b1c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d96433c6982557e2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/chart.js/Chart.bundle.js:2996"}, "properties": {"repobilityId": "600004d4caf920af", "scanner": "scanner-primary", "fingerprint": "d96433c6982557e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e53486cdb1eae1bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/chart.js/Chart.bundle.js:17137"}, "properties": {"repobilityId": "88eeb6d09a850754", "scanner": "scanner-primary", "fingerprint": "e53486cdb1eae1bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b0c905241cc368f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js:3124"}, "properties": {"repobilityId": "8d06a06c7c851e82", "scanner": "scanner-primary", "fingerprint": "4b0c905241cc368f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-792372e1aea18988", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/jszip/jszip.js:1060"}, "properties": {"repobilityId": "698d397460540522", "scanner": "scanner-primary", "fingerprint": "792372e1aea18988", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f48ebde4b60ae8d3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/plugins/jszip/jszip.js:4689"}, "properties": {"repobilityId": "fd426f459c021b5e", "scanner": "scanner-primary", "fingerprint": "f48ebde4b60ae8d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9d6c93517e950ef", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/moment-with-locales.js:358"}, "properties": {"repobilityId": "d43280bdf20bf2d4", "scanner": "scanner-primary", "fingerprint": "e9d6c93517e950ef", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ad44725a99414a25", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locales.js:4394"}, "properties": {"repobilityId": "1902bd443a276620", "scanner": "scanner-primary", "fingerprint": "ad44725a99414a25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-21c30174c88d500b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/plugins/moment/locale/fr.js:87"}, "properties": {"repobilityId": "5f9137ba1ba0cf84", "scanner": "scanner-primary", "fingerprint": "21c30174c88d500b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-f1efd8bd221e53ff", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: composer:2"}, "properties": {"repobilityId": "9478838c4679fdbc", "scanner": "scanner-primary", "fingerprint": "f1efd8bd221e53ff", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf1b31e7f21ac723", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: php:8.1-apache"}, "properties": {"repobilityId": "e2089a0c804162b7", "scanner": "scanner-primary", "fingerprint": "bf1b31e7f21ac723", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-540522f3f1cba228", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in public/js/tracking.js:4042"}, "properties": {"repobilityId": "db3475c708587641", "scanner": "scanner-primary", "fingerprint": "540522f3f1cba228", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/tracking.js"}, "region": {"startLine": 4042}}}]}, {"ruleId": "scanner-76e0150bf41efd28", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/tracking.js:6224"}, "properties": {"repobilityId": "164e53ac27f320e0", "scanner": "scanner-primary", "fingerprint": "76e0150bf41efd28", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/tracking.js"}, "region": {"startLine": 6224}}}]}, {"ruleId": "scanner-68fd54eddf276430", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in public/js/landing.js:4042"}, "properties": {"repobilityId": "116a13fd882bc604", "scanner": "scanner-primary", "fingerprint": "68fd54eddf276430", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/landing.js"}, "region": {"startLine": 4042}}}]}, {"ruleId": "scanner-a1e7b1f1eac85bb2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/landing.js:6224"}, "properties": {"repobilityId": "0d4da2d1ad762419", "scanner": "scanner-primary", "fingerprint": "a1e7b1f1eac85bb2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/landing.js"}, "region": {"startLine": 6224}}}]}, {"ruleId": "scanner-a51fb1d7eb132af5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.js:1739"}, "properties": {"repobilityId": "0f4ec7d08821a860", "scanner": "scanner-primary", "fingerprint": "a51fb1d7eb132af5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/dataTables.buttons.js"}, "region": {"startLine": 1739}}}]}, {"ruleId": "scanner-960125206eb91459", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.min.js:8"}, "properties": {"repobilityId": "e44c2da13f88facd", "scanner": "scanner-primary", "fingerprint": "960125206eb91459", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/buttons.print.min.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-6998db79ed0d2fad", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.min.js:14"}, "properties": {"repobilityId": "ffb6506c1f5c9761", "scanner": "scanner-primary", "fingerprint": "6998db79ed0d2fad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/buttons.flash.min.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-282ddf87a0d44063", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.flash.js:194"}, "properties": {"repobilityId": "6d226f0dbc76e066", "scanner": "scanner-primary", "fingerprint": "282ddf87a0d44063", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/buttons.flash.js"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-aff86b481c49c442", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/dataTables.buttons.min.js:37"}, "properties": {"repobilityId": "5297f8ad254a0b46", "scanner": "scanner-primary", "fingerprint": "aff86b481c49c442", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/dataTables.buttons.min.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-ea30aeae7348a03c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables-buttons/js/buttons.print.js:163"}, "properties": {"repobilityId": "6d50f0919efc4d4c", "scanner": "scanner-primary", "fingerprint": "ea30aeae7348a03c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables-buttons/js/buttons.print.js"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-b0b6a6b95f133e65", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/daterangepicker/daterangepicker.js:158"}, "properties": {"repobilityId": "9f6bc72eb0501839", "scanner": "scanner-primary", "fingerprint": "b0b6a6b95f133e65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/daterangepicker/daterangepicker.js"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-6aec2f3db7d0032e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.min.js:2"}, "properties": {"repobilityId": "f66bea3d4e1ef590", "scanner": "scanner-primary", "fingerprint": "6aec2f3db7d0032e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/jquery/jquery.slim.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-f953a01b95eec159", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.slim.js:1332"}, "properties": {"repobilityId": "0e15a4e1de0dbb5c", "scanner": "scanner-primary", "fingerprint": "f953a01b95eec159", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/jquery/jquery.slim.js"}, "region": {"startLine": 1332}}}]}, {"ruleId": "scanner-e4b0280e6c2d6ba2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.js:1332"}, "properties": {"repobilityId": "d78c1b4ebd6b8a78", "scanner": "scanner-primary", "fingerprint": "e4b0280e6c2d6ba2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/jquery/jquery.js"}, "region": {"startLine": 1332}}}]}, {"ruleId": "scanner-cd1c2f244e313cc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/jquery/jquery.min.js:2"}, "properties": {"repobilityId": "a3d4bf3d6f8e7360", "scanner": "scanner-primary", "fingerprint": "cd1c2f244e313cc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/jquery/jquery.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-2e74de42b8721985", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/datatables/jquery.dataTables.min.js:35"}, "properties": {"repobilityId": "c10719cc4a4fbca0", "scanner": "scanner-primary", "fingerprint": "2e74de42b8721985", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/datatables/jquery.dataTables.min.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-141e21f0d8e18df2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.js:1369"}, "properties": {"repobilityId": "1f9f86d5ed066326", "scanner": "scanner-primary", "fingerprint": "141e21f0d8e18df2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/select2/js/select2.js"}, "region": {"startLine": 1369}}}]}, {"ruleId": "scanner-c8ff49853bda6804", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.js:1369"}, "properties": {"repobilityId": "4d39c7c99014d88a", "scanner": "scanner-primary", "fingerprint": "c8ff49853bda6804", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/select2/js/select2.full.js"}, "region": {"startLine": 1369}}}]}, {"ruleId": "scanner-ca418ed67b02c24e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.full.min.js:2"}, "properties": {"repobilityId": "4b7276b4a21e3144", "scanner": "scanner-primary", "fingerprint": "ca418ed67b02c24e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/select2/js/select2.full.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-acc4408651e572d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/select2/js/select2.min.js:2"}, "properties": {"repobilityId": "f565e8688e4e3ea1", "scanner": "scanner-primary", "fingerprint": "acc4408651e572d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/select2/js/select2.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-b95cdfe4a7ece3ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2844"}, "properties": {"repobilityId": "5bf1cf22acbca715", "scanner": "scanner-primary", "fingerprint": "b95cdfe4a7ece3ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.js"}, "region": {"startLine": 2844}}}]}, {"ruleId": "scanner-0b1e9a37fe3b5a72", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.js:2500"}, "properties": {"repobilityId": "383078645e95eeb2", "scanner": "scanner-primary", "fingerprint": "0b1e9a37fe3b5a72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.js"}, "region": {"startLine": 2500}}}]}, {"ruleId": "scanner-ba628978f30cf2fe", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.js:340"}, "properties": {"repobilityId": "39009539a43ac275", "scanner": "scanner-primary", "fingerprint": "ba628978f30cf2fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.js"}, "region": {"startLine": 340}}}]}, {"ruleId": "scanner-8911f57dd94a0dc7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "properties": {"repobilityId": "30f4bf4c66b77773", "scanner": "scanner-primary", "fingerprint": "8911f57dd94a0dc7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e94e1baa05529006", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "properties": {"repobilityId": "63aba1b4d3a3fb0a", "scanner": "scanner-primary", "fingerprint": "e94e1baa05529006", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe494698c138cc42", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.all.min.js:1"}, "properties": {"repobilityId": "941c8f293b946566", "scanner": "scanner-primary", "fingerprint": "fe494698c138cc42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.all.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e7bf2228252830b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "properties": {"repobilityId": "26e07f8825ea0d8b", "scanner": "scanner-primary", "fingerprint": "e7bf2228252830b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba378af0a9815379", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "properties": {"repobilityId": "a849ca80bbf73041", "scanner": "scanner-primary", "fingerprint": "ba378af0a9815379", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15d2e899cff5157c", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.min.js:1"}, "properties": {"repobilityId": "b3c0e73036f0883f", "scanner": "scanner-primary", "fingerprint": "15d2e899cff5157c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e887747a6180c4fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2844"}, "properties": {"repobilityId": "63f7b0d74e880410", "scanner": "scanner-primary", "fingerprint": "e887747a6180c4fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.js"}, "region": {"startLine": 2844}}}]}, {"ruleId": "scanner-ec7b32560a06716c", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/plugins/sweetalert2/sweetalert2.js:2500"}, "properties": {"repobilityId": "8d442309e230f840", "scanner": "scanner-primary", "fingerprint": "ec7b32560a06716c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.js"}, "region": {"startLine": 2500}}}]}, {"ruleId": "scanner-775ba6550ced66f1", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in public/plugins/sweetalert2/sweetalert2.js:340"}, "properties": {"repobilityId": "8445a2625740ba13", "scanner": "scanner-primary", "fingerprint": "775ba6550ced66f1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/plugins/sweetalert2/sweetalert2.js"}, "region": {"startLine": 340}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"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-53d859d8343fd6bf", "level": "note", "message": {"text": "Very large file: public/js/tracking.js (22028 lines)"}, "properties": {"repobilityId": "1b3ce5c5354462ba", "scanner": "scanner-primary", "fingerprint": "53d859d8343fd6bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-21ce5c4ba3c41e5a", "level": "note", "message": {"text": "Very large file: public/js/landing.js (23674 lines)"}, "properties": {"repobilityId": "4bd13c94952166ff", "scanner": "scanner-primary", "fingerprint": "21ce5c4ba3c41e5a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc1756351399aa91", "level": "note", "message": {"text": "Very large file: public/plugins/datatables-buttons/js/dataTables.buttons.js (2478 lines)"}, "properties": {"repobilityId": "9c10784ad1ba2efe", "scanner": "scanner-primary", "fingerprint": "bc1756351399aa91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15fe54b4a77b1ee1", "level": "note", "message": {"text": "Very large file: public/plugins/daterangepicker/daterangepicker.js (1578 lines)"}, "properties": {"repobilityId": "4582d99ff0c85e55", "scanner": "scanner-primary", "fingerprint": "15fe54b4a77b1ee1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-333725e48b88e0a3", "level": "note", "message": {"text": "Very large file: public/plugins/jquery/jquery.slim.js (8782 lines)"}, "properties": {"repobilityId": "ce506e37fc011a87", "scanner": "scanner-primary", "fingerprint": "333725e48b88e0a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ce5ab5a2de9f1726", "level": "note", "message": {"text": "Very large file: public/plugins/jquery/jquery.js (10881 lines)"}, "properties": {"repobilityId": "8b2a4dcef3a68768", "scanner": "scanner-primary", "fingerprint": "ce5ab5a2de9f1726", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c13486386915f381", "level": "note", "message": {"text": "Very large file: public/plugins/datatables/jquery.dataTables.js (15345 lines)"}, "properties": {"repobilityId": "a9866104ec0d2079", "scanner": "scanner-primary", "fingerprint": "c13486386915f381", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a0e8da55c3eb666", "level": "note", "message": {"text": "Very large file: public/plugins/chart.js/Chart.js (16172 lines)"}, "properties": {"repobilityId": "fb3c8135438927b2", "scanner": "scanner-primary", "fingerprint": "4a0e8da55c3eb666", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-19675c07e3b55181", "level": "note", "message": {"text": "Very large file: public/plugins/chart.js/Chart.bundle.js (20776 lines)"}, "properties": {"repobilityId": "7e1d04a89226f39f", "scanner": "scanner-primary", "fingerprint": "19675c07e3b55181", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46588b43c0702ee9", "level": "note", "message": {"text": "Very large file: public/plugins/datatables-searchpanes/js/dataTables.searchPanes.js (3171 lines)"}, "properties": {"repobilityId": "530bb8c46d0fb39b", "scanner": "scanner-primary", "fingerprint": "46588b43c0702ee9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f63704667a4c41b7", "level": "note", "message": {"text": "Very large file: public/plugins/select2/js/select2.js (6108 lines)"}, "properties": {"repobilityId": "8dcc194381370b74", "scanner": "scanner-primary", "fingerprint": "f63704667a4c41b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d3bb9454f22783e", "level": "note", "message": {"text": "Very large file: public/plugins/select2/js/select2.full.js (6820 lines)"}, "properties": {"repobilityId": "fd9207f6c7a17734", "scanner": "scanner-primary", "fingerprint": "4d3bb9454f22783e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c2504c5d6e13a565", "level": "note", "message": {"text": "Very large file: public/plugins/jszip/jszip.js (11369 lines)"}, "properties": {"repobilityId": "66eb4fb21e06980c", "scanner": "scanner-primary", "fingerprint": "c2504c5d6e13a565", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3e93f32b400cc3e", "level": "note", "message": {"text": "Very large file: public/plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js (3797 lines)"}, "properties": {"repobilityId": "91b7e923eaeb2847", "scanner": "scanner-primary", "fingerprint": "d3e93f32b400cc3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f3fd8afebcdf0b0", "level": "note", "message": {"text": "Very large file: public/plugins/moment/moment-with-locales.js (18083 lines)"}, "properties": {"repobilityId": "c950eb6a545de3a8", "scanner": "scanner-primary", "fingerprint": "0f3fd8afebcdf0b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9f07daff42c156bf", "level": "note", "message": {"text": "Very large file: public/plugins/moment/locales.js (12429 lines)"}, "properties": {"repobilityId": "25358dd3252c873b", "scanner": "scanner-primary", "fingerprint": "9f07daff42c156bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0911b45593f0f7b2", "level": "note", "message": {"text": "Very large file: public/plugins/sweetalert2/sweetalert2.all.js (3392 lines)"}, "properties": {"repobilityId": "15da436ef63d8cc9", "scanner": "scanner-primary", "fingerprint": "0911b45593f0f7b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b9e569403057c2e6", "level": "note", "message": {"text": "Very large file: public/plugins/sweetalert2/sweetalert2.js (3391 lines)"}, "properties": {"repobilityId": "936d778ff101271a", "scanner": "scanner-primary", "fingerprint": "b9e569403057c2e6", "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-2f94c0f8ba902dcf", "level": "note", "message": {"text": "145 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "2f94c0f8ba902dcf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "e30eac08af02231f", "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": "9eb9640394ce9229", "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": "88c286d863933b0f", "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": "2c33e002da629b61", "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": "9b2f594449760e19", "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": "fdf2f8088c63cdf7", "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": "753431ae86ca1747", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-7b884de382c29c12", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/laravel-code-review.md"}, "properties": {"repobilityId": "1d6d81ff722c2327", "scanner": "scanner-primary", "fingerprint": "7b884de382c29c12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/laravel-code-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f675b4ff8228388", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/agents/planner.md"}, "properties": {"repobilityId": "0405d841f54736bd", "scanner": "scanner-primary", "fingerprint": "6f675b4ff8228388", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/agents/planner.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6f8f0e96d12a709", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/agents/implementer.md"}, "properties": {"repobilityId": "b55b4a59780d08d3", "scanner": "scanner-primary", "fingerprint": "d6f8f0e96d12a709", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/agents/implementer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-37a3bee08fa92397", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/agents/ui-engineer.md"}, "properties": {"repobilityId": "be738d98a9c4aa0e", "scanner": "scanner-primary", "fingerprint": "37a3bee08fa92397", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/agents/ui-engineer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e57e57065963cec", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/agents/backend-engineer.md"}, "properties": {"repobilityId": "0631db0246d30af0", "scanner": "scanner-primary", "fingerprint": "4e57e57065963cec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/agents/backend-engineer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b31a26cccbc8443", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/workflows/ui-modernization.md"}, "properties": {"repobilityId": "79aa1ab778edaa6b", "scanner": "scanner-primary", "fingerprint": "4b31a26cccbc8443", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/workflows/ui-modernization.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bbd44aab68300afc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/prompts/execute-task.prompt.md"}, "properties": {"repobilityId": "d08e717f22287057", "scanner": "scanner-primary", "fingerprint": "bbd44aab68300afc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/prompts/execute-task.prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-32d39eab4ede16b8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/prompts/plan-first.prompt.md"}, "properties": {"repobilityId": "691ded28fc157daf", "scanner": "scanner-primary", "fingerprint": "32d39eab4ede16b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/prompts/plan-first.prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-218875c1779ed67a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/skills/update-documentation.skill.md"}, "properties": {"repobilityId": "f5db83beb32d33ee", "scanner": "scanner-primary", "fingerprint": "218875c1779ed67a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/skills/update-documentation.skill.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-667921fcb1c63e41", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/skills/review-laravel-diff.skill.md"}, "properties": {"repobilityId": "10a871ffbd3562af", "scanner": "scanner-primary", "fingerprint": "667921fcb1c63e41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/skills/review-laravel-diff.skill.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c623d89d7ab2397c", "level": "none", "message": {"text": "Commented-code block (6 lines) in resources/js/bootstrap.js:27"}, "properties": {"repobilityId": "1241c588ab5da417", "scanner": "scanner-primary", "fingerprint": "c623d89d7ab2397c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eefd8c0e83587ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/js/tracking.js:21310"}, "properties": {"repobilityId": "48be4ba2b8c41c0a", "scanner": "scanner-primary", "fingerprint": "2eefd8c0e83587ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21849ba0d37e1aee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/tracking.js:20711"}, "properties": {"repobilityId": "38701f0f9212d3c6", "scanner": "scanner-primary", "fingerprint": "21849ba0d37e1aee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6d3966f205f5755", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/js/landing.js:22307"}, "properties": {"repobilityId": "d3efe0944406c4b9", "scanner": "scanner-primary", "fingerprint": "e6d3966f205f5755", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30defdeedefac6c9", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/plugins/datatables-autofill/js/dataTables.autoFill.js:882"}, "properties": {"repobilityId": "6885b3e6d23c4824", "scanner": "scanner-primary", "fingerprint": "30defdeedefac6c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a9240a3e2102c87", "level": "note", "message": {"text": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.slim.js:5988"}, "properties": {"repobilityId": "7c4f7ef7b4d68b0c", "scanner": "scanner-primary", "fingerprint": "8a9240a3e2102c87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4843964afdff7c4a", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/plugins/jquery/jquery.slim.js:20"}, "properties": {"repobilityId": "d168710723831d2a", "scanner": "scanner-primary", "fingerprint": "4843964afdff7c4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c89c4dbaacf0c80f", "level": "note", "message": {"text": "Legacy-named symbol `pdataOld` in public/plugins/jquery/jquery.js:5988"}, "properties": {"repobilityId": "74e66b35302f500a", "scanner": "scanner-primary", "fingerprint": "c89c4dbaacf0c80f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5cd635e930e7e63b", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/plugins/jquery/jquery.js:20"}, "properties": {"repobilityId": "7c01be24e94ede8c", "scanner": "scanner-primary", "fingerprint": "5cd635e930e7e63b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79d4e23ad54d9466", "level": "none", "message": {"text": "Commented-code block (12 lines) in public/plugins/datatables/jquery.dataTables.js:1362"}, "properties": {"repobilityId": "654f97bc2ae813da", "scanner": "scanner-primary", "fingerprint": "79d4e23ad54d9466", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-450f814a46d36e8d", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/plugins/datatables-scroller/js/dataTables.scroller.js:800"}, "properties": {"repobilityId": "1ff13276a57d5b7d", "scanner": "scanner-primary", "fingerprint": "450f814a46d36e8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c326cae724c6862", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.js:2826"}, "properties": {"repobilityId": "ea3ab3c61905452a", "scanner": "scanner-primary", "fingerprint": "6c326cae724c6862", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5d7dbd1c902d390", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/plugins/chart.js/Chart.bundle.js:2830"}, "properties": {"repobilityId": "e8409bedc653d776", "scanner": "scanner-primary", "fingerprint": "c5d7dbd1c902d390", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e4b0f5160e22864", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/plugins/datatables-rowreorder/js/dataTables.rowReorder.js:177"}, "properties": {"repobilityId": "71f577169162f577", "scanner": "scanner-primary", "fingerprint": "4e4b0f5160e22864", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a36aa507ef33353e", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/plugins/jszip/jszip.js:62"}, "properties": {"repobilityId": "ee49544da3f22659", "scanner": "scanner-primary", "fingerprint": "a36aa507ef33353e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab00722b19c874a", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/plugins/moment/moment-with-locales.js:3290"}, "properties": {"repobilityId": "9ffa66983495c3b4", "scanner": "scanner-primary", "fingerprint": "eab00722b19c874a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9041903707b3f5f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/plugins/datatables-responsive/js/dataTables.responsive.js:400"}, "properties": {"repobilityId": "26333e1c176f8a4d", "scanner": "scanner-primary", "fingerprint": "9041903707b3f5f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0775f9f7dcd2acaf", "level": "note", "message": {"text": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.all.js:222"}, "properties": {"repobilityId": "befb1a1117da1b72", "scanner": "scanner-primary", "fingerprint": "0775f9f7dcd2acaf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ab0315814a3479bf", "level": "note", "message": {"text": "Legacy-named symbol `checkIfParamIsDeprecated` in public/plugins/sweetalert2/sweetalert2.js:222"}, "properties": {"repobilityId": "e6556bd0329ad63e", "scanner": "scanner-primary", "fingerprint": "ab0315814a3479bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}]}]}