{"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": "scanner-132ab42d6cf81e2d", "name": "Stray `console.log` in TS/JS \u2014 _drv_ps.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_ps.js:5"}, "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-0449869e595abaa9", "name": "Stray `console.log` in TS/JS \u2014 _drv_scan.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_scan.js:6"}, "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-d60122ea445fef4a", "name": "Stray `console.log` in TS/JS \u2014 _drv_psi.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_psi.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a8d158010cb9f51", "name": "Stray `console.log` in TS/JS \u2014 _drv_step.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_step.js:6"}, "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-1d0138b28c23127d", "name": "Stray `console.log` in TS/JS \u2014 _drv_ps2.js:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_ps2.js:4"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f860a9793e16ea29", "name": "Stray `console.log` in TS/JS \u2014 _drv_mint.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 _drv_mint.js:10"}, "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-61b1b52ee2acb8ba", "name": "Stray `console.log` in TS/JS \u2014 beta-score.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 beta-score.js:10"}, "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-8fce46df37a8aa4d", "name": "Stray `console.log` in TS/JS \u2014 beta-run.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 beta-run.js:28"}, "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-832950801319fc5c", "name": "Stray `console.log` in TS/JS \u2014 tests/touch-0-dry-run.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/touch-0-dry-run.js:48"}, "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-0f3668abcbe1fa12", "name": "Stray `console.log` in TS/JS \u2014 tests/phase-6.7-10-layer.test.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/phase-6.7-10-layer.test.js:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f08513b61ece8a10", "name": "Stray `console.log` in TS/JS \u2014 ops/infra/hetzner-verify.js:199", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 ops/infra/hetzner-verify.js:199"}, "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-e95402026059a8a4", "name": "Stray `console.log` in TS/JS \u2014 scripts/pre-send-pipeline.js:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pre-send-pipeline.js:91"}, "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-b9abfa8d198cef0a", "name": "Stray `console.log` in TS/JS \u2014 scripts/approve-leads.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-leads.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab84abbba67e53b4", "name": "Stray `console.log` in TS/JS \u2014 scripts/remint-audits.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/remint-audits.js:25"}, "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-22d5050ffbd4537f", "name": "Stray `console.log` in TS/JS \u2014 scripts/enrich-worker.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enrich-worker.js:59"}, "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-3c3efae92c86f35c", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-serp-scrape.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-serp-scrape.js:22"}, "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-052d01f24a8dcb19", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-campaigns.js:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-campaigns.js:85"}, "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-65c36c52a438725d", "name": "Stray `console.log` in TS/JS \u2014 scripts/push-to-mystrika.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/push-to-mystrika.js:98"}, "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-20d1a9cc098a9a59", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-qualifier.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-qualifier.js:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b53936334192c6e", "name": "Stray `console.log` in TS/JS \u2014 scripts/cc2-provision.js:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cc2-provision.js:113"}, "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-e5dd49cb7e3617cb", "name": "Stray `console.log` in TS/JS \u2014 scripts/deliverability-guard.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deliverability-guard.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-8b4b7af9ace5add4", "name": "Stray `console.log` in TS/JS \u2014 scripts/reap-stale-runs.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reap-stale-runs.js:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e766459f6feb3778", "name": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-cal-bookings.js:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-cal-bookings.js:136"}, "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-675a8742004a14ec", "name": "Stray `console.log` in TS/JS \u2014 scripts/plane-sync.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plane-sync.js:26"}, "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-6fa628c7a0d49a5d", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-audits.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-audits.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5dbe907179405066", "name": "Stray `console.log` in TS/JS \u2014 scripts/refresh-enforcement-news.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-enforcement-news.js:78"}, "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-7287fd1e09cb6912", "name": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-export.js:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-export.js:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c4c5a0008818d2c", "name": "Stray `console.log` in TS/JS \u2014 scripts/health-check.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/health-check.js:104"}, "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-e7fa3ed1dd2aeacc", "name": "Stray `console.log` in TS/JS \u2014 scripts/self-audit-workflow.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/self-audit-workflow.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08dd90347f862ac4", "name": "Stray `console.log` in TS/JS \u2014 scripts/dedupe-leads.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dedupe-leads.js:58"}, "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-7143bfabd86e699d", "name": "Stray `console.log` in TS/JS \u2014 scripts/adversarial-test.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/adversarial-test.js:58"}, "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-2ed526c734085ce9", "name": "Stray `console.log` in TS/JS \u2014 scripts/recycle.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recycle.js:48"}, "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-6e4a72fb406dd8e5", "name": "Stray `console.log` in TS/JS \u2014 scripts/claude-safeguard-batch.js:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/claude-safeguard-batch.js:128"}, "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-43c5914c441a8a43", "name": "Stray `console.log` in TS/JS \u2014 scripts/source-leads.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/source-leads.js:121"}, "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-9f894e3f20736be6", "name": "Stray `console.log` in TS/JS \u2014 scripts/scrape-all.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-all.js:57"}, "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-985947b32d45a2dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-llm-rescue.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-llm-rescue.js:25"}, "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-f900ced06fb3b6f9", "name": "Stray `console.log` in TS/JS \u2014 scripts/notify-event.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/notify-event.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab49d9e5773a5ae0", "name": "Stray `console.log` in TS/JS \u2014 scripts/match-inbound-replies.js:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/match-inbound-replies.js:161"}, "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-5977aa3fd26a0c6d", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-contacts.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-contacts.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ded016dd4cc6747", "name": "Stray `console.log` in TS/JS \u2014 scripts/scorecard-nightly.js:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scorecard-nightly.js:148"}, "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-3455442de14b6dae", "name": "Stray `console.log` in TS/JS \u2014 scripts/enforcement-sync.js:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enforcement-sync.js:115"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85a644d01c58c800", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-stuck-jobs.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-stuck-jobs.js:102"}, "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-d4a6eee8c0646184", "name": "Stray `console.log` in TS/JS \u2014 scripts/compute-metrics.js:216", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/compute-metrics.js:216"}, "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-e9d930471d198370", "name": "Stray `console.log` in TS/JS \u2014 scripts/render-social-drafts.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-social-drafts.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f510d39c9029417c", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-factcheck.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-factcheck.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-66f0a915c057c1ef", "name": "Stray `console.log` in TS/JS \u2014 scripts/requalify-all-leads.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/requalify-all-leads.js:70"}, "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-7513789b212a2601", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-rank-insights.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-rank-insights.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0843dba81468c473", "name": "Stray `console.log` in TS/JS \u2014 scripts/backtest-personalisation.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backtest-personalisation.js:97"}, "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-696fa84b5c8b79e4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-mystrika-replies.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-mystrika-replies.js:20"}, "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-bb818630f725178c", "name": "Stray `console.log` in TS/JS \u2014 scripts/plane-leads-sync.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plane-leads-sync.js:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7779d0e1173e0353", "name": "Stray `console.log` in TS/JS \u2014 scripts/enrich-and-queue-channels.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enrich-and-queue-channels.js:55"}, "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-205dbedaae9c168e", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-review.js:160", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-review.js:160"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c20a0c6c08cd84ef", "name": "Stray `console.log` in TS/JS \u2014 scripts/qualify-and-queue.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qualify-and-queue.js:47"}, "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-6718b6751f1fe077", "name": "Stray `console.log` in TS/JS \u2014 scripts/ensure-schema.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-schema.js:72"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b366215176541f0", "name": "Stray `console.log` in TS/JS \u2014 scripts/refresh-pipeline.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-pipeline.js:103"}, "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-d9d12261fcb03cb2", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-deep-research-batch.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-deep-research-batch.js:55"}, "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-21ced3ea011f2fbc", "name": "Stray `console.log` in TS/JS \u2014 scripts/render-touches.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-touches.js:36"}, "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-132049082e0247c1", "name": "Stray `console.log` in TS/JS \u2014 scripts/mint-worker.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mint-worker.js:49"}, "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-21b20b28d230d6b1", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-crm-dashboard.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-crm-dashboard.js:126"}, "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-1e3cd116b77b12cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/governor-release.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/governor-release.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86afeb87291af4f4", "name": "Stray `console.log` in TS/JS \u2014 scripts/independent-verify-selftest.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/independent-verify-selftest.js:68"}, "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-a7eb6ea6eba3c66f", "name": "Stray `console.log` in TS/JS \u2014 scripts/resolve-registry-domains.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resolve-registry-domains.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-705ad37679e0c2cc", "name": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-cli.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-cli.js:7"}, "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-3d3202849fb4287f", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-rescue.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-rescue.js:28"}, "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-dd4cf66b46524d84", "name": "Stray `console.log` in TS/JS \u2014 scripts/reconcile.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile.js:27"}, "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-d6995267d34aa724", "name": "Stray `console.log` in TS/JS \u2014 scripts/buying-signals.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/buying-signals.js:49"}, "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-3469559b6725020f", "name": "Stray `console.log` in TS/JS \u2014 scripts/enqueue-leads.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enqueue-leads.js:42"}, "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-3db9938bf450ae0b", "name": "Stray `console.log` in TS/JS \u2014 scripts/materialise-client-emails.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/materialise-client-emails.js:95"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b076b42b9c48074", "name": "Stray `console.log` in TS/JS \u2014 scripts/intel-pulse.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/intel-pulse.js:97"}, "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-8e989252b7910d6e", "name": "Stray `console.log` in TS/JS \u2014 scripts/daily-digest.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/daily-digest.js:20"}, "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-3fe59288807a413d", "name": "Stray `console.log` in TS/JS \u2014 scripts/gen-state.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-state.js:77"}, "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-cb5a93014799b737", "name": "Stray `console.log` in TS/JS \u2014 scripts/zoho-imap-poll.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/zoho-imap-poll.js:50"}, "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-84fb6b3e5cd276b9", "name": "Stray `console.log` in TS/JS \u2014 scripts/qa-compliance.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa-compliance.js:14"}, "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-74a243411c1e77a4", "name": "Stray `console.log` in TS/JS \u2014 scripts/v3/migrate-v3-schema.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/v3/migrate-v3-schema.js:39"}, "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-97819ac705f36112", "name": "Stray `console.log` in TS/JS \u2014 scripts/v3/normalise-names.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/v3/normalise-names.js:90"}, "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-92609ab28a5751f7", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/normalize-rule-sectors.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/normalize-rule-sectors.js:58"}, "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-a74a059b0aa76de0", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-corpus-index.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-corpus-index.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46e8252da171c49c", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/build-canonical-laws.js:189", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/build-canonical-laws.js:189"}, "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-b1ee4ff8f85e3ad1", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-enforcement.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-enforcement.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aab3bd1c6f2d525c", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-gap-finder.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-gap-finder.js:8"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d94ab14eb70f098", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-sector-accuracy.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-sector-accuracy.js:102"}, "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-645b0533d72c6030", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/qa-validate-library.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/qa-validate-library.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f211c4ed6162755c", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/audit-rule-gates.js:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/audit-rule-gates.js:87"}, "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-9320cf16b19901c8", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-resolver.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-resolver.js:14"}, "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-8acd836cd7683771", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrations/load-canonical-laws.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/load-canonical-laws.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4f47d771b4b9277", "name": "Stray `console.log` in TS/JS \u2014 eval/retier-persisted.js:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 eval/retier-persisted.js:106"}, "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-80063618956795a4", "name": "Stray `console.log` in TS/JS \u2014 src/lib/gap-ledger.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/gap-ledger.js:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb2748273c0759a3", "name": "Stray `console.log` in TS/JS \u2014 src/lib/governor.js:194", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/governor.js:194"}, "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-c06116c147a29253", "name": "Stray `console.log` in TS/JS \u2014 src/lib/imap-poll-worker.js:188", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/imap-poll-worker.js:188"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8813994dab1df480", "name": "Stray `console.log` in TS/JS \u2014 src/lib/template-resolver.js:262", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/template-resolver.js:262"}, "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-6eb25d11297265bf", "name": "Stray `console.log` in TS/JS \u2014 src/lib/alias-rotator.js:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/alias-rotator.js:101"}, "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-106be09f401dddd7", "name": "Stray `console.log` in TS/JS \u2014 src/lib/personalisation-injector.js:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/personalisation-injector.js:152"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a91bbe0da6f97f1", "name": "Stray `console.log` in TS/JS \u2014 src/lib/google/google-pull.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/google/google-pull.js:86"}, "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-16334f6f426cee08", "name": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/apollo.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/apollo.js:44"}, "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-6806d69e2ab16feb", "name": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/hunter.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/hunter.js:103"}, "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-0ffe98f59df29544", "name": "Stray `console.log` in TS/JS \u2014 src/lib/apify/client.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/apify/client.js:46"}, "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-f4e034f19638dbc0", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/email-sender.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/email-sender.js:62"}, "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-23064d6f788b034a", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/zoho-imap-client.js:342", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/zoho-imap-client.js:342"}, "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-14353eede04ebeae", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/telegram.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/telegram.js:23"}, "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-26c053603df14341", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/relay-router.js:184", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/relay-router.js:184"}, "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-a5ac8a92df656336", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/slack-bot.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/slack-bot.js:36"}, "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-fb2ab8f33a874994", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/content-linter.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/content-linter.js:62"}, "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-03ab9165410d25e1", "name": "Stray `console.log` in TS/JS \u2014 src/lib/notify/smtp2go.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/smtp2go.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a21fbf9cbfdb979b", "name": "Stray `console.log` in TS/JS \u2014 src/lib/audit/gap-finder.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audit/gap-finder.js:98"}, "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-90acd5ff1d9dc6df", "name": "Stray `console.log` in TS/JS \u2014 src/lib/audit/tests/site-scan.test.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audit/tests/site-scan.test.js:20"}, "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-9933f5d7efd53b6d", "name": "Stray `console.log` in TS/JS \u2014 src/lib/compliance/jurisdiction-router.js:208", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/compliance/jurisdiction-router.js:208"}, "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-51f2d160370a5776", "name": "Stray `console.log` in TS/JS \u2014 src/lib/calcom/api.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/calcom/api.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9773063561ff8ed4", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-ad-library.js:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-ad-library.js:91"}, "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-6c2aabea2e7d1224", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin.ts:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin.ts:75"}, "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-6a0351b6ce833e23", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pixel-detector.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pixel-detector.js:126"}, "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-f6bbcdbae63cc5e0", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.js:84"}, "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-86409af5840d72bc", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/intent-job-boards.js:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/intent-job-boards.js:135"}, "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-2a8e705bc36ca2ca", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/cross-platform-scorer.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/cross-platform-scorer.ts:46"}, "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-39866dcbb14df07b", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin-ad-library.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin-ad-library.js:45"}, "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-479e10d4a5b50dc6", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok-creative-center.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok-creative-center.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-286874b439ef1cf0", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pinterest.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pinterest.ts:28"}, "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-8163445406181ffb", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/snapchat.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/snapchat.ts:25"}, "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-d67caf478488ad49", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-graph-api.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-graph-api.js:84"}, "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-e1088127a2600bcd", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok.ts:78"}, "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-f2909cd4452bf206", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/x-ads.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/x-ads.ts:62"}, "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-6fb05d78e1b31009", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/reddit.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/reddit.ts:25"}, "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-9c62ae66cb955995", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/W14-cron.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/W14-cron.js:97"}, "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-f50cf55459fe13b1", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.ts:68"}, "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-2fc8408ed614fb4e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/bucket-d-integrator.ts:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/bucket-d-integrator.ts:84"}, "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-cb01c8c4edbf4453", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta.ts:87"}, "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-7d5db6bf1ec72bf1", "name": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/aggregators.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/aggregators.ts:62"}, "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-58ebdc0f80006a84", "name": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/query-calendar.js:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/query-calendar.js:100"}, "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-c4616022322f7897", "name": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-client.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-client.js:77"}, "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-0d757eddaddb913b", "name": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-engine.js:201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-engine.js:201"}, "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-b28b833df50d4a74", "name": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/google-sponsored.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/google-sponsored.js:78"}, "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-94ebaab8a0a6ab89", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/charity-commission.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/charity-commission.js:72"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d0e79bc0c6b41ab", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/sourcing/sra-register.js:10", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/sourcing/sra-register.js:10"}, "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-4cb1c7511a24b2f3", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/companies-house.js:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/companies-house.js:149"}, "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-29ea9fb690bed461", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/instagram-finder.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/instagram-finder.js:50"}, "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-a35a281f0161a050", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/cqc-register.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/cqc-register.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ea52861b3acb1bf", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/resolve-name.js:425", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/resolve-name.js:425"}, "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-5133a24510bc520e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/osm-overpass.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/osm-overpass.js:126"}, "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-b70777fbf19ad232", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/bulk-sourcer.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/bulk-sourcer.js:140"}, "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-cd5f7943ec41b7b9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/sec-edgar.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/sec-edgar.js:57"}, "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-ce23dfc9d21375cb", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/linkedin-finder.js:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/linkedin-finder.js:81"}, "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-43796878597f5728", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/gleif.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/gleif.js:60"}, "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-be37098985fca255", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/find-every-email.js:134", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/find-every-email.js:134"}, "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-723af7f79100a7c6", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/opencorporates.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/opencorporates.js:45"}, "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-6b92280f536f4e45", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/tests/icp.test.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/tests/icp.test.js:26"}, "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-55b1a062345f4a06", "name": "Stray `console.log` in TS/JS \u2014 src/lib/calendar/timezone-router.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/calendar/timezone-router.js:97"}, "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-545190f4aaf3bf36", "name": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/lead-quality.js:557", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/lead-quality.js:557"}, "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-320a93f9cfb88433", "name": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/waterfall.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/waterfall.js:140"}, "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-6024fd63fa75ae4d", "name": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/free-verify.js:190", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/free-verify.js:190"}, "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-630a6dbee1af6fa8", "name": "Stray `console.log` in TS/JS \u2014 src/lib/llm/groq.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/groq.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-238c381a795a217c", "name": "Stray `console.log` in TS/JS \u2014 src/lib/llm/router.js:231", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/router.js:231"}, "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-913c578e09e1ff56", "name": "Stray `console.log` in TS/JS \u2014 src/lib/llm/gemini.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/gemini.js:69"}, "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-21fe936c4204af8c", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S065-touch-scheduler/scripts/send-due.js:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S065-touch-scheduler/scripts/send-due.js:213"}, "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-e2ffe92151a3d582", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/tests/10-layer.test.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/tests/10-layer.test.js:39"}, "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-742b060605c53175", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:22"}, "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-0cbc7063c6337273", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/run.js:375", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/run.js:375"}, "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-21ac7e99e0459502", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/content-depth.js:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/content-depth.js:113"}, "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-8155f16fb953a5cf", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/website.js:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/website.js:168"}, "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-b8035788be0bc77c", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/tls-dns.js:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/tls-dns.js:99"}, "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-6875bb0c0476c7bb", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/ad-intel.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/ad-intel.js:98"}, "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-4ed197a1058520b5", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/technical-seo.js:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/technical-seo.js:115"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d204fc3a911de65b", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/seo.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/seo.js:169"}, "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-a467b94f524a73a7", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:752", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:752"}, "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-15657cd7eacd9401", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:87"}, "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-4ca8c5c0ada4dc75", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/public-records.js:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/public-records.js:106"}, "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-cbe8223747dd13a9", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/accessibility.js:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/accessibility.js:113"}, "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-b687ec003f094964", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S024-bounce-handler/scripts/handle.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S024-bounce-handler/scripts/handle.js:90"}, "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-e3e614bef2f805d2", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S025-warmup-engage/scripts/engage.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S025-warmup-engage/scripts/engage.js:44"}, "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-eab9cf86bd2db864", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S006-linkedin-drafter-v2/scripts/draft.js:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S006-linkedin-drafter-v2/scripts/draft.js:133"}, "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-1c4a215f634faf93", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S027-proposal-versioning/scripts/version.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S027-proposal-versioning/scripts/version.js:55"}, "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-1872cbc852b6f154", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S067-instagram-drafter/scripts/draft.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S067-instagram-drafter/scripts/draft.js:57"}, "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-884ec52021ac0a53", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S012-reply-intent-classifier/scripts/classify.js:218", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S012-reply-intent-classifier/scripts/classify.js:218"}, "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-5e94c1aef7b93c34", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S057-pre-call-brief/scripts/build.js:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S057-pre-call-brief/scripts/build.js:112"}, "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-871e59113f235152", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S064-touch-cadence/scripts/render.js:281", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S064-touch-cadence/scripts/render.js:281"}, "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-69bbc234498c773b", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S063-deep-research/scripts/research.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S063-deep-research/scripts/research.js:67"}, "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-673f88da019e4e7f", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:148"}, "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-e552e9c635c2d4b3", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/run.js:240", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/run.js:240"}, "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-b2fcd755a3a4da7f", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S059-lexquity-investor-track/scripts/seed.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S059-lexquity-investor-track/scripts/seed.js:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81765664d73116f5", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S060-gemini-lead-enricher/scripts/enrich.js:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S060-gemini-lead-enricher/scripts/enrich.js:149"}, "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-537efd1274ad55ac", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S019-engagement-tracker/scripts/track.js:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S019-engagement-tracker/scripts/track.js:108"}, "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-9dd9772c00411e0f", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S033-ad-intel-orchestrator/scripts/run.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S033-ad-intel-orchestrator/scripts/run.js:103"}, "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-db25e07dca51fac7", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S036-regulator-watch/scripts/ingest.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S036-regulator-watch/scripts/ingest.js:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fc8d15c6ac2a73dd", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S016-alias-health-monitor/scripts/monitor.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S016-alias-health-monitor/scripts/monitor.js:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faa7d3e6903c724e", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S062-auto-trigger-chain/scripts/run.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S062-auto-trigger-chain/scripts/run.js:74"}, "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-65f8eb1245e05208", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S023-mail-tester-runner/scripts/run.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S023-mail-tester-runner/scripts/run.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a00277ed26a12ecc", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S051-ssl-cert-monitor/scripts/check.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S051-ssl-cert-monitor/scripts/check.js:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-63ce718e6d34781f", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S025-audit-page-builder/scripts/build.js:641", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S025-audit-page-builder/scripts/build.js:641"}, "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-8243112435be858b", "name": "Stray `console.log` in TS/JS \u2014 src/skills/S051-dns-health-monitor/scripts/check.js:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S051-dns-health-monitor/scripts/check.js:54"}, "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-29affc83fd6202d3", "name": "Dockerfile runs as root: services/crawl-render/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/crawl-render/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-202e3f9537d9946d", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright/python:v1.44.0-jammy", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright/python:v1.44.0-jammy"}, "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-a29e36eb7f5ce410", "name": "Insecure pattern 'node_child_process' in ops/infra/hetzner-verify.js:80", "shortDescription": {"text": "Insecure pattern 'node_child_process' in ops/infra/hetzner-verify.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-536d986e8b7b8ca9", "name": "Insecure pattern 'node_child_process' in scripts/pre-send-pipeline.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/pre-send-pipeline.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1de3cfb24b27589f", "name": "Insecure pattern 'node_child_process' in scripts/approve-leads.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/approve-leads.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ada11f77795b758", "name": "Insecure pattern 'node_child_process' in scripts/remint-audits.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/remint-audits.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edd6214c967f16ef", "name": "Insecure pattern 'node_child_process' in scripts/enrich-worker.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/enrich-worker.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbdbbfe59c0512f8", "name": "Insecure pattern 'node_child_process' in scripts/run-serp-scrape.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-serp-scrape.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b16fdc209b626f0", "name": "Insecure pattern 'node_child_process' in scripts/push-to-mystrika.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/push-to-mystrika.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac0844af27f415b2", "name": "Insecure pattern 'node_child_process' in scripts/deliverability-guard.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/deliverability-guard.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b37e78a4190118c", "name": "Insecure pattern 'node_child_process' in scripts/reap-stale-runs.js:30", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/reap-stale-runs.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7026cb2b91b76371", "name": "Insecure pattern 'node_child_process' in scripts/reconcile-cal-bookings.js:30", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/reconcile-cal-bookings.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c990f56700f9a48", "name": "Insecure pattern 'node_child_process' in scripts/verify-audits.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verify-audits.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46d83d45e7545a39", "name": "Insecure pattern 'node_child_process' in scripts/refresh-enforcement-news.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/refresh-enforcement-news.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19cb2c15f20ec68d", "name": "Insecure pattern 'node_child_process' in scripts/mystrika-export.js:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/mystrika-export.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b65c2d9e756579fd", "name": "Insecure pattern 'node_child_process' in scripts/health-check.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/health-check.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34eafed56fce178e", "name": "Insecure pattern 'node_child_process' in scripts/self-audit-workflow.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/self-audit-workflow.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37c740ba008a76f0", "name": "Insecure pattern 'node_child_process' in scripts/dedupe-leads.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dedupe-leads.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4308468e13b958d3", "name": "Insecure pattern 'node_child_process' in scripts/recycle.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/recycle.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f29eba3fcabe3268", "name": "Insecure pattern 'node_child_process' in scripts/claude-safeguard-batch.js:40", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/claude-safeguard-batch.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b54f083f42f29651", "name": "Insecure pattern 'node_child_process' in scripts/scrape-all.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/scrape-all.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15223a036103cae2", "name": "Insecure pattern 'node_child_process' in scripts/eval-llm-rescue.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eval-llm-rescue.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c8568ca4dcaa1f6", "name": "Insecure pattern 'node_child_process' in scripts/match-inbound-replies.js:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/match-inbound-replies.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb72ce548c1e645a", "name": "Insecure pattern 'node_child_process' in scripts/verify-contacts.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verify-contacts.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0cf11fae34187ac2", "name": "Insecure pattern 'node_child_process' in scripts/scorecard-nightly.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/scorecard-nightly.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f405ce9ab2b5efa", "name": "Insecure pattern 'node_child_process' in scripts/enforcement-sync.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/enforcement-sync.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b4dbb91dc5dddcb", "name": "Insecure pattern 'node_child_process' in scripts/check-stuck-jobs.js:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/check-stuck-jobs.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aece4b8101ecfd1e", "name": "Insecure pattern 'node_child_process' in scripts/compute-metrics.js:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/compute-metrics.js:31"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac7b4ecbaf8b95b6", "name": "Insecure pattern 'node_child_process' in scripts/render-social-drafts.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/render-social-drafts.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b6941912819eb55", "name": "Insecure pattern 'node_child_process' in scripts/requalify-all-leads.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/requalify-all-leads.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0af84ca04e30322", "name": "Insecure pattern 'node_child_process' in scripts/build-rank-insights.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-rank-insights.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d249a0cb04fa037", "name": "Insecure pattern 'node_child_process' in scripts/sync-mystrika-replies.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sync-mystrika-replies.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6838d87f9821d4ea", "name": "Insecure pattern 'node_child_process' in scripts/plane-leads-sync.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/plane-leads-sync.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-531e82b7bb51ce50", "name": "Insecure pattern 'node_child_process' in scripts/enrich-and-queue-channels.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/enrich-and-queue-channels.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6be70d56b93f08de", "name": "Insecure pattern 'node_child_process' in scripts/apply-review.js:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/apply-review.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11a824a15131f8b6", "name": "Insecure pattern 'node_child_process' in scripts/qualify-and-queue.js:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/qualify-and-queue.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66fffba006eeafe5", "name": "Insecure pattern 'node_child_process' in scripts/refresh-pipeline.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/refresh-pipeline.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3673e7c1596e5ebc", "name": "Insecure pattern 'node_child_process' in scripts/run-deep-research-batch.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-deep-research-batch.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72c9ac41da974a12", "name": "Insecure pattern 'node_child_process' in scripts/render-touches.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/render-touches.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11e546caae05d0af", "name": "Insecure pattern 'node_child_process' in scripts/mint-worker.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/mint-worker.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80b842f728732a01", "name": "Insecure pattern 'node_child_process' in scripts/build-crm-dashboard.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-crm-dashboard.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6186d76420b60670", "name": "Insecure pattern 'node_child_process' in scripts/resolve-registry-domains.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/resolve-registry-domains.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f6b129dd6f6421d", "name": "Insecure pattern 'node_child_process' in scripts/reconcile.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/reconcile.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-645260d5177de59c", "name": "Insecure pattern 'node_child_process' in scripts/buying-signals.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/buying-signals.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8b9ad5dd79bb061", "name": "Insecure pattern 'node_child_process' in scripts/enqueue-leads.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/enqueue-leads.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f33783c71efdc22c", "name": "Insecure pattern 'node_child_process' in scripts/heartbeat.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/heartbeat.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fd831f4ab22e091", "name": "Insecure pattern 'node_child_process' in scripts/materialise-client-emails.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/materialise-client-emails.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1116a1c0a9e89175", "name": "Insecure pattern 'node_child_process' in scripts/intel-pulse.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/intel-pulse.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-281dd00b4b9a3664", "name": "Insecure pattern 'node_child_process' in scripts/daily-digest.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/daily-digest.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8003b6ef3a399748", "name": "Insecure pattern 'node_child_process' in scripts/gen-state.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/gen-state.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6858e6bb0b9af6cf", "name": "Insecure pattern 'node_child_process' in scripts/zoho-imap-poll.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/zoho-imap-poll.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66abbe69484168b5", "name": "Insecure pattern 'node_child_process' in scripts/qa-compliance.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/qa-compliance.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1911a21d2a5c086e", "name": "Insecure pattern 'node_child_process' in scripts/v3/migrate-v3-schema.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/v3/migrate-v3-schema.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70f66e60daa2b4ae", "name": "Insecure pattern 'node_child_process' in scripts/v3/normalise-names.js:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/v3/normalise-names.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d402e67b3fa8133", "name": "Insecure pattern 'node_child_process' in scripts/migrations/normalize-rule-sectors.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/normalize-rule-sectors.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b05ae744fb6916b9", "name": "Insecure pattern 'node_child_process' in scripts/migrations/build-canonical-laws.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/build-canonical-laws.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93ff152e1e0a05ec", "name": "Insecure pattern 'node_child_process' in scripts/migrations/test-sector-accuracy.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/test-sector-accuracy.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15e84141c139ffd0", "name": "Insecure pattern 'node_child_process' in scripts/migrations/qa-validate-library.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/qa-validate-library.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae6d43d7296fcab1", "name": "Insecure pattern 'node_child_process' in scripts/migrations/audit-rule-gates.js:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/audit-rule-gates.js:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f9c4b1a12066cb8", "name": "Insecure pattern 'node_child_process' in scripts/migrations/load-canonical-laws.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/load-canonical-laws.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d28ee9f7136273e", "name": "Insecure pattern 'direct_innerhtml_assignment' in cloudflare/admin-worker.js:249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cloudflare/admin-worker.js:249"}, "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-270dbb0813d4df1e", "name": "Insecure pattern 'eval_used' in .github/workflows/eval-qualifier.yml:31", "shortDescription": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-qualifier.yml:31"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdb09d3bb75af270", "name": "Insecure pattern 'eval_used' in .github/workflows/eval-audit-gaps.yml:29", "shortDescription": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-audit-gaps.yml:29"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d64e82a53c90476", "name": "Insecure pattern 'eval_used' in .github/workflows/eval-audit.yml:18", "shortDescription": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-audit.yml:18"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee1a2e02c0b13d78", "name": "Insecure pattern 'node_child_process' in src/lib/llm-rescue.js:37", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/llm-rescue.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe9ad6bcaea5531f", "name": "Insecure pattern 'node_child_process' in src/lib/governor.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/governor.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fd445dfc439cb46", "name": "Insecure pattern 'node_child_process' in src/lib/pipeline-gap-fills.js:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/pipeline-gap-fills.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2e61ce3fc430c743", "name": "Insecure pattern 'node_child_process' in src/lib/variant-selector.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/variant-selector.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ba91e0f2340d767", "name": "Insecure pattern 'node_child_process' in src/lib/sourcing-attribution.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing-attribution.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c68245feee310fd", "name": "Insecure pattern 'node_child_process' in src/lib/reply-notifier.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/reply-notifier.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db5a55c9bf4b9f55", "name": "Insecure pattern 'node_child_process' in src/lib/llm-factcheck.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/llm-factcheck.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8d519ae61276333", "name": "Insecure pattern 'node_child_process' in src/lib/neon.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/neon.js:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57e9185edf8b3249", "name": "Insecure pattern 'node_child_process' in src/lib/imap-poll-worker.js:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/imap-poll-worker.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff4548b0de62caa4", "name": "Insecure pattern 'node_child_process' in src/lib/send-guards.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/send-guards.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa8697b48e691262", "name": "Insecure pattern 'node_child_process' in src/lib/alias-rotator.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/alias-rotator.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae4f8c780282fdf1", "name": "Insecure pattern 'node_child_process' in src/lib/personalisation-injector.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/personalisation-injector.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da18426e47042513", "name": "Insecure pattern 'node_child_process' in src/lib/notify/policy.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/notify/policy.js:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba3b87dbbbd9893a", "name": "Insecure pattern 'node_child_process' in src/lib/notify/relay-router.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/notify/relay-router.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55ab45ecfedddece", "name": "Insecure pattern 'node_child_process' in src/lib/audit/verify-audit-url.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/audit/verify-audit-url.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66e32f3452b26cb2", "name": "Insecure pattern 'node_child_process' in src/lib/audit/gap-finder.js:79", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/audit/gap-finder.js:79"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a3a31c5cb811864f", "name": "Insecure pattern 'node_child_process' in src/lib/compliance/connect.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/compliance/connect.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de2e899b56ef0f59", "name": "Insecure pattern 'node_child_process' in src/lib/ad-intel/cross-platform-scorer.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/cross-platform-scorer.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6d3d2cb2007a0cd", "name": "Insecure pattern 'node_child_process' in src/lib/ad-intel/W14-cron.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/W14-cron.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0481a22b20eda732", "name": "Insecure pattern 'node_child_process' in src/lib/ad-intel/bucket-d-integrator.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/bucket-d-integrator.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3beef2b3a7718a26", "name": "Insecure pattern 'node_child_process' in src/lib/scraping/query-calendar.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/query-calendar.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b9d20cd742204cb", "name": "Insecure pattern 'node_child_process' in src/lib/scraping/serp-engine.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/serp-engine.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6758d37e555c28a6", "name": "Insecure pattern 'node_child_process' in src/lib/scraping/google-sponsored.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/google-sponsored.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-622e061f1edc6cff", "name": "Insecure pattern 'node_child_process' in src/lib/sourcing/bulk-sourcer.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing/bulk-sourcer.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7288647ade06865c", "name": "Insecure pattern 'node_child_process' in src/lib/sourcing/sources/adapters.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing/sources/adapters.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7de5503f8b97c68", "name": "Insecure pattern 'node_child_process' in src/lib/llm/router.js:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/llm/router.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-278fab6864d65a07", "name": "Insecure pattern 'node_child_process' in src/skills/S065-touch-scheduler/scripts/send-due.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S065-touch-scheduler/scripts/send-due.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-925688eff93ce673", "name": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aed2c036139c0470", "name": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/run.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/run.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f382bf43dc67b9b", "name": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/lib/http.js:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/lib/http.js:3"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-273d8f7594cdc354", "name": "Insecure pattern 'document_write' in src/skills/S008-personalisation-engine/scanners/content-depth.js:75", "shortDescription": {"text": "Insecure pattern 'document_write' in src/skills/S008-personalisation-engine/scanners/content-depth.js:75"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f55fffde7bc8cf6c", "name": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scanners/compliance.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scanners/compliance.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80ea89971e13aec1", "name": "Insecure pattern 'eval_used' in src/skills/S008-personalisation-engine/scanners/security-headers.js:41", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/skills/S008-personalisation-engine/scanners/security-headers.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1301ab6e4ac9f43", "name": "Insecure pattern 'node_child_process' in src/skills/S024-bounce-handler/scripts/handle.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S024-bounce-handler/scripts/handle.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a512ed4de716372", "name": "Insecure pattern 'node_child_process' in src/skills/S025-warmup-engage/scripts/engage.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S025-warmup-engage/scripts/engage.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-519e4d937391e123", "name": "Insecure pattern 'node_child_process' in src/skills/S006-linkedin-drafter-v2/scripts/draft.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S006-linkedin-drafter-v2/scripts/draft.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cbb8e18c3f1cb3da", "name": "Insecure pattern 'node_child_process' in src/skills/S027-proposal-versioning/scripts/version.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S027-proposal-versioning/scripts/version.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a89549c166ca8c3", "name": "Insecure pattern 'node_child_process' in src/skills/S067-instagram-drafter/scripts/draft.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S067-instagram-drafter/scripts/draft.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86c053c833711ed8", "name": "Insecure pattern 'node_child_process' in src/skills/S012-reply-intent-classifier/scripts/classify.js:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S012-reply-intent-classifier/scripts/classify.js:29"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a07cead8fa23502b", "name": "Insecure pattern 'node_child_process' in src/skills/S057-pre-call-brief/scripts/build.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S057-pre-call-brief/scripts/build.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-825ab244a6af7f30", "name": "Insecure pattern 'node_child_process' in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3d050b6ce6c287e", "name": "Insecure pattern 'node_child_process' in src/skills/S015-check-compliance/scripts/check.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S015-check-compliance/scripts/check.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8079565f5639264", "name": "Insecure pattern 'node_child_process' in src/skills/S064-touch-cadence/scripts/render.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S064-touch-cadence/scripts/render.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-63a9a003a1eb82f9", "name": "Insecure pattern 'node_child_process' in src/skills/S063-deep-research/scripts/research.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S063-deep-research/scripts/research.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-265f13489981b27f", "name": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb814cb332053d01", "name": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/run.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/run.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd45ad61ae39cb10", "name": "Insecure pattern 'node_child_process' in src/skills/S059-lexquity-investor-track/scripts/seed.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S059-lexquity-investor-track/scripts/seed.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4abd4f93707e11d9", "name": "Insecure pattern 'node_child_process' in src/skills/S013-response-draft-generator/scripts/draft.js:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S013-response-draft-generator/scripts/draft.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80722176ec9c0db1", "name": "Insecure pattern 'node_child_process' in src/skills/S060-gemini-lead-enricher/scripts/enrich.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S060-gemini-lead-enricher/scripts/enrich.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b479cce4af383785", "name": "Insecure pattern 'node_child_process' in src/skills/S019-engagement-tracker/scripts/track.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S019-engagement-tracker/scripts/track.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dc4da095347ce0d", "name": "Insecure pattern 'node_child_process' in src/skills/S033-ad-intel-orchestrator/scripts/run.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S033-ad-intel-orchestrator/scripts/run.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fffbb56bdf54882f", "name": "Insecure pattern 'node_child_process' in src/skills/S036-regulator-watch/scripts/ingest.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S036-regulator-watch/scripts/ingest.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d06422b61b50337", "name": "Insecure pattern 'node_child_process' in src/skills/S016-alias-health-monitor/scripts/monitor.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S016-alias-health-monitor/scripts/monitor.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-210eb10d9b9e55e4", "name": "Insecure pattern 'node_child_process' in src/skills/S062-auto-trigger-chain/scripts/run.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S062-auto-trigger-chain/scripts/run.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-785a05da2c1205d9", "name": "Insecure pattern 'node_child_process' in src/skills/S023-mail-tester-runner/scripts/run.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S023-mail-tester-runner/scripts/run.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3273941e9cf8c0d1", "name": "Insecure pattern 'node_child_process' in src/skills/S051-ssl-cert-monitor/scripts/check.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S051-ssl-cert-monitor/scripts/check.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bffaacd94fce742c", "name": "Insecure pattern 'node_child_process' in src/skills/S025-audit-page-builder/scripts/build.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S025-audit-page-builder/scripts/build.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbbd435a569a8f2e", "name": "Insecure pattern 'node_child_process' in src/skills/S051-dns-health-monitor/scripts/check.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/skills/S051-dns-health-monitor/scripts/check.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-095d185de673764c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0adc78580578662", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "anthropics/claude-code-action@v1 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-742365de161371aa", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ff2ce02f33cb190", "name": "Very large file: cloudflare/audit-worker-v14.js (1690 lines)", "shortDescription": {"text": "Very large file: cloudflare/audit-worker-v14.js (1690 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": "17 test file(s) for 270 source file(s) (ratio 0.06). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 652 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 50 placeholder/mock markers across 29 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b69a22b2c5ff5bfd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_psi.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_psi.js:6"}, "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-b697f953834535c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_step.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_step.js:5"}, "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-f8f851bdb00dc350", "name": "`fetch()` without try/.catch or AbortSignal \u2014 beta-run.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 beta-run.js:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0046fbee54968db0", "name": "Legacy-named symbol `hours_old` in scrapers/run_jobspy.py:55", "shortDescription": {"text": "Legacy-named symbol `hours_old` in scrapers/run_jobspy.py:55"}, "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-cc0d77d2c3fe13dc", "name": "Commented-code block (7 lines) in tests/touch-0-dry-run.js:7", "shortDescription": {"text": "Commented-code block (7 lines) in tests/touch-0-dry-run.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22d3049b0d9f82d6", "name": "Commented-code block (10 lines) in tests/phase-6.7-10-layer.test.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in tests/phase-6.7-10-layer.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bb6cb04e86bcc37", "name": "Commented-code block (8 lines) in mcp/tamazia-ops/server.py:137", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/tamazia-ops/server.py:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2f28da3548d677e", "name": "Commented-code block (6 lines) in scripts/pre-send-pipeline.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/pre-send-pipeline.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05761930f9087e88", "name": "Commented-code block (7 lines) in scripts/approve-leads.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/approve-leads.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8d48dcfdeb73bf2", "name": "Commented-code block (9 lines) in scripts/enrich-worker.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/enrich-worker.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b947032e36d18324", "name": "Commented-code block (5 lines) in scripts/run-serp-scrape.js:24", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/run-serp-scrape.js:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd68b5eb6f680eed", "name": "Commented-code block (13 lines) in scripts/push-to-mystrika.js:32", "shortDescription": {"text": "Commented-code block (13 lines) in scripts/push-to-mystrika.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d665ca1e06e36cd", "name": "Commented-code block (8 lines) in scripts/eval-qualifier.js:7", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/eval-qualifier.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75d60f02d5a2a2b2", "name": "Commented-code block (5 lines) in scripts/deliverability-guard.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/deliverability-guard.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25e937528179592f", "name": "Commented-code block (7 lines) in scripts/reap-stale-runs.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/reap-stale-runs.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f4a589986d5b3fe", "name": "Commented-code block (7 lines) in scripts/reconcile-cal-bookings.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/reconcile-cal-bookings.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-202fead149321ade", "name": "Commented-code block (7 lines) in scripts/verify-audits.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/verify-audits.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec9e8f154bc6c162", "name": "Commented-code block (5 lines) in scripts/refresh-enforcement-news.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/refresh-enforcement-news.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0de6f32276562edf", "name": "Commented-code block (13 lines) in scripts/mystrika-export.js:5", "shortDescription": {"text": "Commented-code block (13 lines) in scripts/mystrika-export.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41800e84c36470ea", "name": "Commented-code block (6 lines) in scripts/self-audit-workflow.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/self-audit-workflow.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c5dfa41738a7361", "name": "Commented-code block (6 lines) in scripts/dedupe-leads.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/dedupe-leads.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d01e6eae4223e95", "name": "Commented-code block (7 lines) in scripts/recycle.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/recycle.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf418faabb601a88", "name": "Commented-code block (7 lines) in scripts/claude-safeguard-batch.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/claude-safeguard-batch.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e14b63cfaeaa362f", "name": "Commented-code block (5 lines) in scripts/source-leads.js:56", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/source-leads.js:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c5c4830576d039d", "name": "Commented-code block (8 lines) in scripts/scrape-all.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/scrape-all.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa7b3debd0dc7497", "name": "Commented-code block (5 lines) in scripts/eval-llm-rescue.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/eval-llm-rescue.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f623f65598a8378", "name": "Commented-code block (5 lines) in scripts/notify-event.js:21", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/notify-event.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3e8f175348901aa", "name": "Commented-code block (6 lines) in scripts/match-inbound-replies.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/match-inbound-replies.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9222db2baafb1236", "name": "Commented-code block (8 lines) in scripts/verify-contacts.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/verify-contacts.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c753f8c6c6862d5d", "name": "Commented-code block (8 lines) in scripts/scorecard-nightly.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/scorecard-nightly.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3509f764f3ec7ce8", "name": "Commented-code block (8 lines) in scripts/enforcement-sync.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/enforcement-sync.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a32fb9c3419420bc", "name": "Commented-code block (5 lines) in scripts/check-stuck-jobs.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check-stuck-jobs.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fee66e35d37623f", "name": "Commented-code block (7 lines) in scripts/compute-metrics.js:14", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/compute-metrics.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdec70bd2586f680", "name": "Commented-code block (7 lines) in scripts/eval-audit-gaps.mjs:2", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/eval-audit-gaps.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81362f7ea1e51a07", "name": "Commented-code block (5 lines) in scripts/requalify-all-leads.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/requalify-all-leads.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-119e46e6f8ddadb8", "name": "Commented-code block (7 lines) in scripts/backtest-personalisation.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/backtest-personalisation.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da364a687a89edbc", "name": "Commented-code block (5 lines) in scripts/sync-mystrika-replies.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sync-mystrika-replies.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-025405478945b948", "name": "Commented-code block (6 lines) in scripts/enrich-and-queue-channels.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/enrich-and-queue-channels.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1310d63f638957e", "name": "Commented-code block (12 lines) in scripts/apply-review.js:3", "shortDescription": {"text": "Commented-code block (12 lines) in scripts/apply-review.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2736c952765bba9", "name": "Commented-code block (10 lines) in scripts/qualify-and-queue.js:2", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/qualify-and-queue.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba9f29577d872a2a", "name": "Commented-code block (5 lines) in scripts/ensure-schema.js:87", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/ensure-schema.js:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d362bb0b6d1622f", "name": "Commented-code block (6 lines) in scripts/refresh-pipeline.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/refresh-pipeline.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a0e4e10507dc526", "name": "Commented-code block (6 lines) in scripts/render-touches.js:18", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/render-touches.js:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8e371bc074268b1", "name": "Commented-code block (7 lines) in scripts/mint-worker.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/mint-worker.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00049dd615e2824b", "name": "Commented-code block (5 lines) in scripts/governor-release.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/governor-release.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ea916da77da6aaa", "name": "Commented-code block (6 lines) in scripts/resolve-registry-domains.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/resolve-registry-domains.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7520ce4c10affa84", "name": "Commented-code block (7 lines) in scripts/run-llm-rescue.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/run-llm-rescue.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41fcaf92eec655b3", "name": "Commented-code block (8 lines) in scripts/reconcile.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/reconcile.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a4fe7b906c9a3d9", "name": "Commented-code block (6 lines) in scripts/heartbeat.js:33", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/heartbeat.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21268c233eb4b4e5", "name": "Commented-code block (5 lines) in scripts/gen-state.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-state.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5211d9f6e54c2337", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-connection.mjs:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-connection.mjs:3"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99b20a5cde46b3e3", "name": "Commented-code block (5 lines) in scripts/qa-compliance.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/qa-compliance.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-200408ba51d8dc22", "name": "Commented-code block (7 lines) in scripts/v3/normalise-names.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/v3/normalise-names.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d706e621df466521", "name": "Commented-code block (8 lines) in scripts/migrations/normalize-rule-sectors.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/migrations/normalize-rule-sectors.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fc44430a1c2ecb3", "name": "Commented-code block (7 lines) in scripts/migrations/build-canonical-laws.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/migrations/build-canonical-laws.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3e980d9e8e3bd42", "name": "Commented-code block (10 lines) in scripts/migrations/test-sector-accuracy.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/migrations/test-sector-accuracy.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-295a1ffc5c46275a", "name": "Commented-code block (5 lines) in scripts/migrations/audit-rule-gates.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/migrations/audit-rule-gates.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1413e84d459bce3d", "name": "Commented-code block (5 lines) in scripts/migrations/load-canonical-laws.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/migrations/load-canonical-laws.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccda8e72ce8e6ecb", "name": "Commented-code block (5 lines) in cloudflare/admin-worker.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in cloudflare/admin-worker.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db9d8028b081a8b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/admin-worker.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/admin-worker.js:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea6a8bbdd5a40836", "name": "Commented-code block (10 lines) in cloudflare/audit-worker.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in cloudflare/audit-worker.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff9c5f7677f9efc5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker.js:734", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker.js:734"}, "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-d030b1a6c9fef0b1", "name": "Commented-code block (12 lines) in cloudflare/audit-worker-v14.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in cloudflare/audit-worker-v14.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e143343539763f85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker-v14.js:1450", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker-v14.js:1450"}, "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-2c96dc4b31211704", "name": "Commented-code block (9 lines) in eval/retier-persisted.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in eval/retier-persisted.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b06d000313d391c0", "name": "Commented-code block (8 lines) in src/lib/gap-ledger.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/gap-ledger.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-739dc3d1b72332e9", "name": "Commented-code block (8 lines) in src/lib/llm-rescue.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/llm-rescue.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b7960477e43ea70", "name": "Commented-code block (5 lines) in src/lib/gates.js:52", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/gates.js:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07db04ab374a40c1", "name": "Commented-code block (8 lines) in src/lib/governor.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/governor.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4ff7a55c1dbb46e", "name": "Commented-code block (17 lines) in src/lib/pipeline-gap-fills.js:4", "shortDescription": {"text": "Commented-code block (17 lines) in src/lib/pipeline-gap-fills.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dbd090b3e49fe00", "name": "Commented-code block (5 lines) in src/lib/reply-notifier.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/reply-notifier.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f41d7921b72f4246", "name": "Commented-code block (10 lines) in src/lib/llm-factcheck.js:2", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/llm-factcheck.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5757cd21c8536ee8", "name": "Commented-code block (15 lines) in src/lib/imap-poll-worker.js:1", "shortDescription": {"text": "Commented-code block (15 lines) in src/lib/imap-poll-worker.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54215031498580f4", "name": "Commented-code block (5 lines) in src/lib/independent-verify.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/independent-verify.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-749b3dde8b6bea3e", "name": "Commented-code block (10 lines) in src/lib/personalisation-injector.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/personalisation-injector.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f350d5e95c0ec369", "name": "Commented-code block (7 lines) in src/lib/apify/client.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/apify/client.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-158dee7108cf2b36", "name": "Commented-code block (7 lines) in src/lib/notify/zoho-imap-client.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/notify/zoho-imap-client.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37d91b4efb703a27", "name": "Commented-code block (9 lines) in src/lib/notify/relay-router.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/notify/relay-router.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4147dcc404d92e76", "name": "Commented-code block (8 lines) in src/lib/audit/competitor-overlap.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/audit/competitor-overlap.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-961917f1053312d1", "name": "Commented-code block (7 lines) in src/lib/audit/verify-audit-url.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/audit/verify-audit-url.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44099c907b200143", "name": "Commented-code block (5 lines) in src/lib/audit/site-scan.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audit/site-scan.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65db116cef8106a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/audit/site-scan.js:343", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/audit/site-scan.js:343"}, "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-1210f4d11ce9d0db", "name": "Commented-code block (6 lines) in src/lib/audit/firm-profile.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/audit/firm-profile.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6641c31643e8bc12", "name": "Commented-code block (8 lines) in src/lib/audit/hf-ml.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/audit/hf-ml.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f1d0090086688d2", "name": "Commented-code block (6 lines) in src/lib/audit/geo-probe.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/audit/geo-probe.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13eb08e33982d404", "name": "Legacy-named symbol `bing_kw_v1` in src/lib/audit/bing-volume.js:34", "shortDescription": {"text": "Legacy-named symbol `bing_kw_v1` in src/lib/audit/bing-volume.js:34"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56bc63f0cb4bd064", "name": "Commented-code block (5 lines) in src/lib/audit/fix-writer.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audit/fix-writer.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce944232d55efac4", "name": "Commented-code block (5 lines) in src/lib/audit/gap-finder.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audit/gap-finder.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16d423971e49f07e", "name": "Commented-code block (5 lines) in src/lib/audit/cc-index.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audit/cc-index.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8c69e0c7d6133cd", "name": "Commented-code block (6 lines) in src/lib/compliance/enforcement.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/compliance/enforcement.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2058f876a7da058b", "name": "Commented-code block (8 lines) in src/lib/compliance/resolver.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/compliance/resolver.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b2f1e7b3c839891", "name": "Commented-code block (5 lines) in src/lib/compliance/tracker-detect.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/compliance/tracker-detect.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-060e9bb1060fb503", "name": "Commented-code block (5 lines) in src/lib/touch0/rank-insight.js:246", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/touch0/rank-insight.js:246"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a9e0b8f2acb5d70", "name": "Commented-code block (5 lines) in src/lib/ad-intel/pixel-detector.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/ad-intel/pixel-detector.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b218f17a3d1261d2", "name": "Commented-code block (7 lines) in src/lib/ad-intel/intent-job-boards.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/ad-intel/intent-job-boards.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-235da40002363002", "name": "Commented-code block (6 lines) in src/lib/ad-intel/W14-cron.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/ad-intel/W14-cron.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a565a78586f659b", "name": "Commented-code block (7 lines) in src/lib/ad-intel/meta.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/ad-intel/meta.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-096b29143aaa2978", "name": "Commented-code block (5 lines) in src/lib/scraping/query-calendar.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/scraping/query-calendar.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-754c225c137654db", "name": "Legacy-named symbol `serp_v1` in src/lib/scraping/serp-client.js:55", "shortDescription": {"text": "Legacy-named symbol `serp_v1` in src/lib/scraping/serp-client.js:55"}, "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-0a009154024f87dc", "name": "Commented-code block (5 lines) in src/lib/scraping/serp-client.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/scraping/serp-client.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16c4333ec196c6d2", "name": "Legacy-named symbol `serp_v1` in src/lib/scraping/free-serp.js:88", "shortDescription": {"text": "Legacy-named symbol `serp_v1` in src/lib/scraping/free-serp.js:88"}, "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-b57114ed759c719d", "name": "Commented-code block (8 lines) in src/lib/scraping/serp-engine.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/scraping/serp-engine.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16be008322726167", "name": "Commented-code block (10 lines) in src/lib/sourcing/sra-register.js:2", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/sourcing/sra-register.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2451d775164dc482", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sourcing/sra-register.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sourcing/sra-register.js:6"}, "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-c6e74c27381708e7", "name": "Commented-code block (6 lines) in src/lib/sourcing/enrich.js:53", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sourcing/enrich.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76ba9916f88e1626", "name": "Commented-code block (7 lines) in src/lib/sourcing/dm-registers.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/sourcing/dm-registers.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-213505cc2c371ee6", "name": "Commented-code block (9 lines) in src/lib/sourcing/conversion.js:23", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/sourcing/conversion.js:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7923dd2954eebd9c", "name": "Commented-code block (6 lines) in src/lib/sourcing/safe-insert.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sourcing/safe-insert.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9260e9916d6a0ca4", "name": "Commented-code block (6 lines) in src/lib/sourcing/resolve-name.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sourcing/resolve-name.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-486dd88b429de2f2", "name": "Commented-code block (6 lines) in src/lib/sourcing/icp.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sourcing/icp.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9a8bfcefbcb9631", "name": "Commented-code block (5 lines) in src/lib/sourcing/find-every-email.js:45", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/sourcing/find-every-email.js:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cbd472359d44851", "name": "Commented-code block (9 lines) in src/lib/enrich/lead-quality.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/enrich/lead-quality.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfcb8ab14bbd3b7f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/enrich/waterfall.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/enrich/waterfall.js:5"}, "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-3a3cd918753ab813", "name": "Commented-code block (8 lines) in src/lib/enrich/verify-status.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/enrich/verify-status.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e51855128e46e5a", "name": "Commented-code block (11 lines) in src/lib/enrich/free-verify.js:4", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/enrich/free-verify.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-deee6b60ecde258c", "name": "Commented-code block (5 lines) in src/lib/enrich/verify-email.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/enrich/verify-email.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00efcd19dfef3184", "name": "Commented-code block (6 lines) in src/lib/llm/router.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/llm/router.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cf5e7d3b1ea1c04", "name": "Commented-code block (7 lines) in src/skills/S065-touch-scheduler/scripts/send-due.js:11", "shortDescription": {"text": "Commented-code block (7 lines) in src/skills/S065-touch-scheduler/scripts/send-due.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a400f8e0f3c53f5", "name": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/tests/10-layer.test.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/tests/10-layer.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fe3af948f8ff24a", "name": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac7cd56890123f5b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/lib/http.js:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/lib/http.js:53"}, "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-295fa573c641cea2", "name": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/hallucination-guard.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/hallucination-guard.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e8e1589112f1184", "name": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/score-rubric.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/score-rubric.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-930effd67c9dd9d2", "name": "Commented-code block (8 lines) in src/skills/S008-personalisation-engine/scanners/content-depth.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/skills/S008-personalisation-engine/scanners/content-depth.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3b3eeaf457cd59d", "name": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/ad-intel.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/ad-intel.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8aee357dc8f7170", "name": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/compliance.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/compliance.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-886d14dd7444bb45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:201", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:201"}, "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-93adb70edd160650", "name": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/security-headers.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/security-headers.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-065beac51d57c1c0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:66"}, "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-fc88702fc369cb32", "name": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/scanners/corpus-index.js:2", "shortDescription": {"text": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/scanners/corpus-index.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56c710c0a1b347a7", "name": "Commented-code block (5 lines) in src/skills/S024-bounce-handler/scripts/handle.js:64", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S024-bounce-handler/scripts/handle.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dce8abaad7c62e46", "name": "Commented-code block (6 lines) in src/skills/S067-instagram-drafter/scripts/draft.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/skills/S067-instagram-drafter/scripts/draft.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf46ddc7dbb1929c", "name": "Commented-code block (10 lines) in src/skills/S012-reply-intent-classifier/scripts/classify.js:7", "shortDescription": {"text": "Commented-code block (10 lines) in src/skills/S012-reply-intent-classifier/scripts/classify.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3a0332ea95907cc", "name": "Commented-code block (5 lines) in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2a9328604c50dc7", "name": "Commented-code block (7 lines) in src/skills/S064-touch-cadence/scripts/render.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/skills/S064-touch-cadence/scripts/render.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6822c2e0cf812964", "name": "Commented-code block (6 lines) in src/skills/S063-deep-research/scripts/research.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/skills/S063-deep-research/scripts/research.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a02529269ba99382", "name": "Commented-code block (5 lines) in src/skills/S013-response-draft-generator/scripts/draft.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S013-response-draft-generator/scripts/draft.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-909a16923ad9ea85", "name": "Commented-code block (5 lines) in src/skills/S019-engagement-tracker/scripts/track.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S019-engagement-tracker/scripts/track.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ae040cf331ec599", "name": "Commented-code block (5 lines) in src/skills/S016-alias-health-monitor/scripts/monitor.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S016-alias-health-monitor/scripts/monitor.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-508e4aa27ae43fc7", "name": "Commented-code block (5 lines) in src/skills/S001-compose-body/scripts/compose.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/skills/S001-compose-body/scripts/compose.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-210fb45457b368a7", "name": "Commented-code block (8 lines) in src/skills/S025-audit-page-builder/scripts/build.js:495", "shortDescription": {"text": "Commented-code block (8 lines) in src/skills/S025-audit-page-builder/scripts/build.js:495"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-916e7c006263cbd7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S025-audit-page-builder/scripts/build.js:497", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S025-audit-page-builder/scripts/build.js:497"}, "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-523e27ccde05f98b", "name": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/notify-event.js:28)", "shortDescription": {"text": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/notify-event.js:28)"}, "fullDescription": {"text": "`scripts/notify-event.js:28` calls `POST https://slack.com/api/chat.postMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/chat.postmessage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0536b531818b582", "name": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/notify-event.js:29)", "shortDescription": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/notify-event.js:29)"}, "fullDescription": {"text": "`scripts/notify-event.js:29` calls `POST https://api.telegram.org/bot${tok}/sendMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/sendmessage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76171c399a579c68", "name": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/check-stuck-jobs.js:50)", "shortDescription": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/check-stuck-jobs.js:50)"}, "fullDescription": {"text": "`scripts/check-stuck-jobs.js:50` calls `POST https://api.telegram.org/bot${tok}/sendMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/sendmessage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a232a60bd1ebce57", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${gkey} (scrip", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${gkey} (scripts/intel-pulse.js:50)"}, "fullDescription": {"text": "`scripts/intel-pulse.js:50` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${gkey}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89c3186930f9d282", "name": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (scripts/intel-pulse.js:61)", "shortDescription": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (scripts/intel-pulse.js:61)"}, "fullDescription": {"text": "`scripts/intel-pulse.js:61` calls `POST https://api.groq.com/openai/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.groq.com/openai/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8ea0f067966f706", "name": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/intel-pulse.js:76)", "shortDescription": {"text": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/intel-pulse.js:76)"}, "fullDescription": {"text": "`scripts/intel-pulse.js:76` calls `POST https://slack.com/api/chat.postMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/chat.postmessage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a44a550d4553b24", "name": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/intel-pulse.js:80)", "shortDescription": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/intel-pulse.js:80)"}, "fullDescription": {"text": "`scripts/intel-pulse.js:80` calls `POST https://api.telegram.org/bot${tok}/sendMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/sendmessage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-559288ead1e8e94a", "name": "Dangling fetch: POST /api/track/audit-event (deploy/astro/audit-tracking.js:12)", "shortDescription": {"text": "Dangling fetch: POST /api/track/audit-event (deploy/astro/audit-tracking.js:12)"}, "fullDescription": {"text": "`deploy/astro/audit-tracking.js:12` calls `POST /api/track/audit-event` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/track/audit-event`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73790be6d94fb1d1", "name": "Dangling fetch: POST https://${NEON_HOST}/sql (cloudflare/admin-worker.js:36)", "shortDescription": {"text": "Dangling fetch: POST https://${NEON_HOST}/sql (cloudflare/admin-worker.js:36)"}, "fullDescription": {"text": "`cloudflare/admin-worker.js:36` calls `POST https://${NEON_HOST}/sql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/sql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae738f16913d0b7c", "name": "Dangling fetch: POST /admin/api/action (cloudflare/admin-worker.js:262)", "shortDescription": {"text": "Dangling fetch: POST /admin/api/action (cloudflare/admin-worker.js:262)"}, "fullDescription": {"text": "`cloudflare/admin-worker.js:262` calls `POST /admin/api/action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/api/action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f77c0bff5ce30143", "name": "Dangling fetch: POST https://api.languagetool.org/v2/check (src/lib/audit/site-scan.js:392)", "shortDescription": {"text": "Dangling fetch: POST https://api.languagetool.org/v2/check (src/lib/audit/site-scan.js:392)"}, "fullDescription": {"text": "`src/lib/audit/site-scan.js:392` calls `POST https://api.languagetool.org/v2/check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.languagetool.org/v2/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba026382592fc431", "name": "Dangling fetch: GET https://api.company-information.service.gov.uk/company/${reg}/officers (src/lib/sourcing/firmographi", "shortDescription": {"text": "Dangling fetch: GET https://api.company-information.service.gov.uk/company/${reg}/officers (src/lib/sourcing/firmographics.js:43)"}, "fullDescription": {"text": "`src/lib/sourcing/firmographics.js:43` calls `GET https://api.company-information.service.gov.uk/company/${reg}/officers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.company-information.service.gov.uk/company/<p>/officers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-58f8b62fd6cf7522", "name": "Dangling fetch: GET https://api.hunter.io/v2/email-verifier?email=${encodeURIComponent(email)}&api_key=${key} (src/lib/e", "shortDescription": {"text": "Dangling fetch: GET https://api.hunter.io/v2/email-verifier?email=${encodeURIComponent(email)}&api_key=${key} (src/lib/enrich/free-verify.js:107)"}, "fullDescription": {"text": "`src/lib/enrich/free-verify.js:107` calls `GET https://api.hunter.io/v2/email-verifier?email=${encodeURIComponent(email)}&api_key=${key}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.hunter.io/v2/email-verifier`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-595f345096d4d173", "name": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (src/lib/llm/router.js:98)", "shortDescription": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (src/lib/llm/router.js:98)"}, "fullDescription": {"text": "`src/lib/llm/router.js:98` calls `POST https://api.groq.com/openai/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.groq.com/openai/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77a4d04dd694fd2a", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${process.env.", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${process.env.GEMINI_API_KEY} (src/lib/llm/router.js:122)"}, "fullDescription": {"text": "`src/lib/llm/router.js:122` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${process.env.GEMINI_API_KEY}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1170abc4fd2fe32", "name": "Dangling fetch: GET https://api.ssllabs.com/api/v3/analyze?host=${encodeURIComponent(domain)}&fromCache=on&maxAge=24&all", "shortDescription": {"text": "Dangling fetch: GET https://api.ssllabs.com/api/v3/analyze?host=${encodeURIComponent(domain)}&fromCache=on&maxAge=24&all=done (src/skills/S008-personalisation-engine/scanners/tls-dns.js:86)"}, "fullDescription": {"text": "`src/skills/S008-personalisation-engine/scanners/tls-dns.js:86` calls `GET https://api.ssllabs.com/api/v3/analyze?host=${encodeURIComponent(domain)}&fromCache=on&maxAge=24&all=done` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.ssllabs.com/api/v3/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67e48bc4740657ec", "name": "Dangling fetch: POST https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (sr", "shortDescription": {"text": "Dangling fetch: POST https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (src/skills/S008-personalisation-engine/scanners/security-headers.js:61)"}, "fullDescription": {"text": "`src/skills/S008-personalisation-engine/scanners/security-headers.js:61` calls `POST https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/http-observatory.security.mozilla.org/api/v1/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7eb252a009486059", "name": "Dangling fetch: GET https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (src", "shortDescription": {"text": "Dangling fetch: GET https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (src/skills/S008-personalisation-engine/scanners/security-headers.js:66)"}, "fullDescription": {"text": "`src/skills/S008-personalisation-engine/scanners/security-headers.js:66` calls `GET https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/http-observatory.security.mozilla.org/api/v1/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8313cf93c61ffaa6", "name": "Unused endpoint: GET /render", "shortDescription": {"text": "Unused endpoint: GET /render"}, "fullDescription": {"text": "`services/crawl-render/app.py` declares `GET /render` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20801"}, "properties": {"repository": "Tamaziaa/tamazia-cowork-os", "repoUrl": "https://github.com/Tamaziaa/tamazia-cowork-os", "branch": "main"}, "results": [{"ruleId": "scanner-132ab42d6cf81e2d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_ps.js:5"}, "properties": {"repobilityId": "ce51d2a05b111cb1", "scanner": "scanner-primary", "fingerprint": "132ab42d6cf81e2d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0449869e595abaa9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_scan.js:6"}, "properties": {"repobilityId": "c795f4655f6e74bb", "scanner": "scanner-primary", "fingerprint": "0449869e595abaa9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d60122ea445fef4a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_psi.js:9"}, "properties": {"repobilityId": "2fb8077e662bc43a", "scanner": "scanner-primary", "fingerprint": "d60122ea445fef4a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a8d158010cb9f51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_step.js:6"}, "properties": {"repobilityId": "bc4bd580a5bd5b9a", "scanner": "scanner-primary", "fingerprint": "5a8d158010cb9f51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d0138b28c23127d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_ps2.js:4"}, "properties": {"repobilityId": "8f5fd42e4829646b", "scanner": "scanner-primary", "fingerprint": "1d0138b28c23127d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f860a9793e16ea29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 _drv_mint.js:10"}, "properties": {"repobilityId": "dfcca453b03bf42b", "scanner": "scanner-primary", "fingerprint": "f860a9793e16ea29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61b1b52ee2acb8ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 beta-score.js:10"}, "properties": {"repobilityId": "9f66b41d7cca3453", "scanner": "scanner-primary", "fingerprint": "61b1b52ee2acb8ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8fce46df37a8aa4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 beta-run.js:28"}, "properties": {"repobilityId": "7c6f52f90d002aab", "scanner": "scanner-primary", "fingerprint": "8fce46df37a8aa4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-832950801319fc5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/touch-0-dry-run.js:48"}, "properties": {"repobilityId": "71432078564be206", "scanner": "scanner-primary", "fingerprint": "832950801319fc5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f3668abcbe1fa12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/phase-6.7-10-layer.test.js:30"}, "properties": {"repobilityId": "8abe93b635849727", "scanner": "scanner-primary", "fingerprint": "0f3668abcbe1fa12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f08513b61ece8a10", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 ops/infra/hetzner-verify.js:199"}, "properties": {"repobilityId": "6f68e6b4af77e191", "scanner": "scanner-primary", "fingerprint": "f08513b61ece8a10", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e95402026059a8a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pre-send-pipeline.js:91"}, "properties": {"repobilityId": "f3d8e4e94ac7f92a", "scanner": "scanner-primary", "fingerprint": "e95402026059a8a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9abfa8d198cef0a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-leads.js:29"}, "properties": {"repobilityId": "6d0eff17bc089947", "scanner": "scanner-primary", "fingerprint": "b9abfa8d198cef0a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab84abbba67e53b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/remint-audits.js:25"}, "properties": {"repobilityId": "848d514b7b5ee855", "scanner": "scanner-primary", "fingerprint": "ab84abbba67e53b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22d5050ffbd4537f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enrich-worker.js:59"}, "properties": {"repobilityId": "cda274aa0c075494", "scanner": "scanner-primary", "fingerprint": "22d5050ffbd4537f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c3efae92c86f35c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-serp-scrape.js:22"}, "properties": {"repobilityId": "a1ac0047b89182f8", "scanner": "scanner-primary", "fingerprint": "3c3efae92c86f35c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-052d01f24a8dcb19", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-campaigns.js:85"}, "properties": {"repobilityId": "8cf343bb1ea5a4ed", "scanner": "scanner-primary", "fingerprint": "052d01f24a8dcb19", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65c36c52a438725d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/push-to-mystrika.js:98"}, "properties": {"repobilityId": "a717ec6dfd8719fb", "scanner": "scanner-primary", "fingerprint": "65c36c52a438725d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20d1a9cc098a9a59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-qualifier.js:92"}, "properties": {"repobilityId": "521a123760b7fd41", "scanner": "scanner-primary", "fingerprint": "20d1a9cc098a9a59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b53936334192c6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cc2-provision.js:113"}, "properties": {"repobilityId": "2c9026a3f0f2d93b", "scanner": "scanner-primary", "fingerprint": "7b53936334192c6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5dd49cb7e3617cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deliverability-guard.js:94"}, "properties": {"repobilityId": "0d024a2023843a63", "scanner": "scanner-primary", "fingerprint": "e5dd49cb7e3617cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b4b7af9ace5add4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reap-stale-runs.js:53"}, "properties": {"repobilityId": "c4418795ab0871a7", "scanner": "scanner-primary", "fingerprint": "8b4b7af9ace5add4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e766459f6feb3778", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-cal-bookings.js:136"}, "properties": {"repobilityId": "ff8275745121621f", "scanner": "scanner-primary", "fingerprint": "e766459f6feb3778", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-675a8742004a14ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plane-sync.js:26"}, "properties": {"repobilityId": "a0102719e23b946b", "scanner": "scanner-primary", "fingerprint": "675a8742004a14ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6fa628c7a0d49a5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-audits.js:34"}, "properties": {"repobilityId": "f596c47269f47495", "scanner": "scanner-primary", "fingerprint": "6fa628c7a0d49a5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5dbe907179405066", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-enforcement-news.js:78"}, "properties": {"repobilityId": "b58a2fdf9a39ca0e", "scanner": "scanner-primary", "fingerprint": "5dbe907179405066", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7287fd1e09cb6912", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-export.js:118"}, "properties": {"repobilityId": "3bb23b233e8ffe28", "scanner": "scanner-primary", "fingerprint": "7287fd1e09cb6912", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2c4c5a0008818d2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/health-check.js:104"}, "properties": {"repobilityId": "913754fa5a4743f7", "scanner": "scanner-primary", "fingerprint": "2c4c5a0008818d2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e7fa3ed1dd2aeacc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/self-audit-workflow.js:18"}, "properties": {"repobilityId": "0068faa410ed133c", "scanner": "scanner-primary", "fingerprint": "e7fa3ed1dd2aeacc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-08dd90347f862ac4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dedupe-leads.js:58"}, "properties": {"repobilityId": "47e59a01a05244bc", "scanner": "scanner-primary", "fingerprint": "08dd90347f862ac4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7143bfabd86e699d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/adversarial-test.js:58"}, "properties": {"repobilityId": "3adbf58efe202225", "scanner": "scanner-primary", "fingerprint": "7143bfabd86e699d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ed526c734085ce9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recycle.js:48"}, "properties": {"repobilityId": "330b609df1d5ef8f", "scanner": "scanner-primary", "fingerprint": "2ed526c734085ce9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e4a72fb406dd8e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/claude-safeguard-batch.js:128"}, "properties": {"repobilityId": "98920163444ece47", "scanner": "scanner-primary", "fingerprint": "6e4a72fb406dd8e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43c5914c441a8a43", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/source-leads.js:121"}, "properties": {"repobilityId": "0317e5fe3293b435", "scanner": "scanner-primary", "fingerprint": "43c5914c441a8a43", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f894e3f20736be6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-all.js:57"}, "properties": {"repobilityId": "9e07e2cc044b28b6", "scanner": "scanner-primary", "fingerprint": "9f894e3f20736be6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-985947b32d45a2dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-llm-rescue.js:25"}, "properties": {"repobilityId": "d6168dd7666d5b54", "scanner": "scanner-primary", "fingerprint": "985947b32d45a2dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f900ced06fb3b6f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/notify-event.js:38"}, "properties": {"repobilityId": "84c72aa064af963c", "scanner": "scanner-primary", "fingerprint": "f900ced06fb3b6f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab49d9e5773a5ae0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/match-inbound-replies.js:161"}, "properties": {"repobilityId": "2a4827ba5b139c01", "scanner": "scanner-primary", "fingerprint": "ab49d9e5773a5ae0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5977aa3fd26a0c6d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-contacts.js:38"}, "properties": {"repobilityId": "43468a00f262a043", "scanner": "scanner-primary", "fingerprint": "5977aa3fd26a0c6d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ded016dd4cc6747", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scorecard-nightly.js:148"}, "properties": {"repobilityId": "c1a59919b32aad30", "scanner": "scanner-primary", "fingerprint": "8ded016dd4cc6747", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3455442de14b6dae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enforcement-sync.js:115"}, "properties": {"repobilityId": "d18c718d7ab7ea54", "scanner": "scanner-primary", "fingerprint": "3455442de14b6dae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85a644d01c58c800", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-stuck-jobs.js:102"}, "properties": {"repobilityId": "ab6568a677d20dd2", "scanner": "scanner-primary", "fingerprint": "85a644d01c58c800", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4a6eee8c0646184", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/compute-metrics.js:216"}, "properties": {"repobilityId": "351a26e6081da5c6", "scanner": "scanner-primary", "fingerprint": "d4a6eee8c0646184", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9d930471d198370", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-social-drafts.js:17"}, "properties": {"repobilityId": "8ba3d76a3594223c", "scanner": "scanner-primary", "fingerprint": "e9d930471d198370", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f510d39c9029417c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-factcheck.js:17"}, "properties": {"repobilityId": "2ad6f4122766a511", "scanner": "scanner-primary", "fingerprint": "f510d39c9029417c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-66f0a915c057c1ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/requalify-all-leads.js:70"}, "properties": {"repobilityId": "d771b53b1f10d3b7", "scanner": "scanner-primary", "fingerprint": "66f0a915c057c1ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7513789b212a2601", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-rank-insights.js:17"}, "properties": {"repobilityId": "c64c1335d1fc2fb3", "scanner": "scanner-primary", "fingerprint": "7513789b212a2601", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0843dba81468c473", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backtest-personalisation.js:97"}, "properties": {"repobilityId": "ed48b5aa7eff6a31", "scanner": "scanner-primary", "fingerprint": "0843dba81468c473", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-696fa84b5c8b79e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-mystrika-replies.js:20"}, "properties": {"repobilityId": "3badc624a77b2c9a", "scanner": "scanner-primary", "fingerprint": "696fa84b5c8b79e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb818630f725178c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plane-leads-sync.js:19"}, "properties": {"repobilityId": "33d3bb821aecf613", "scanner": "scanner-primary", "fingerprint": "bb818630f725178c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7779d0e1173e0353", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enrich-and-queue-channels.js:55"}, "properties": {"repobilityId": "31d0f45be8a0dc8c", "scanner": "scanner-primary", "fingerprint": "7779d0e1173e0353", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-205dbedaae9c168e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-review.js:160"}, "properties": {"repobilityId": "3d1f9822406f8d46", "scanner": "scanner-primary", "fingerprint": "205dbedaae9c168e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c20a0c6c08cd84ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qualify-and-queue.js:47"}, "properties": {"repobilityId": "11729bfa9c881e8b", "scanner": "scanner-primary", "fingerprint": "c20a0c6c08cd84ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6718b6751f1fe077", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-schema.js:72"}, "properties": {"repobilityId": "0801b1518ca38d25", "scanner": "scanner-primary", "fingerprint": "6718b6751f1fe077", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b366215176541f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-pipeline.js:103"}, "properties": {"repobilityId": "0cab7a6e585cd039", "scanner": "scanner-primary", "fingerprint": "7b366215176541f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9d12261fcb03cb2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-deep-research-batch.js:55"}, "properties": {"repobilityId": "6b5fa0c23480b79b", "scanner": "scanner-primary", "fingerprint": "d9d12261fcb03cb2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21ced3ea011f2fbc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-touches.js:36"}, "properties": {"repobilityId": "e071fe45f3e527ad", "scanner": "scanner-primary", "fingerprint": "21ced3ea011f2fbc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-132049082e0247c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mint-worker.js:49"}, "properties": {"repobilityId": "e5704a836374c6e5", "scanner": "scanner-primary", "fingerprint": "132049082e0247c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21b20b28d230d6b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-crm-dashboard.js:126"}, "properties": {"repobilityId": "5683c36191bfb36f", "scanner": "scanner-primary", "fingerprint": "21b20b28d230d6b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e3cd116b77b12cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/governor-release.js:16"}, "properties": {"repobilityId": "16d8fab6c2d7e559", "scanner": "scanner-primary", "fingerprint": "1e3cd116b77b12cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86afeb87291af4f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/independent-verify-selftest.js:68"}, "properties": {"repobilityId": "1f7a6a141e2fc3a9", "scanner": "scanner-primary", "fingerprint": "86afeb87291af4f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7eb6ea6eba3c66f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resolve-registry-domains.js:34"}, "properties": {"repobilityId": "33beb50f2e0f7aac", "scanner": "scanner-primary", "fingerprint": "a7eb6ea6eba3c66f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-705ad37679e0c2cc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mystrika-cli.js:7"}, "properties": {"repobilityId": "94ced64446ec4b04", "scanner": "scanner-primary", "fingerprint": "705ad37679e0c2cc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d3202849fb4287f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-llm-rescue.js:28"}, "properties": {"repobilityId": "f4b7071cbbc2f459", "scanner": "scanner-primary", "fingerprint": "3d3202849fb4287f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dd4cf66b46524d84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile.js:27"}, "properties": {"repobilityId": "e079fbccc28b616d", "scanner": "scanner-primary", "fingerprint": "dd4cf66b46524d84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6995267d34aa724", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/buying-signals.js:49"}, "properties": {"repobilityId": "3467d98ced811c6c", "scanner": "scanner-primary", "fingerprint": "d6995267d34aa724", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3469559b6725020f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/enqueue-leads.js:42"}, "properties": {"repobilityId": "1f127db5c33ba4b9", "scanner": "scanner-primary", "fingerprint": "3469559b6725020f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3db9938bf450ae0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/materialise-client-emails.js:95"}, "properties": {"repobilityId": "d2e0bea7e22c7f09", "scanner": "scanner-primary", "fingerprint": "3db9938bf450ae0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b076b42b9c48074", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/intel-pulse.js:97"}, "properties": {"repobilityId": "6d19245eb8b2c2ea", "scanner": "scanner-primary", "fingerprint": "7b076b42b9c48074", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e989252b7910d6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/daily-digest.js:20"}, "properties": {"repobilityId": "0b4493028b5c4424", "scanner": "scanner-primary", "fingerprint": "8e989252b7910d6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fe59288807a413d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-state.js:77"}, "properties": {"repobilityId": "8ca8e5cc7289c9ce", "scanner": "scanner-primary", "fingerprint": "3fe59288807a413d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb5a93014799b737", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/zoho-imap-poll.js:50"}, "properties": {"repobilityId": "b9a718d96d88214c", "scanner": "scanner-primary", "fingerprint": "cb5a93014799b737", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84fb6b3e5cd276b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/qa-compliance.js:14"}, "properties": {"repobilityId": "4315eb733a43f896", "scanner": "scanner-primary", "fingerprint": "84fb6b3e5cd276b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-74a243411c1e77a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/v3/migrate-v3-schema.js:39"}, "properties": {"repobilityId": "bc225c4d0e170ce7", "scanner": "scanner-primary", "fingerprint": "74a243411c1e77a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97819ac705f36112", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/v3/normalise-names.js:90"}, "properties": {"repobilityId": "984310438e218c9b", "scanner": "scanner-primary", "fingerprint": "97819ac705f36112", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92609ab28a5751f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/normalize-rule-sectors.js:58"}, "properties": {"repobilityId": "cf86f3d683f49a2d", "scanner": "scanner-primary", "fingerprint": "92609ab28a5751f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a74a059b0aa76de0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-corpus-index.js:9"}, "properties": {"repobilityId": "64ee0ce4555b5c47", "scanner": "scanner-primary", "fingerprint": "a74a059b0aa76de0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46e8252da171c49c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/build-canonical-laws.js:189"}, "properties": {"repobilityId": "75743ebef6f84a0d", "scanner": "scanner-primary", "fingerprint": "46e8252da171c49c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1ee4ff8f85e3ad1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-enforcement.js:9"}, "properties": {"repobilityId": "683ad35356a9eee6", "scanner": "scanner-primary", "fingerprint": "b1ee4ff8f85e3ad1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aab3bd1c6f2d525c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-gap-finder.js:8"}, "properties": {"repobilityId": "b76fa972f19dad87", "scanner": "scanner-primary", "fingerprint": "aab3bd1c6f2d525c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2d94ab14eb70f098", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-sector-accuracy.js:102"}, "properties": {"repobilityId": "9b387035533ec5c6", "scanner": "scanner-primary", "fingerprint": "2d94ab14eb70f098", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-645b0533d72c6030", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/qa-validate-library.js:15"}, "properties": {"repobilityId": "a0e2633b089d1ba0", "scanner": "scanner-primary", "fingerprint": "645b0533d72c6030", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f211c4ed6162755c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/audit-rule-gates.js:87"}, "properties": {"repobilityId": "6fe1df6f35fb0c14", "scanner": "scanner-primary", "fingerprint": "f211c4ed6162755c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9320cf16b19901c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/test-resolver.js:14"}, "properties": {"repobilityId": "4bfc7dee85fa6425", "scanner": "scanner-primary", "fingerprint": "9320cf16b19901c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8acd836cd7683771", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrations/load-canonical-laws.js:56"}, "properties": {"repobilityId": "03f1e37bf8ebfad3", "scanner": "scanner-primary", "fingerprint": "8acd836cd7683771", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4f47d771b4b9277", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 eval/retier-persisted.js:106"}, "properties": {"repobilityId": "2450cc273a9c9274", "scanner": "scanner-primary", "fingerprint": "a4f47d771b4b9277", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-80063618956795a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/gap-ledger.js:41"}, "properties": {"repobilityId": "0bc6b123ed840b9a", "scanner": "scanner-primary", "fingerprint": "80063618956795a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb2748273c0759a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/governor.js:194"}, "properties": {"repobilityId": "966b81287283ac52", "scanner": "scanner-primary", "fingerprint": "bb2748273c0759a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c06116c147a29253", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/imap-poll-worker.js:188"}, "properties": {"repobilityId": "15e85b76805c6064", "scanner": "scanner-primary", "fingerprint": "c06116c147a29253", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8813994dab1df480", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/template-resolver.js:262"}, "properties": {"repobilityId": "13b2d0cb4427b167", "scanner": "scanner-primary", "fingerprint": "8813994dab1df480", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6eb25d11297265bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/alias-rotator.js:101"}, "properties": {"repobilityId": "68d9dbbd1a3b43ce", "scanner": "scanner-primary", "fingerprint": "6eb25d11297265bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-106be09f401dddd7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/personalisation-injector.js:152"}, "properties": {"repobilityId": "064aa6d04e548d13", "scanner": "scanner-primary", "fingerprint": "106be09f401dddd7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a91bbe0da6f97f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/google/google-pull.js:86"}, "properties": {"repobilityId": "a3bd69f656b708f6", "scanner": "scanner-primary", "fingerprint": "6a91bbe0da6f97f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16334f6f426cee08", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/apollo.js:44"}, "properties": {"repobilityId": "ef2f3cae817aa4d0", "scanner": "scanner-primary", "fingerprint": "16334f6f426cee08", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6806d69e2ab16feb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrichment/hunter.js:103"}, "properties": {"repobilityId": "ae4891651c8c21fe", "scanner": "scanner-primary", "fingerprint": "6806d69e2ab16feb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ffe98f59df29544", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/apify/client.js:46"}, "properties": {"repobilityId": "5b008da0e2bc978a", "scanner": "scanner-primary", "fingerprint": "0ffe98f59df29544", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4e034f19638dbc0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/email-sender.js:62"}, "properties": {"repobilityId": "3dd4f2a5b0727d7d", "scanner": "scanner-primary", "fingerprint": "f4e034f19638dbc0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23064d6f788b034a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/zoho-imap-client.js:342"}, "properties": {"repobilityId": "bdec5266f663906a", "scanner": "scanner-primary", "fingerprint": "23064d6f788b034a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-14353eede04ebeae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/telegram.js:23"}, "properties": {"repobilityId": "10c4718e08258ba1", "scanner": "scanner-primary", "fingerprint": "14353eede04ebeae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-26c053603df14341", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/relay-router.js:184"}, "properties": {"repobilityId": "f5669cd78743abe0", "scanner": "scanner-primary", "fingerprint": "26c053603df14341", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5ac8a92df656336", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/slack-bot.js:36"}, "properties": {"repobilityId": "80190f954e2a1bce", "scanner": "scanner-primary", "fingerprint": "a5ac8a92df656336", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb2ab8f33a874994", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/content-linter.js:62"}, "properties": {"repobilityId": "6154a74b7898cae1", "scanner": "scanner-primary", "fingerprint": "fb2ab8f33a874994", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03ab9165410d25e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/notify/smtp2go.js:38"}, "properties": {"repobilityId": "ec7ee9a69695f659", "scanner": "scanner-primary", "fingerprint": "03ab9165410d25e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a21fbf9cbfdb979b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audit/gap-finder.js:98"}, "properties": {"repobilityId": "ff802be78f84aae5", "scanner": "scanner-primary", "fingerprint": "a21fbf9cbfdb979b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90acd5ff1d9dc6df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audit/tests/site-scan.test.js:20"}, "properties": {"repobilityId": "f7f632a31136dd38", "scanner": "scanner-primary", "fingerprint": "90acd5ff1d9dc6df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9933f5d7efd53b6d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/compliance/jurisdiction-router.js:208"}, "properties": {"repobilityId": "75efc7b933513010", "scanner": "scanner-primary", "fingerprint": "9933f5d7efd53b6d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51f2d160370a5776", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/calcom/api.js:29"}, "properties": {"repobilityId": "66d72b6876e040c4", "scanner": "scanner-primary", "fingerprint": "51f2d160370a5776", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9773063561ff8ed4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-ad-library.js:91"}, "properties": {"repobilityId": "6c0bf6f4c7989ef5", "scanner": "scanner-primary", "fingerprint": "9773063561ff8ed4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c2aabea2e7d1224", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin.ts:75"}, "properties": {"repobilityId": "5013c5a347dcd2e6", "scanner": "scanner-primary", "fingerprint": "6c2aabea2e7d1224", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a0351b6ce833e23", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pixel-detector.js:126"}, "properties": {"repobilityId": "4cf28d9a87342749", "scanner": "scanner-primary", "fingerprint": "6a0351b6ce833e23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6bbcdbae63cc5e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.js:84"}, "properties": {"repobilityId": "5f7d505ebfd4aa5e", "scanner": "scanner-primary", "fingerprint": "f6bbcdbae63cc5e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86409af5840d72bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/intent-job-boards.js:135"}, "properties": {"repobilityId": "aa22c7da0c5060df", "scanner": "scanner-primary", "fingerprint": "86409af5840d72bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a8e705bc36ca2ca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/cross-platform-scorer.ts:46"}, "properties": {"repobilityId": "e1b32ce43ea88f27", "scanner": "scanner-primary", "fingerprint": "2a8e705bc36ca2ca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39866dcbb14df07b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/linkedin-ad-library.js:45"}, "properties": {"repobilityId": "372fb06803437e02", "scanner": "scanner-primary", "fingerprint": "39866dcbb14df07b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-479e10d4a5b50dc6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok-creative-center.js:56"}, "properties": {"repobilityId": "5154ae5324e76df8", "scanner": "scanner-primary", "fingerprint": "479e10d4a5b50dc6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-286874b439ef1cf0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/pinterest.ts:28"}, "properties": {"repobilityId": "49c8d39fd3fde8c4", "scanner": "scanner-primary", "fingerprint": "286874b439ef1cf0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8163445406181ffb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/snapchat.ts:25"}, "properties": {"repobilityId": "2f805c0f9bfc1308", "scanner": "scanner-primary", "fingerprint": "8163445406181ffb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d67caf478488ad49", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta-graph-api.js:84"}, "properties": {"repobilityId": "85a6c92584757c4a", "scanner": "scanner-primary", "fingerprint": "d67caf478488ad49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1088127a2600bcd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/tiktok.ts:78"}, "properties": {"repobilityId": "d1a8d23d1acd8ef0", "scanner": "scanner-primary", "fingerprint": "e1088127a2600bcd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2909cd4452bf206", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/x-ads.ts:62"}, "properties": {"repobilityId": "54fba92fcc6adc27", "scanner": "scanner-primary", "fingerprint": "f2909cd4452bf206", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6fb05d78e1b31009", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/reddit.ts:25"}, "properties": {"repobilityId": "daedd1f8799f6b19", "scanner": "scanner-primary", "fingerprint": "6fb05d78e1b31009", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c62ae66cb955995", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/W14-cron.js:97"}, "properties": {"repobilityId": "5b068902c57a55d1", "scanner": "scanner-primary", "fingerprint": "9c62ae66cb955995", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f50cf55459fe13b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/google-ads-transparency.ts:68"}, "properties": {"repobilityId": "7a7f2b6bef876cdf", "scanner": "scanner-primary", "fingerprint": "f50cf55459fe13b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2fc8408ed614fb4e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/bucket-d-integrator.ts:84"}, "properties": {"repobilityId": "1d3201b2ac5d4cf5", "scanner": "scanner-primary", "fingerprint": "2fc8408ed614fb4e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb01c8c4edbf4453", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/meta.ts:87"}, "properties": {"repobilityId": "b888e49ea27b1e0d", "scanner": "scanner-primary", "fingerprint": "cb01c8c4edbf4453", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d5db6bf1ec72bf1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/ad-intel/aggregators.ts:62"}, "properties": {"repobilityId": "e6bdeaeb57d364e9", "scanner": "scanner-primary", "fingerprint": "7d5db6bf1ec72bf1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58ebdc0f80006a84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/query-calendar.js:100"}, "properties": {"repobilityId": "3cae3a057d2ed09a", "scanner": "scanner-primary", "fingerprint": "58ebdc0f80006a84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4616022322f7897", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-client.js:77"}, "properties": {"repobilityId": "0a2090e436791e1b", "scanner": "scanner-primary", "fingerprint": "c4616022322f7897", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0d757eddaddb913b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/serp-engine.js:201"}, "properties": {"repobilityId": "1954f02a9a1a5257", "scanner": "scanner-primary", "fingerprint": "0d757eddaddb913b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b28b833df50d4a74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/scraping/google-sponsored.js:78"}, "properties": {"repobilityId": "b1987a0a95623c7e", "scanner": "scanner-primary", "fingerprint": "b28b833df50d4a74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94ebaab8a0a6ab89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/charity-commission.js:72"}, "properties": {"repobilityId": "0f2eaa87f772f282", "scanner": "scanner-primary", "fingerprint": "94ebaab8a0a6ab89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d0e79bc0c6b41ab", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/sourcing/sra-register.js:10"}, "properties": {"repobilityId": "57038bdb0b3cf5ba", "scanner": "scanner-primary", "fingerprint": "5d0e79bc0c6b41ab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4cb1c7511a24b2f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/companies-house.js:149"}, "properties": {"repobilityId": "32f8560387943fad", "scanner": "scanner-primary", "fingerprint": "4cb1c7511a24b2f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29ea9fb690bed461", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/instagram-finder.js:50"}, "properties": {"repobilityId": "6e4ec51b9f0c9d5c", "scanner": "scanner-primary", "fingerprint": "29ea9fb690bed461", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a35a281f0161a050", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/cqc-register.js:18"}, "properties": {"repobilityId": "675bb2ab72b798b8", "scanner": "scanner-primary", "fingerprint": "a35a281f0161a050", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ea52861b3acb1bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/resolve-name.js:425"}, "properties": {"repobilityId": "ef049abf93cfbaba", "scanner": "scanner-primary", "fingerprint": "0ea52861b3acb1bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5133a24510bc520e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/osm-overpass.js:126"}, "properties": {"repobilityId": "d6eae99763b3eb6c", "scanner": "scanner-primary", "fingerprint": "5133a24510bc520e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b70777fbf19ad232", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/bulk-sourcer.js:140"}, "properties": {"repobilityId": "b3b5acbc30f40424", "scanner": "scanner-primary", "fingerprint": "b70777fbf19ad232", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cd5f7943ec41b7b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/sec-edgar.js:57"}, "properties": {"repobilityId": "cceb8e78d89ccb6e", "scanner": "scanner-primary", "fingerprint": "cd5f7943ec41b7b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce23dfc9d21375cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/linkedin-finder.js:81"}, "properties": {"repobilityId": "de1520c64f6eb124", "scanner": "scanner-primary", "fingerprint": "ce23dfc9d21375cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43796878597f5728", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/gleif.js:60"}, "properties": {"repobilityId": "76f99878685201bf", "scanner": "scanner-primary", "fingerprint": "43796878597f5728", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be37098985fca255", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/find-every-email.js:134"}, "properties": {"repobilityId": "9b4c6a7ed6fd6d62", "scanner": "scanner-primary", "fingerprint": "be37098985fca255", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-723af7f79100a7c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/opencorporates.js:45"}, "properties": {"repobilityId": "4703aa851980432b", "scanner": "scanner-primary", "fingerprint": "723af7f79100a7c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b92280f536f4e45", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sourcing/tests/icp.test.js:26"}, "properties": {"repobilityId": "5ce33c0176857c31", "scanner": "scanner-primary", "fingerprint": "6b92280f536f4e45", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55b1a062345f4a06", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/calendar/timezone-router.js:97"}, "properties": {"repobilityId": "db9418600d06053c", "scanner": "scanner-primary", "fingerprint": "55b1a062345f4a06", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-545190f4aaf3bf36", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/lead-quality.js:557"}, "properties": {"repobilityId": "1beec6212070a934", "scanner": "scanner-primary", "fingerprint": "545190f4aaf3bf36", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-320a93f9cfb88433", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/waterfall.js:140"}, "properties": {"repobilityId": "b222e9468c5bfd09", "scanner": "scanner-primary", "fingerprint": "320a93f9cfb88433", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6024fd63fa75ae4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/enrich/free-verify.js:190"}, "properties": {"repobilityId": "0ba5b6a6c847dd60", "scanner": "scanner-primary", "fingerprint": "6024fd63fa75ae4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-630a6dbee1af6fa8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/groq.js:18"}, "properties": {"repobilityId": "e52abde02d9f6d21", "scanner": "scanner-primary", "fingerprint": "630a6dbee1af6fa8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-238c381a795a217c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/router.js:231"}, "properties": {"repobilityId": "182a09ccd0e3c41e", "scanner": "scanner-primary", "fingerprint": "238c381a795a217c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-913c578e09e1ff56", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/llm/gemini.js:69"}, "properties": {"repobilityId": "e26c6147fa955a94", "scanner": "scanner-primary", "fingerprint": "913c578e09e1ff56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21fe936c4204af8c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S065-touch-scheduler/scripts/send-due.js:213"}, "properties": {"repobilityId": "e1e6f4ab938281a4", "scanner": "scanner-primary", "fingerprint": "21fe936c4204af8c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e2ffe92151a3d582", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/tests/10-layer.test.js:39"}, "properties": {"repobilityId": "7c10b0907c4e4124", "scanner": "scanner-primary", "fingerprint": "e2ffe92151a3d582", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-742b060605c53175", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:22"}, "properties": {"repobilityId": "f4bff5c46af92f7a", "scanner": "scanner-primary", "fingerprint": "742b060605c53175", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0cbc7063c6337273", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scripts/run.js:375"}, "properties": {"repobilityId": "b02be5f5f5a05133", "scanner": "scanner-primary", "fingerprint": "0cbc7063c6337273", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21ac7e99e0459502", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/content-depth.js:113"}, "properties": {"repobilityId": "23021439496f73ee", "scanner": "scanner-primary", "fingerprint": "21ac7e99e0459502", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8155f16fb953a5cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/website.js:168"}, "properties": {"repobilityId": "327d58c34a0fb17a", "scanner": "scanner-primary", "fingerprint": "8155f16fb953a5cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8035788be0bc77c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/tls-dns.js:99"}, "properties": {"repobilityId": "094a4cd9c9a3dd98", "scanner": "scanner-primary", "fingerprint": "b8035788be0bc77c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6875bb0c0476c7bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/ad-intel.js:98"}, "properties": {"repobilityId": "3c28274a2beb145c", "scanner": "scanner-primary", "fingerprint": "6875bb0c0476c7bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ed197a1058520b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/technical-seo.js:115"}, "properties": {"repobilityId": "fe163f65394dfe77", "scanner": "scanner-primary", "fingerprint": "4ed197a1058520b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d204fc3a911de65b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/seo.js:169"}, "properties": {"repobilityId": "c3f81d8c760540a6", "scanner": "scanner-primary", "fingerprint": "d204fc3a911de65b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a467b94f524a73a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:752"}, "properties": {"repobilityId": "76f66ccd42ab3f77", "scanner": "scanner-primary", "fingerprint": "a467b94f524a73a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15657cd7eacd9401", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:87"}, "properties": {"repobilityId": "eb92dff5ac72573a", "scanner": "scanner-primary", "fingerprint": "15657cd7eacd9401", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ca8c5c0ada4dc75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/public-records.js:106"}, "properties": {"repobilityId": "36de512e361243a0", "scanner": "scanner-primary", "fingerprint": "4ca8c5c0ada4dc75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbe8223747dd13a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S008-personalisation-engine/scanners/accessibility.js:113"}, "properties": {"repobilityId": "ca5e078ecdde3a76", "scanner": "scanner-primary", "fingerprint": "cbe8223747dd13a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b687ec003f094964", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S024-bounce-handler/scripts/handle.js:90"}, "properties": {"repobilityId": "22a354443cfc0486", "scanner": "scanner-primary", "fingerprint": "b687ec003f094964", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3e614bef2f805d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S025-warmup-engage/scripts/engage.js:44"}, "properties": {"repobilityId": "ca934b07a06f1529", "scanner": "scanner-primary", "fingerprint": "e3e614bef2f805d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eab9cf86bd2db864", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S006-linkedin-drafter-v2/scripts/draft.js:133"}, "properties": {"repobilityId": "59f12be081fba22a", "scanner": "scanner-primary", "fingerprint": "eab9cf86bd2db864", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c4a215f634faf93", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S027-proposal-versioning/scripts/version.js:55"}, "properties": {"repobilityId": "6d539046729997b2", "scanner": "scanner-primary", "fingerprint": "1c4a215f634faf93", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1872cbc852b6f154", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S067-instagram-drafter/scripts/draft.js:57"}, "properties": {"repobilityId": "094e931457d114f6", "scanner": "scanner-primary", "fingerprint": "1872cbc852b6f154", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-884ec52021ac0a53", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S012-reply-intent-classifier/scripts/classify.js:218"}, "properties": {"repobilityId": "9d19e35498b56baa", "scanner": "scanner-primary", "fingerprint": "884ec52021ac0a53", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e94c1aef7b93c34", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S057-pre-call-brief/scripts/build.js:112"}, "properties": {"repobilityId": "653b05c30760bdd1", "scanner": "scanner-primary", "fingerprint": "5e94c1aef7b93c34", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-871e59113f235152", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S064-touch-cadence/scripts/render.js:281"}, "properties": {"repobilityId": "e2bf7f7823163ce5", "scanner": "scanner-primary", "fingerprint": "871e59113f235152", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69bbc234498c773b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S063-deep-research/scripts/research.js:67"}, "properties": {"repobilityId": "49eac8beb99e0ca1", "scanner": "scanner-primary", "fingerprint": "69bbc234498c773b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-673f88da019e4e7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:148"}, "properties": {"repobilityId": "b6a75306a9116f37", "scanner": "scanner-primary", "fingerprint": "673f88da019e4e7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e552e9c635c2d4b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S028-sourcing-orchestrator/scripts/run.js:240"}, "properties": {"repobilityId": "db91a28e39cc96c0", "scanner": "scanner-primary", "fingerprint": "e552e9c635c2d4b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2fcd755a3a4da7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S059-lexquity-investor-track/scripts/seed.js:53"}, "properties": {"repobilityId": "7090802a0f20443b", "scanner": "scanner-primary", "fingerprint": "b2fcd755a3a4da7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81765664d73116f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S060-gemini-lead-enricher/scripts/enrich.js:149"}, "properties": {"repobilityId": "8faf397eb14fa5b0", "scanner": "scanner-primary", "fingerprint": "81765664d73116f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-537efd1274ad55ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S019-engagement-tracker/scripts/track.js:108"}, "properties": {"repobilityId": "d1ba2f9371f5253c", "scanner": "scanner-primary", "fingerprint": "537efd1274ad55ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9dd9772c00411e0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S033-ad-intel-orchestrator/scripts/run.js:103"}, "properties": {"repobilityId": "5cdffae0ffe5f10d", "scanner": "scanner-primary", "fingerprint": "9dd9772c00411e0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db25e07dca51fac7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S036-regulator-watch/scripts/ingest.js:92"}, "properties": {"repobilityId": "a459dfe6d4fa9662", "scanner": "scanner-primary", "fingerprint": "db25e07dca51fac7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc8d15c6ac2a73dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S016-alias-health-monitor/scripts/monitor.js:92"}, "properties": {"repobilityId": "1b08016efa74a0c9", "scanner": "scanner-primary", "fingerprint": "fc8d15c6ac2a73dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-faa7d3e6903c724e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S062-auto-trigger-chain/scripts/run.js:74"}, "properties": {"repobilityId": "b40956739bb6cb29", "scanner": "scanner-primary", "fingerprint": "faa7d3e6903c724e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65f8eb1245e05208", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S023-mail-tester-runner/scripts/run.js:38"}, "properties": {"repobilityId": "ac402fbeb7db47e3", "scanner": "scanner-primary", "fingerprint": "65f8eb1245e05208", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a00277ed26a12ecc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S051-ssl-cert-monitor/scripts/check.js:53"}, "properties": {"repobilityId": "b3cba322ac69f12c", "scanner": "scanner-primary", "fingerprint": "a00277ed26a12ecc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63ce718e6d34781f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S025-audit-page-builder/scripts/build.js:641"}, "properties": {"repobilityId": "02e974a767b6cb88", "scanner": "scanner-primary", "fingerprint": "63ce718e6d34781f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8243112435be858b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/skills/S051-dns-health-monitor/scripts/check.js:54"}, "properties": {"repobilityId": "dc146a501b0ff914", "scanner": "scanner-primary", "fingerprint": "8243112435be858b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29affc83fd6202d3", "level": "warning", "message": {"text": "Dockerfile runs as root: services/crawl-render/Dockerfile"}, "properties": {"repobilityId": "c10dcceb78c8bc9a", "scanner": "scanner-primary", "fingerprint": "29affc83fd6202d3", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-202e3f9537d9946d", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/playwright/python:v1.44.0-jammy"}, "properties": {"repobilityId": "661f6912269a08f8", "scanner": "scanner-primary", "fingerprint": "202e3f9537d9946d", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/crawl-render/Dockerfile"}, "region": {"startLine": 5}}}]}, {"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-a29e36eb7f5ce410", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in ops/infra/hetzner-verify.js:80"}, "properties": {"repobilityId": "479cdf423a421356", "scanner": "scanner-primary", "fingerprint": "a29e36eb7f5ce410", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ops/infra/hetzner-verify.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-536d986e8b7b8ca9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/pre-send-pipeline.js:16"}, "properties": {"repobilityId": "5904ef79cd60dbf1", "scanner": "scanner-primary", "fingerprint": "536d986e8b7b8ca9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/pre-send-pipeline.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-1de3cfb24b27589f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/approve-leads.js:10"}, "properties": {"repobilityId": "ccfb55be85941488", "scanner": "scanner-primary", "fingerprint": "1de3cfb24b27589f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/approve-leads.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-8ada11f77795b758", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/remint-audits.js:6"}, "properties": {"repobilityId": "c887b2a08fcb081e", "scanner": "scanner-primary", "fingerprint": "8ada11f77795b758", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/remint-audits.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-edd6214c967f16ef", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/enrich-worker.js:12"}, "properties": {"repobilityId": "60212fc1d42f2e07", "scanner": "scanner-primary", "fingerprint": "edd6214c967f16ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/enrich-worker.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-bbdbbfe59c0512f8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-serp-scrape.js:9"}, "properties": {"repobilityId": "5180e1415e11c86d", "scanner": "scanner-primary", "fingerprint": "bbdbbfe59c0512f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-serp-scrape.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-8b16fdc209b626f0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/push-to-mystrika.js:6"}, "properties": {"repobilityId": "299f23d4ccc60004", "scanner": "scanner-primary", "fingerprint": "8b16fdc209b626f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/push-to-mystrika.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-ac0844af27f415b2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/deliverability-guard.js:13"}, "properties": {"repobilityId": "2d7c95d8d07315b0", "scanner": "scanner-primary", "fingerprint": "ac0844af27f415b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/deliverability-guard.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-7b37e78a4190118c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/reap-stale-runs.js:30"}, "properties": {"repobilityId": "1e7bd0691448c700", "scanner": "scanner-primary", "fingerprint": "7b37e78a4190118c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reap-stale-runs.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-7026cb2b91b76371", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/reconcile-cal-bookings.js:30"}, "properties": {"repobilityId": "836206e6cd9dccc1", "scanner": "scanner-primary", "fingerprint": "7026cb2b91b76371", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reconcile-cal-bookings.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-6c990f56700f9a48", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verify-audits.js:11"}, "properties": {"repobilityId": "fbdccc696d31cc33", "scanner": "scanner-primary", "fingerprint": "6c990f56700f9a48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-audits.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-46d83d45e7545a39", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/refresh-enforcement-news.js:14"}, "properties": {"repobilityId": "7a84d5a3447d8b61", "scanner": "scanner-primary", "fingerprint": "46d83d45e7545a39", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/refresh-enforcement-news.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-19cb2c15f20ec68d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/mystrika-export.js:26"}, "properties": {"repobilityId": "dcd5000fb054ed28", "scanner": "scanner-primary", "fingerprint": "19cb2c15f20ec68d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mystrika-export.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-b65c2d9e756579fd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/health-check.js:12"}, "properties": {"repobilityId": "a5cf9163cb9e2862", "scanner": "scanner-primary", "fingerprint": "b65c2d9e756579fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/health-check.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-34eafed56fce178e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/self-audit-workflow.js:9"}, "properties": {"repobilityId": "d164da308959b437", "scanner": "scanner-primary", "fingerprint": "34eafed56fce178e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/self-audit-workflow.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-37c740ba008a76f0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dedupe-leads.js:11"}, "properties": {"repobilityId": "a186c450f15d0334", "scanner": "scanner-primary", "fingerprint": "37c740ba008a76f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dedupe-leads.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-4308468e13b958d3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/recycle.js:10"}, "properties": {"repobilityId": "ab7ee5a8c3e55df8", "scanner": "scanner-primary", "fingerprint": "4308468e13b958d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/recycle.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-f29eba3fcabe3268", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/claude-safeguard-batch.js:40"}, "properties": {"repobilityId": "b558d248564bc45d", "scanner": "scanner-primary", "fingerprint": "f29eba3fcabe3268", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/claude-safeguard-batch.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-b54f083f42f29651", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/scrape-all.js:11"}, "properties": {"repobilityId": "dfd37bfdcf36bf2e", "scanner": "scanner-primary", "fingerprint": "b54f083f42f29651", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/scrape-all.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-15223a036103cae2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eval-llm-rescue.js:15"}, "properties": {"repobilityId": "d56429abbd570502", "scanner": "scanner-primary", "fingerprint": "15223a036103cae2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eval-llm-rescue.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1c8568ca4dcaa1f6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/match-inbound-replies.js:27"}, "properties": {"repobilityId": "71626e386e18683c", "scanner": "scanner-primary", "fingerprint": "1c8568ca4dcaa1f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/match-inbound-replies.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-cb72ce548c1e645a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verify-contacts.js:16"}, "properties": {"repobilityId": "ed16c57117b925c3", "scanner": "scanner-primary", "fingerprint": "cb72ce548c1e645a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-contacts.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-0cf11fae34187ac2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/scorecard-nightly.js:13"}, "properties": {"repobilityId": "34d6676262cdf466", "scanner": "scanner-primary", "fingerprint": "0cf11fae34187ac2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/scorecard-nightly.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-7f405ce9ab2b5efa", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/enforcement-sync.js:11"}, "properties": {"repobilityId": "b7f644617ba512e7", "scanner": "scanner-primary", "fingerprint": "7f405ce9ab2b5efa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/enforcement-sync.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-0b4dbb91dc5dddcb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/check-stuck-jobs.js:17"}, "properties": {"repobilityId": "5a380b656eceede0", "scanner": "scanner-primary", "fingerprint": "0b4dbb91dc5dddcb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check-stuck-jobs.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-aece4b8101ecfd1e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/compute-metrics.js:31"}, "properties": {"repobilityId": "15e2beaa6f727ffc", "scanner": "scanner-primary", "fingerprint": "aece4b8101ecfd1e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/compute-metrics.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-ac7b4ecbaf8b95b6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/render-social-drafts.js:5"}, "properties": {"repobilityId": "768c2ba4e2f9a687", "scanner": "scanner-primary", "fingerprint": "ac7b4ecbaf8b95b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render-social-drafts.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-2b6941912819eb55", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/requalify-all-leads.js:18"}, "properties": {"repobilityId": "15903a211dbe9943", "scanner": "scanner-primary", "fingerprint": "2b6941912819eb55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/requalify-all-leads.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-a0af84ca04e30322", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-rank-insights.js:6"}, "properties": {"repobilityId": "772165eee24c5cd6", "scanner": "scanner-primary", "fingerprint": "a0af84ca04e30322", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-rank-insights.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-6d249a0cb04fa037", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sync-mystrika-replies.js:6"}, "properties": {"repobilityId": "7ea8643550069f12", "scanner": "scanner-primary", "fingerprint": "6d249a0cb04fa037", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sync-mystrika-replies.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-6838d87f9821d4ea", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/plane-leads-sync.js:6"}, "properties": {"repobilityId": "1eda0eebbfcd6d6f", "scanner": "scanner-primary", "fingerprint": "6838d87f9821d4ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/plane-leads-sync.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-531e82b7bb51ce50", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/enrich-and-queue-channels.js:13"}, "properties": {"repobilityId": "966ad2757b80462a", "scanner": "scanner-primary", "fingerprint": "531e82b7bb51ce50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/enrich-and-queue-channels.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6be70d56b93f08de", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/apply-review.js:23"}, "properties": {"repobilityId": "37f29b44513e98fa", "scanner": "scanner-primary", "fingerprint": "6be70d56b93f08de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/apply-review.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-11a824a15131f8b6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/qualify-and-queue.js:17"}, "properties": {"repobilityId": "9e573c67a4f685a4", "scanner": "scanner-primary", "fingerprint": "11a824a15131f8b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qualify-and-queue.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-66fffba006eeafe5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/refresh-pipeline.js:10"}, "properties": {"repobilityId": "9696b50a47290386", "scanner": "scanner-primary", "fingerprint": "66fffba006eeafe5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/refresh-pipeline.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-3673e7c1596e5ebc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-deep-research-batch.js:6"}, "properties": {"repobilityId": "dda51fd0114e3a7a", "scanner": "scanner-primary", "fingerprint": "3673e7c1596e5ebc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-deep-research-batch.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-72c9ac41da974a12", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/render-touches.js:8"}, "properties": {"repobilityId": "d098acf199622493", "scanner": "scanner-primary", "fingerprint": "72c9ac41da974a12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render-touches.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-11e546caae05d0af", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/mint-worker.js:10"}, "properties": {"repobilityId": "0e0314b1ea7e5069", "scanner": "scanner-primary", "fingerprint": "11e546caae05d0af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mint-worker.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-80b842f728732a01", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-crm-dashboard.js:10"}, "properties": {"repobilityId": "a6574aa094648c71", "scanner": "scanner-primary", "fingerprint": "80b842f728732a01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-crm-dashboard.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-6186d76420b60670", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/resolve-registry-domains.js:16"}, "properties": {"repobilityId": "c1e893d6b5ef0495", "scanner": "scanner-primary", "fingerprint": "6186d76420b60670", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/resolve-registry-domains.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-2f6b129dd6f6421d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/reconcile.js:11"}, "properties": {"repobilityId": "1a5a433c95f64b97", "scanner": "scanner-primary", "fingerprint": "2f6b129dd6f6421d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reconcile.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-645260d5177de59c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/buying-signals.js:8"}, "properties": {"repobilityId": "c13aaa32423b645f", "scanner": "scanner-primary", "fingerprint": "645260d5177de59c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/buying-signals.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-e8b9ad5dd79bb061", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/enqueue-leads.js:6"}, "properties": {"repobilityId": "83973a10c6b8261f", "scanner": "scanner-primary", "fingerprint": "e8b9ad5dd79bb061", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/enqueue-leads.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-f33783c71efdc22c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/heartbeat.js:18"}, "properties": {"repobilityId": "15e01691d7ac4242", "scanner": "scanner-primary", "fingerprint": "f33783c71efdc22c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/heartbeat.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-1fd831f4ab22e091", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/materialise-client-emails.js:9"}, "properties": {"repobilityId": "96a5a9f3a9627c29", "scanner": "scanner-primary", "fingerprint": "1fd831f4ab22e091", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/materialise-client-emails.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-1116a1c0a9e89175", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/intel-pulse.js:13"}, "properties": {"repobilityId": "cce7c6c502baafc8", "scanner": "scanner-primary", "fingerprint": "1116a1c0a9e89175", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/intel-pulse.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-281dd00b4b9a3664", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/daily-digest.js:5"}, "properties": {"repobilityId": "180e695316fc7f16", "scanner": "scanner-primary", "fingerprint": "281dd00b4b9a3664", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/daily-digest.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-8003b6ef3a399748", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/gen-state.js:12"}, "properties": {"repobilityId": "52193d80933e2c3f", "scanner": "scanner-primary", "fingerprint": "8003b6ef3a399748", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/gen-state.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-6858e6bb0b9af6cf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/zoho-imap-poll.js:20"}, "properties": {"repobilityId": "5c89e063292dec34", "scanner": "scanner-primary", "fingerprint": "6858e6bb0b9af6cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/zoho-imap-poll.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-66abbe69484168b5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/qa-compliance.js:8"}, "properties": {"repobilityId": "1ba13a7f087f8b0e", "scanner": "scanner-primary", "fingerprint": "66abbe69484168b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa-compliance.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-1911a21d2a5c086e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/v3/migrate-v3-schema.js:8"}, "properties": {"repobilityId": "ddbd39e126ebf197", "scanner": "scanner-primary", "fingerprint": "1911a21d2a5c086e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/v3/migrate-v3-schema.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-70f66e60daa2b4ae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/v3/normalise-names.js:26"}, "properties": {"repobilityId": "50208de5b8ef4e3c", "scanner": "scanner-primary", "fingerprint": "70f66e60daa2b4ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/v3/normalise-names.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-4d402e67b3fa8133", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/normalize-rule-sectors.js:13"}, "properties": {"repobilityId": "6843aa136984bcda", "scanner": "scanner-primary", "fingerprint": "4d402e67b3fa8133", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/normalize-rule-sectors.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-b05ae744fb6916b9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/build-canonical-laws.js:18"}, "properties": {"repobilityId": "6d8f935e6cad06c5", "scanner": "scanner-primary", "fingerprint": "b05ae744fb6916b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/build-canonical-laws.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-93ff152e1e0a05ec", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/test-sector-accuracy.js:15"}, "properties": {"repobilityId": "3333b8c0b12e1ec8", "scanner": "scanner-primary", "fingerprint": "93ff152e1e0a05ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/test-sector-accuracy.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-15e84141c139ffd0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/qa-validate-library.js:9"}, "properties": {"repobilityId": "ddfac2a92f24a2fb", "scanner": "scanner-primary", "fingerprint": "15e84141c139ffd0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/qa-validate-library.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-ae6d43d7296fcab1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/audit-rule-gates.js:25"}, "properties": {"repobilityId": "0aa3948f533e1537", "scanner": "scanner-primary", "fingerprint": "ae6d43d7296fcab1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/audit-rule-gates.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-5f9c4b1a12066cb8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrations/load-canonical-laws.js:10"}, "properties": {"repobilityId": "30de2870e2d6f34e", "scanner": "scanner-primary", "fingerprint": "5f9c4b1a12066cb8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrations/load-canonical-laws.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-5d28ee9f7136273e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cloudflare/admin-worker.js:249"}, "properties": {"repobilityId": "25277f11b40236f7", "scanner": "scanner-primary", "fingerprint": "5d28ee9f7136273e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cloudflare/admin-worker.js"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-270dbb0813d4df1e", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-qualifier.yml:31"}, "properties": {"repobilityId": "ba0303b3c5a4fe01", "scanner": "scanner-primary", "fingerprint": "270dbb0813d4df1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eval-qualifier.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-fdb09d3bb75af270", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-audit-gaps.yml:29"}, "properties": {"repobilityId": "316afe13eac53f6d", "scanner": "scanner-primary", "fingerprint": "fdb09d3bb75af270", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eval-audit-gaps.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-8d64e82a53c90476", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .github/workflows/eval-audit.yml:18"}, "properties": {"repobilityId": "0d7d3150452cda7e", "scanner": "scanner-primary", "fingerprint": "8d64e82a53c90476", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eval-audit.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-ee1a2e02c0b13d78", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/llm-rescue.js:37"}, "properties": {"repobilityId": "ad1d3d4b704e2a87", "scanner": "scanner-primary", "fingerprint": "ee1a2e02c0b13d78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/llm-rescue.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-fe9ad6bcaea5531f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/governor.js:16"}, "properties": {"repobilityId": "e5616dfa49f97a1c", "scanner": "scanner-primary", "fingerprint": "fe9ad6bcaea5531f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/governor.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-9fd445dfc439cb46", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/pipeline-gap-fills.js:24"}, "properties": {"repobilityId": "466217937ac263fe", "scanner": "scanner-primary", "fingerprint": "9fd445dfc439cb46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/pipeline-gap-fills.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-2e61ce3fc430c743", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/variant-selector.js:8"}, "properties": {"repobilityId": "370579c49e3be7e8", "scanner": "scanner-primary", "fingerprint": "2e61ce3fc430c743", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/variant-selector.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-1ba91e0f2340d767", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing-attribution.js:5"}, "properties": {"repobilityId": "6679ec685c5b6092", "scanner": "scanner-primary", "fingerprint": "1ba91e0f2340d767", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/sourcing-attribution.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6c68245feee310fd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/reply-notifier.js:14"}, "properties": {"repobilityId": "e14a92a94f128030", "scanner": "scanner-primary", "fingerprint": "6c68245feee310fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/reply-notifier.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-db5a55c9bf4b9f55", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/llm-factcheck.js:20"}, "properties": {"repobilityId": "b92e77b084032e0e", "scanner": "scanner-primary", "fingerprint": "db5a55c9bf4b9f55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/llm-factcheck.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-d8d519ae61276333", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/neon.js:4"}, "properties": {"repobilityId": "3f3a6bae03b1a8e5", "scanner": "scanner-primary", "fingerprint": "d8d519ae61276333", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/neon.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-57e9185edf8b3249", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/imap-poll-worker.js:21"}, "properties": {"repobilityId": "f7e9d18652ad2ebb", "scanner": "scanner-primary", "fingerprint": "57e9185edf8b3249", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/imap-poll-worker.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-ff4548b0de62caa4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/send-guards.js:6"}, "properties": {"repobilityId": "685637cbdefc78da", "scanner": "scanner-primary", "fingerprint": "ff4548b0de62caa4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/send-guards.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-fa8697b48e691262", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/alias-rotator.js:15"}, "properties": {"repobilityId": "5391583685575a84", "scanner": "scanner-primary", "fingerprint": "fa8697b48e691262", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/alias-rotator.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-ae4f8c780282fdf1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/personalisation-injector.js:15"}, "properties": {"repobilityId": "454d755a21c17e87", "scanner": "scanner-primary", "fingerprint": "ae4f8c780282fdf1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/personalisation-injector.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-da18426e47042513", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/notify/policy.js:4"}, "properties": {"repobilityId": "710bfeacc6a8fbbf", "scanner": "scanner-primary", "fingerprint": "da18426e47042513", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/notify/policy.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-ba3b87dbbbd9893a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/notify/relay-router.js:18"}, "properties": {"repobilityId": "a2be17b5fd216b80", "scanner": "scanner-primary", "fingerprint": "ba3b87dbbbd9893a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/notify/relay-router.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-55ab45ecfedddece", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/audit/verify-audit-url.js:9"}, "properties": {"repobilityId": "9bcac0707f9a6b9f", "scanner": "scanner-primary", "fingerprint": "55ab45ecfedddece", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/audit/verify-audit-url.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-66e32f3452b26cb2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/audit/gap-finder.js:79"}, "properties": {"repobilityId": "382377911a28696e", "scanner": "scanner-primary", "fingerprint": "66e32f3452b26cb2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/audit/gap-finder.js"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-a3a31c5cb811864f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/compliance/connect.js:6"}, "properties": {"repobilityId": "bf4b46fee7365c72", "scanner": "scanner-primary", "fingerprint": "a3a31c5cb811864f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/compliance/connect.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-de2e899b56ef0f59", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/cross-platform-scorer.ts:5"}, "properties": {"repobilityId": "ff5cadcd56ab68b7", "scanner": "scanner-primary", "fingerprint": "de2e899b56ef0f59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/ad-intel/cross-platform-scorer.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-e6d3d2cb2007a0cd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/W14-cron.js:11"}, "properties": {"repobilityId": "69fcc036d5efad4e", "scanner": "scanner-primary", "fingerprint": "e6d3d2cb2007a0cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/ad-intel/W14-cron.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-0481a22b20eda732", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/ad-intel/bucket-d-integrator.ts:6"}, "properties": {"repobilityId": "8ad1c979cba1fb7b", "scanner": "scanner-primary", "fingerprint": "0481a22b20eda732", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/ad-intel/bucket-d-integrator.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-3beef2b3a7718a26", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/query-calendar.js:8"}, "properties": {"repobilityId": "9b0faf39bdbe5563", "scanner": "scanner-primary", "fingerprint": "3beef2b3a7718a26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/scraping/query-calendar.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-9b9d20cd742204cb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/serp-engine.js:11"}, "properties": {"repobilityId": "c5f5dae1be43eec0", "scanner": "scanner-primary", "fingerprint": "9b9d20cd742204cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/scraping/serp-engine.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-6758d37e555c28a6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/scraping/google-sponsored.js:11"}, "properties": {"repobilityId": "e49e631c845f3558", "scanner": "scanner-primary", "fingerprint": "6758d37e555c28a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/scraping/google-sponsored.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-622e061f1edc6cff", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing/bulk-sourcer.js:8"}, "properties": {"repobilityId": "e23962e081333582", "scanner": "scanner-primary", "fingerprint": "622e061f1edc6cff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/sourcing/bulk-sourcer.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-7288647ade06865c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/sourcing/sources/adapters.js:10"}, "properties": {"repobilityId": "6d40e9c1f927b97f", "scanner": "scanner-primary", "fingerprint": "7288647ade06865c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/sourcing/sources/adapters.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-d7de5503f8b97c68", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/llm/router.js:19"}, "properties": {"repobilityId": "9c4cd39269eb1a9b", "scanner": "scanner-primary", "fingerprint": "d7de5503f8b97c68", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/llm/router.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-278fab6864d65a07", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S065-touch-scheduler/scripts/send-due.js:8"}, "properties": {"repobilityId": "8722e0ed815cdc8d", "scanner": "scanner-primary", "fingerprint": "278fab6864d65a07", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S065-touch-scheduler/scripts/send-due.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-925688eff93ce673", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:9"}, "properties": {"repobilityId": "774a522aa6748d13", "scanner": "scanner-primary", "fingerprint": "925688eff93ce673", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-aed2c036139c0470", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scripts/run.js:13"}, "properties": {"repobilityId": "2496dcd0b69dc131", "scanner": "scanner-primary", "fingerprint": "aed2c036139c0470", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/scripts/run.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-8f382bf43dc67b9b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/lib/http.js:3"}, "properties": {"repobilityId": "7ea489d8aad99c81", "scanner": "scanner-primary", "fingerprint": "8f382bf43dc67b9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/lib/http.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-273d8f7594cdc354", "level": "note", "message": {"text": "Insecure pattern 'document_write' in src/skills/S008-personalisation-engine/scanners/content-depth.js:75"}, "properties": {"repobilityId": "6ef4357d4f035325", "scanner": "scanner-primary", "fingerprint": "273d8f7594cdc354", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/scanners/content-depth.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-f55fffde7bc8cf6c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S008-personalisation-engine/scanners/compliance.js:9"}, "properties": {"repobilityId": "90107ccd5afdd1a3", "scanner": "scanner-primary", "fingerprint": "f55fffde7bc8cf6c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/scanners/compliance.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-80ea89971e13aec1", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/skills/S008-personalisation-engine/scanners/security-headers.js:41"}, "properties": {"repobilityId": "a42e9699dc8165ff", "scanner": "scanner-primary", "fingerprint": "80ea89971e13aec1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S008-personalisation-engine/scanners/security-headers.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-f1301ab6e4ac9f43", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S024-bounce-handler/scripts/handle.js:10"}, "properties": {"repobilityId": "2ca29e5123e86cd5", "scanner": "scanner-primary", "fingerprint": "f1301ab6e4ac9f43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S024-bounce-handler/scripts/handle.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-6a512ed4de716372", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S025-warmup-engage/scripts/engage.js:9"}, "properties": {"repobilityId": "e97667c3fe1e1263", "scanner": "scanner-primary", "fingerprint": "6a512ed4de716372", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S025-warmup-engage/scripts/engage.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-519e4d937391e123", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S006-linkedin-drafter-v2/scripts/draft.js:7"}, "properties": {"repobilityId": "afa533c72dd19fab", "scanner": "scanner-primary", "fingerprint": "519e4d937391e123", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S006-linkedin-drafter-v2/scripts/draft.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-cbb8e18c3f1cb3da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S027-proposal-versioning/scripts/version.js:8"}, "properties": {"repobilityId": "3a0326df6d31a388", "scanner": "scanner-primary", "fingerprint": "cbb8e18c3f1cb3da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S027-proposal-versioning/scripts/version.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-7a89549c166ca8c3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S067-instagram-drafter/scripts/draft.js:9"}, "properties": {"repobilityId": "fc27af5fc29d39d2", "scanner": "scanner-primary", "fingerprint": "7a89549c166ca8c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S067-instagram-drafter/scripts/draft.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-86c053c833711ed8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S012-reply-intent-classifier/scripts/classify.js:29"}, "properties": {"repobilityId": "4520f5db63845596", "scanner": "scanner-primary", "fingerprint": "86c053c833711ed8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S012-reply-intent-classifier/scripts/classify.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-a07cead8fa23502b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S057-pre-call-brief/scripts/build.js:8"}, "properties": {"repobilityId": "cf976ad2a4daddda", "scanner": "scanner-primary", "fingerprint": "a07cead8fa23502b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S057-pre-call-brief/scripts/build.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-825ab244a6af7f30", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:18"}, "properties": {"repobilityId": "ab296c4a61c18476", "scanner": "scanner-primary", "fingerprint": "825ab244a6af7f30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S009-compliance-disclaimer-injector/scripts/inject.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-f3d050b6ce6c287e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S015-check-compliance/scripts/check.js:13"}, "properties": {"repobilityId": "107e2233fd28e931", "scanner": "scanner-primary", "fingerprint": "f3d050b6ce6c287e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S015-check-compliance/scripts/check.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-d8079565f5639264", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S064-touch-cadence/scripts/render.js:20"}, "properties": {"repobilityId": "9a84e399b80adc3a", "scanner": "scanner-primary", "fingerprint": "d8079565f5639264", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S064-touch-cadence/scripts/render.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-63a9a003a1eb82f9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S063-deep-research/scripts/research.js:10"}, "properties": {"repobilityId": "0c3530ef758f7cde", "scanner": "scanner-primary", "fingerprint": "63a9a003a1eb82f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S063-deep-research/scripts/research.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-265f13489981b27f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js:7"}, "properties": {"repobilityId": "b71e758164e2b1d9", "scanner": "scanner-primary", "fingerprint": "265f13489981b27f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S028-sourcing-orchestrator/scripts/build-dashboard.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-cb814cb332053d01", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S028-sourcing-orchestrator/scripts/run.js:9"}, "properties": {"repobilityId": "13608a9b0689e846", "scanner": "scanner-primary", "fingerprint": "cb814cb332053d01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S028-sourcing-orchestrator/scripts/run.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-fd45ad61ae39cb10", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S059-lexquity-investor-track/scripts/seed.js:8"}, "properties": {"repobilityId": "9af719159478a451", "scanner": "scanner-primary", "fingerprint": "fd45ad61ae39cb10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S059-lexquity-investor-track/scripts/seed.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-4abd4f93707e11d9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S013-response-draft-generator/scripts/draft.js:19"}, "properties": {"repobilityId": "56686e4578da2618", "scanner": "scanner-primary", "fingerprint": "4abd4f93707e11d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S013-response-draft-generator/scripts/draft.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-80722176ec9c0db1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S060-gemini-lead-enricher/scripts/enrich.js:7"}, "properties": {"repobilityId": "d762abd191714d0a", "scanner": "scanner-primary", "fingerprint": "80722176ec9c0db1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S060-gemini-lead-enricher/scripts/enrich.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-b479cce4af383785", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S019-engagement-tracker/scripts/track.js:13"}, "properties": {"repobilityId": "04f986f0f1b25846", "scanner": "scanner-primary", "fingerprint": "b479cce4af383785", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S019-engagement-tracker/scripts/track.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-5dc4da095347ce0d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S033-ad-intel-orchestrator/scripts/run.js:8"}, "properties": {"repobilityId": "46f7481f28123407", "scanner": "scanner-primary", "fingerprint": "5dc4da095347ce0d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S033-ad-intel-orchestrator/scripts/run.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-fffbb56bdf54882f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S036-regulator-watch/scripts/ingest.js:8"}, "properties": {"repobilityId": "aeb20f486b4e4790", "scanner": "scanner-primary", "fingerprint": "fffbb56bdf54882f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S036-regulator-watch/scripts/ingest.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-7d06422b61b50337", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S016-alias-health-monitor/scripts/monitor.js:13"}, "properties": {"repobilityId": "c0b2286a1e3d9ca4", "scanner": "scanner-primary", "fingerprint": "7d06422b61b50337", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S016-alias-health-monitor/scripts/monitor.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-210eb10d9b9e55e4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S062-auto-trigger-chain/scripts/run.js:7"}, "properties": {"repobilityId": "19930a829885a89f", "scanner": "scanner-primary", "fingerprint": "210eb10d9b9e55e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S062-auto-trigger-chain/scripts/run.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-785a05da2c1205d9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S023-mail-tester-runner/scripts/run.js:10"}, "properties": {"repobilityId": "31841c6b5fdcda49", "scanner": "scanner-primary", "fingerprint": "785a05da2c1205d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S023-mail-tester-runner/scripts/run.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-3273941e9cf8c0d1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S051-ssl-cert-monitor/scripts/check.js:8"}, "properties": {"repobilityId": "7a4729203832dc67", "scanner": "scanner-primary", "fingerprint": "3273941e9cf8c0d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S051-ssl-cert-monitor/scripts/check.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-bffaacd94fce742c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S025-audit-page-builder/scripts/build.js:14"}, "properties": {"repobilityId": "b0a76cbf9bf0a22f", "scanner": "scanner-primary", "fingerprint": "bffaacd94fce742c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S025-audit-page-builder/scripts/build.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-fbbd435a569a8f2e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/skills/S051-dns-health-monitor/scripts/check.js:8"}, "properties": {"repobilityId": "3b404859a2b2498c", "scanner": "scanner-primary", "fingerprint": "fbbd435a569a8f2e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/skills/S051-dns-health-monitor/scripts/check.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-095d185de673764c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "01600254d52a09cb", "scanner": "scanner-primary", "fingerprint": "095d185de673764c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/gen-state.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0adc78580578662", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5075652d99293fd2", "scanner": "scanner-primary", "fingerprint": "e0adc78580578662", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-safeguard.yml"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-742365de161371aa", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "c923e2267541f8ba", "scanner": "scanner-primary", "fingerprint": "742365de161371aa", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-safeguard.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ff2ce02f33cb190", "level": "note", "message": {"text": "Very large file: cloudflare/audit-worker-v14.js (1690 lines)"}, "properties": {"repobilityId": "ea3753a203eab1e8", "scanner": "scanner-primary", "fingerprint": "5ff2ce02f33cb190", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "4443d0595cc25766", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8e165a0ff63472fb", "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": "08a1cd608d8863b3", "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": "56fbff422f257eb0", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "3c1a2d074270d4f3", "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": "f65c8376232bc6d0", "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": "3e8f79de835645c7", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-b69a22b2c5ff5bfd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_psi.js:6"}, "properties": {"repobilityId": "0b99dd6711d75095", "scanner": "scanner-primary", "fingerprint": "b69a22b2c5ff5bfd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b697f953834535c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 _drv_step.js:5"}, "properties": {"repobilityId": "d3d0c2d75b36ef28", "scanner": "scanner-primary", "fingerprint": "b697f953834535c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8f851bdb00dc350", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 beta-run.js:11"}, "properties": {"repobilityId": "2b4c111d421d7ef7", "scanner": "scanner-primary", "fingerprint": "f8f851bdb00dc350", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0046fbee54968db0", "level": "note", "message": {"text": "Legacy-named symbol `hours_old` in scrapers/run_jobspy.py:55"}, "properties": {"repobilityId": "c8e9bc5d82b11767", "scanner": "scanner-primary", "fingerprint": "0046fbee54968db0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cc0d77d2c3fe13dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/touch-0-dry-run.js:7"}, "properties": {"repobilityId": "3f95b6dc7cbd86b8", "scanner": "scanner-primary", "fingerprint": "cc0d77d2c3fe13dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22d3049b0d9f82d6", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/phase-6.7-10-layer.test.js:5"}, "properties": {"repobilityId": "6f45dfed51a87986", "scanner": "scanner-primary", "fingerprint": "22d3049b0d9f82d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bb6cb04e86bcc37", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/tamazia-ops/server.py:137"}, "properties": {"repobilityId": "af95eafe70734524", "scanner": "scanner-primary", "fingerprint": "3bb6cb04e86bcc37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2f28da3548d677e", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/pre-send-pipeline.js:2"}, "properties": {"repobilityId": "3d12cbe0ade2e07e", "scanner": "scanner-primary", "fingerprint": "b2f28da3548d677e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05761930f9087e88", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/approve-leads.js:3"}, "properties": {"repobilityId": "3c1c3469482ca7ba", "scanner": "scanner-primary", "fingerprint": "05761930f9087e88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8d48dcfdeb73bf2", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/enrich-worker.js:3"}, "properties": {"repobilityId": "45892b1ccdde1a5d", "scanner": "scanner-primary", "fingerprint": "d8d48dcfdeb73bf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b947032e36d18324", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/run-serp-scrape.js:24"}, "properties": {"repobilityId": "6068314575e7424c", "scanner": "scanner-primary", "fingerprint": "b947032e36d18324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd68b5eb6f680eed", "level": "none", "message": {"text": "Commented-code block (13 lines) in scripts/push-to-mystrika.js:32"}, "properties": {"repobilityId": "7a5b73fc2ffac419", "scanner": "scanner-primary", "fingerprint": "bd68b5eb6f680eed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d665ca1e06e36cd", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/eval-qualifier.js:7"}, "properties": {"repobilityId": "33422b870cec1255", "scanner": "scanner-primary", "fingerprint": "7d665ca1e06e36cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75d60f02d5a2a2b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/deliverability-guard.js:2"}, "properties": {"repobilityId": "675a213a4d27f949", "scanner": "scanner-primary", "fingerprint": "75d60f02d5a2a2b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25e937528179592f", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/reap-stale-runs.js:5"}, "properties": {"repobilityId": "2d6c561f3b28e4ea", "scanner": "scanner-primary", "fingerprint": "25e937528179592f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f4a589986d5b3fe", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/reconcile-cal-bookings.js:3"}, "properties": {"repobilityId": "905bb3a88103fa88", "scanner": "scanner-primary", "fingerprint": "7f4a589986d5b3fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-202fead149321ade", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/verify-audits.js:2"}, "properties": {"repobilityId": "719ff85e5b8e8cf0", "scanner": "scanner-primary", "fingerprint": "202fead149321ade", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec9e8f154bc6c162", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/refresh-enforcement-news.js:7"}, "properties": {"repobilityId": "fd9f6231706f4438", "scanner": "scanner-primary", "fingerprint": "ec9e8f154bc6c162", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0de6f32276562edf", "level": "none", "message": {"text": "Commented-code block (13 lines) in scripts/mystrika-export.js:5"}, "properties": {"repobilityId": "ec1ff3ebaa3827a4", "scanner": "scanner-primary", "fingerprint": "0de6f32276562edf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41800e84c36470ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/self-audit-workflow.js:3"}, "properties": {"repobilityId": "d6d56090e82d1ae2", "scanner": "scanner-primary", "fingerprint": "41800e84c36470ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c5dfa41738a7361", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/dedupe-leads.js:2"}, "properties": {"repobilityId": "b8980f61a0780ead", "scanner": "scanner-primary", "fingerprint": "7c5dfa41738a7361", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d01e6eae4223e95", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/recycle.js:3"}, "properties": {"repobilityId": "046c80dd6df65ff9", "scanner": "scanner-primary", "fingerprint": "6d01e6eae4223e95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf418faabb601a88", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/claude-safeguard-batch.js:3"}, "properties": {"repobilityId": "36277db630d11569", "scanner": "scanner-primary", "fingerprint": "cf418faabb601a88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e14b63cfaeaa362f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/source-leads.js:56"}, "properties": {"repobilityId": "b634d395867ab923", "scanner": "scanner-primary", "fingerprint": "e14b63cfaeaa362f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c5c4830576d039d", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/scrape-all.js:3"}, "properties": {"repobilityId": "3e0cbe7913be59f8", "scanner": "scanner-primary", "fingerprint": "8c5c4830576d039d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa7b3debd0dc7497", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/eval-llm-rescue.js:3"}, "properties": {"repobilityId": "0a5978609359cda4", "scanner": "scanner-primary", "fingerprint": "fa7b3debd0dc7497", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f623f65598a8378", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/notify-event.js:21"}, "properties": {"repobilityId": "edf9c9f43c394891", "scanner": "scanner-primary", "fingerprint": "5f623f65598a8378", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3e8f175348901aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/match-inbound-replies.js:6"}, "properties": {"repobilityId": "af7169ad0351b5fe", "scanner": "scanner-primary", "fingerprint": "c3e8f175348901aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9222db2baafb1236", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/verify-contacts.js:2"}, "properties": {"repobilityId": "0e9fc0169ca62803", "scanner": "scanner-primary", "fingerprint": "9222db2baafb1236", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c753f8c6c6862d5d", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/scorecard-nightly.js:2"}, "properties": {"repobilityId": "9ab6649c0a99de07", "scanner": "scanner-primary", "fingerprint": "c753f8c6c6862d5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3509f764f3ec7ce8", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/enforcement-sync.js:3"}, "properties": {"repobilityId": "e326eeaa79774f87", "scanner": "scanner-primary", "fingerprint": "3509f764f3ec7ce8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a32fb9c3419420bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check-stuck-jobs.js:2"}, "properties": {"repobilityId": "78115c5abb89a3c8", "scanner": "scanner-primary", "fingerprint": "a32fb9c3419420bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fee66e35d37623f", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/compute-metrics.js:14"}, "properties": {"repobilityId": "a79c8f529a1ed304", "scanner": "scanner-primary", "fingerprint": "0fee66e35d37623f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdec70bd2586f680", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/eval-audit-gaps.mjs:2"}, "properties": {"repobilityId": "b05cf08758845626", "scanner": "scanner-primary", "fingerprint": "fdec70bd2586f680", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81362f7ea1e51a07", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/requalify-all-leads.js:2"}, "properties": {"repobilityId": "1ea42eb2c19944a6", "scanner": "scanner-primary", "fingerprint": "81362f7ea1e51a07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-119e46e6f8ddadb8", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/backtest-personalisation.js:2"}, "properties": {"repobilityId": "308ed595f86d3a0c", "scanner": "scanner-primary", "fingerprint": "119e46e6f8ddadb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da364a687a89edbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sync-mystrika-replies.js:13"}, "properties": {"repobilityId": "29361d902ff1078a", "scanner": "scanner-primary", "fingerprint": "da364a687a89edbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-025405478945b948", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/enrich-and-queue-channels.js:2"}, "properties": {"repobilityId": "653bdda9d2381adc", "scanner": "scanner-primary", "fingerprint": "025405478945b948", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1310d63f638957e", "level": "none", "message": {"text": "Commented-code block (12 lines) in scripts/apply-review.js:3"}, "properties": {"repobilityId": "f229cba9045431ee", "scanner": "scanner-primary", "fingerprint": "f1310d63f638957e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2736c952765bba9", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/qualify-and-queue.js:2"}, "properties": {"repobilityId": "4462cbb4b9bb1a4d", "scanner": "scanner-primary", "fingerprint": "b2736c952765bba9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba9f29577d872a2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/ensure-schema.js:87"}, "properties": {"repobilityId": "817d93801007482e", "scanner": "scanner-primary", "fingerprint": "ba9f29577d872a2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d362bb0b6d1622f", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/refresh-pipeline.js:2"}, "properties": {"repobilityId": "91921c996dbb9c99", "scanner": "scanner-primary", "fingerprint": "2d362bb0b6d1622f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a0e4e10507dc526", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/render-touches.js:18"}, "properties": {"repobilityId": "2644e4a2f6b93dbb", "scanner": "scanner-primary", "fingerprint": "0a0e4e10507dc526", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8e371bc074268b1", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/mint-worker.js:3"}, "properties": {"repobilityId": "469672da27ec449e", "scanner": "scanner-primary", "fingerprint": "d8e371bc074268b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00049dd615e2824b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/governor-release.js:2"}, "properties": {"repobilityId": "b751fdbe0fdd5ac8", "scanner": "scanner-primary", "fingerprint": "00049dd615e2824b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ea916da77da6aaa", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/resolve-registry-domains.js:2"}, "properties": {"repobilityId": "8d728a875a509397", "scanner": "scanner-primary", "fingerprint": "1ea916da77da6aaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7520ce4c10affa84", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/run-llm-rescue.js:3"}, "properties": {"repobilityId": "22a28dce1cb56f71", "scanner": "scanner-primary", "fingerprint": "7520ce4c10affa84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41fcaf92eec655b3", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/reconcile.js:3"}, "properties": {"repobilityId": "4b296aec5aef65d2", "scanner": "scanner-primary", "fingerprint": "41fcaf92eec655b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a4fe7b906c9a3d9", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/heartbeat.js:33"}, "properties": {"repobilityId": "9ac0146cef809453", "scanner": "scanner-primary", "fingerprint": "5a4fe7b906c9a3d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21268c233eb4b4e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-state.js:2"}, "properties": {"repobilityId": "3bddf9751e457505", "scanner": "scanner-primary", "fingerprint": "21268c233eb4b4e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5211d9f6e54c2337", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-connection.mjs:3"}, "properties": {"repobilityId": "11fc248151504185", "scanner": "scanner-primary", "fingerprint": "5211d9f6e54c2337", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99b20a5cde46b3e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/qa-compliance.js:3"}, "properties": {"repobilityId": "61b4661bce1c6c24", "scanner": "scanner-primary", "fingerprint": "99b20a5cde46b3e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-200408ba51d8dc22", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/v3/normalise-names.js:4"}, "properties": {"repobilityId": "e064b59f23e57ed7", "scanner": "scanner-primary", "fingerprint": "200408ba51d8dc22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d706e621df466521", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/migrations/normalize-rule-sectors.js:3"}, "properties": {"repobilityId": "dd900c08ba840ee1", "scanner": "scanner-primary", "fingerprint": "d706e621df466521", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fc44430a1c2ecb3", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/migrations/build-canonical-laws.js:6"}, "properties": {"repobilityId": "546469d7ce091678", "scanner": "scanner-primary", "fingerprint": "8fc44430a1c2ecb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e980d9e8e3bd42", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/migrations/test-sector-accuracy.js:3"}, "properties": {"repobilityId": "c4b2176a9a8017ef", "scanner": "scanner-primary", "fingerprint": "b3e980d9e8e3bd42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-295a1ffc5c46275a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/migrations/audit-rule-gates.js:7"}, "properties": {"repobilityId": "28615f25b9b5f4b5", "scanner": "scanner-primary", "fingerprint": "295a1ffc5c46275a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1413e84d459bce3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/migrations/load-canonical-laws.js:3"}, "properties": {"repobilityId": "aea8c84d8d500b6c", "scanner": "scanner-primary", "fingerprint": "1413e84d459bce3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccda8e72ce8e6ecb", "level": "none", "message": {"text": "Commented-code block (5 lines) in cloudflare/admin-worker.js:1"}, "properties": {"repobilityId": "30a8d93d6f321c98", "scanner": "scanner-primary", "fingerprint": "ccda8e72ce8e6ecb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db9d8028b081a8b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/admin-worker.js:36"}, "properties": {"repobilityId": "58b0a5e1915cde8e", "scanner": "scanner-primary", "fingerprint": "db9d8028b081a8b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea6a8bbdd5a40836", "level": "none", "message": {"text": "Commented-code block (10 lines) in cloudflare/audit-worker.js:1"}, "properties": {"repobilityId": "bf87c716d31db2f9", "scanner": "scanner-primary", "fingerprint": "ea6a8bbdd5a40836", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff9c5f7677f9efc5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker.js:734"}, "properties": {"repobilityId": "8c8ca65564efda31", "scanner": "scanner-primary", "fingerprint": "ff9c5f7677f9efc5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d030b1a6c9fef0b1", "level": "none", "message": {"text": "Commented-code block (12 lines) in cloudflare/audit-worker-v14.js:1"}, "properties": {"repobilityId": "46275350aab14e63", "scanner": "scanner-primary", "fingerprint": "d030b1a6c9fef0b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e143343539763f85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cloudflare/audit-worker-v14.js:1450"}, "properties": {"repobilityId": "c93adc7bf5493bf5", "scanner": "scanner-primary", "fingerprint": "e143343539763f85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c96dc4b31211704", "level": "none", "message": {"text": "Commented-code block (9 lines) in eval/retier-persisted.js:3"}, "properties": {"repobilityId": "48f018c77e38f55f", "scanner": "scanner-primary", "fingerprint": "2c96dc4b31211704", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b06d000313d391c0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/gap-ledger.js:4"}, "properties": {"repobilityId": "0a8cbd37edd585d9", "scanner": "scanner-primary", "fingerprint": "b06d000313d391c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-739dc3d1b72332e9", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/llm-rescue.js:2"}, "properties": {"repobilityId": "d22b4ee3c48bc056", "scanner": "scanner-primary", "fingerprint": "739dc3d1b72332e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b7960477e43ea70", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/gates.js:52"}, "properties": {"repobilityId": "1f6100d101ecea10", "scanner": "scanner-primary", "fingerprint": "1b7960477e43ea70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07db04ab374a40c1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/governor.js:1"}, "properties": {"repobilityId": "4108c87c4893326c", "scanner": "scanner-primary", "fingerprint": "07db04ab374a40c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4ff7a55c1dbb46e", "level": "none", "message": {"text": "Commented-code block (17 lines) in src/lib/pipeline-gap-fills.js:4"}, "properties": {"repobilityId": "154ebf70f5a45045", "scanner": "scanner-primary", "fingerprint": "c4ff7a55c1dbb46e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dbd090b3e49fe00", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/reply-notifier.js:4"}, "properties": {"repobilityId": "f8f82bbf41d03eb8", "scanner": "scanner-primary", "fingerprint": "0dbd090b3e49fe00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f41d7921b72f4246", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/llm-factcheck.js:2"}, "properties": {"repobilityId": "0600a908da1f3edb", "scanner": "scanner-primary", "fingerprint": "f41d7921b72f4246", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5757cd21c8536ee8", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/lib/imap-poll-worker.js:1"}, "properties": {"repobilityId": "205223593d126fc4", "scanner": "scanner-primary", "fingerprint": "5757cd21c8536ee8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54215031498580f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/independent-verify.js:3"}, "properties": {"repobilityId": "c9ab0611b52e04d2", "scanner": "scanner-primary", "fingerprint": "54215031498580f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-749b3dde8b6bea3e", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/personalisation-injector.js:1"}, "properties": {"repobilityId": "6eec5e5dc0af0c7a", "scanner": "scanner-primary", "fingerprint": "749b3dde8b6bea3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f350d5e95c0ec369", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/apify/client.js:2"}, "properties": {"repobilityId": "a8222f8097e23108", "scanner": "scanner-primary", "fingerprint": "f350d5e95c0ec369", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-158dee7108cf2b36", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/notify/zoho-imap-client.js:1"}, "properties": {"repobilityId": "885711e994143189", "scanner": "scanner-primary", "fingerprint": "158dee7108cf2b36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37d91b4efb703a27", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/notify/relay-router.js:5"}, "properties": {"repobilityId": "4cf15a40d705b525", "scanner": "scanner-primary", "fingerprint": "37d91b4efb703a27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4147dcc404d92e76", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/audit/competitor-overlap.js:2"}, "properties": {"repobilityId": "a8f4fefc17290d90", "scanner": "scanner-primary", "fingerprint": "4147dcc404d92e76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-961917f1053312d1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/audit/verify-audit-url.js:1"}, "properties": {"repobilityId": "2e1324991cce9424", "scanner": "scanner-primary", "fingerprint": "961917f1053312d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44099c907b200143", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audit/site-scan.js:1"}, "properties": {"repobilityId": "377734fbe710fb35", "scanner": "scanner-primary", "fingerprint": "44099c907b200143", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65db116cef8106a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/audit/site-scan.js:343"}, "properties": {"repobilityId": "530be94993a2bfc7", "scanner": "scanner-primary", "fingerprint": "65db116cef8106a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1210f4d11ce9d0db", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/audit/firm-profile.js:2"}, "properties": {"repobilityId": "889260168168d30b", "scanner": "scanner-primary", "fingerprint": "1210f4d11ce9d0db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6641c31643e8bc12", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/audit/hf-ml.js:2"}, "properties": {"repobilityId": "ea3e641a62ac3158", "scanner": "scanner-primary", "fingerprint": "6641c31643e8bc12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f1d0090086688d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/audit/geo-probe.js:7"}, "properties": {"repobilityId": "98a298d0ae68ac80", "scanner": "scanner-primary", "fingerprint": "7f1d0090086688d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13eb08e33982d404", "level": "note", "message": {"text": "Legacy-named symbol `bing_kw_v1` in src/lib/audit/bing-volume.js:34"}, "properties": {"repobilityId": "7849915c676bf8d3", "scanner": "scanner-primary", "fingerprint": "13eb08e33982d404", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56bc63f0cb4bd064", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audit/fix-writer.js:2"}, "properties": {"repobilityId": "8a38e01757adaf61", "scanner": "scanner-primary", "fingerprint": "56bc63f0cb4bd064", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce944232d55efac4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audit/gap-finder.js:33"}, "properties": {"repobilityId": "f9df4db226fdf9e7", "scanner": "scanner-primary", "fingerprint": "ce944232d55efac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16d423971e49f07e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audit/cc-index.js:2"}, "properties": {"repobilityId": "871f94a80a06c7a8", "scanner": "scanner-primary", "fingerprint": "16d423971e49f07e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8c69e0c7d6133cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/compliance/enforcement.js:2"}, "properties": {"repobilityId": "a6f666f27ad124e5", "scanner": "scanner-primary", "fingerprint": "d8c69e0c7d6133cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2058f876a7da058b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/compliance/resolver.js:2"}, "properties": {"repobilityId": "e88365b982f02836", "scanner": "scanner-primary", "fingerprint": "2058f876a7da058b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b2f1e7b3c839891", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/compliance/tracker-detect.js:1"}, "properties": {"repobilityId": "c45209b5948c8f79", "scanner": "scanner-primary", "fingerprint": "2b2f1e7b3c839891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-060e9bb1060fb503", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/touch0/rank-insight.js:246"}, "properties": {"repobilityId": "564c10d2dc108253", "scanner": "scanner-primary", "fingerprint": "060e9bb1060fb503", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a9e0b8f2acb5d70", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/ad-intel/pixel-detector.js:1"}, "properties": {"repobilityId": "a8deaed54e65c3d4", "scanner": "scanner-primary", "fingerprint": "3a9e0b8f2acb5d70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b218f17a3d1261d2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/ad-intel/intent-job-boards.js:4"}, "properties": {"repobilityId": "0ad4bbdaa3152f63", "scanner": "scanner-primary", "fingerprint": "b218f17a3d1261d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-235da40002363002", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/ad-intel/W14-cron.js:2"}, "properties": {"repobilityId": "1961adb8af143174", "scanner": "scanner-primary", "fingerprint": "235da40002363002", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a565a78586f659b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/ad-intel/meta.ts:1"}, "properties": {"repobilityId": "433de30b7973c68c", "scanner": "scanner-primary", "fingerprint": "8a565a78586f659b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-096b29143aaa2978", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/scraping/query-calendar.js:1"}, "properties": {"repobilityId": "f457bac80d333fd6", "scanner": "scanner-primary", "fingerprint": "096b29143aaa2978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-754c225c137654db", "level": "note", "message": {"text": "Legacy-named symbol `serp_v1` in src/lib/scraping/serp-client.js:55"}, "properties": {"repobilityId": "2fee75ad8ac0b9e3", "scanner": "scanner-primary", "fingerprint": "754c225c137654db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0a009154024f87dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/scraping/serp-client.js:9"}, "properties": {"repobilityId": "bfd3778ac6c4322f", "scanner": "scanner-primary", "fingerprint": "0a009154024f87dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16c4333ec196c6d2", "level": "note", "message": {"text": "Legacy-named symbol `serp_v1` in src/lib/scraping/free-serp.js:88"}, "properties": {"repobilityId": "69734cc713697b87", "scanner": "scanner-primary", "fingerprint": "16c4333ec196c6d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b57114ed759c719d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/scraping/serp-engine.js:1"}, "properties": {"repobilityId": "ebb75e1ad303e471", "scanner": "scanner-primary", "fingerprint": "b57114ed759c719d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16be008322726167", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/sourcing/sra-register.js:2"}, "properties": {"repobilityId": "6a059b7ce9a3cbf1", "scanner": "scanner-primary", "fingerprint": "16be008322726167", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2451d775164dc482", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/sourcing/sra-register.js:6"}, "properties": {"repobilityId": "e34aef77901ff882", "scanner": "scanner-primary", "fingerprint": "2451d775164dc482", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6e74c27381708e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sourcing/enrich.js:53"}, "properties": {"repobilityId": "a2f9fc18fa3ab4bf", "scanner": "scanner-primary", "fingerprint": "c6e74c27381708e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76ba9916f88e1626", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/sourcing/dm-registers.js:2"}, "properties": {"repobilityId": "0ca5c9a6045538dd", "scanner": "scanner-primary", "fingerprint": "76ba9916f88e1626", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-213505cc2c371ee6", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/sourcing/conversion.js:23"}, "properties": {"repobilityId": "3cc076e3f629eb2e", "scanner": "scanner-primary", "fingerprint": "213505cc2c371ee6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7923dd2954eebd9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sourcing/safe-insert.js:3"}, "properties": {"repobilityId": "48910042f47733ec", "scanner": "scanner-primary", "fingerprint": "7923dd2954eebd9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9260e9916d6a0ca4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sourcing/resolve-name.js:3"}, "properties": {"repobilityId": "ada3417e9393f9a5", "scanner": "scanner-primary", "fingerprint": "9260e9916d6a0ca4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-486dd88b429de2f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sourcing/icp.js:1"}, "properties": {"repobilityId": "1f3bc37c6814990e", "scanner": "scanner-primary", "fingerprint": "486dd88b429de2f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9a8bfcefbcb9631", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/sourcing/find-every-email.js:45"}, "properties": {"repobilityId": "de5c0758a52a0d8a", "scanner": "scanner-primary", "fingerprint": "d9a8bfcefbcb9631", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cbd472359d44851", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/enrich/lead-quality.js:5"}, "properties": {"repobilityId": "acfec15fe27375ba", "scanner": "scanner-primary", "fingerprint": "7cbd472359d44851", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfcb8ab14bbd3b7f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/enrich/waterfall.js:5"}, "properties": {"repobilityId": "c990908f65ad3d7a", "scanner": "scanner-primary", "fingerprint": "dfcb8ab14bbd3b7f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a3cd918753ab813", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/enrich/verify-status.js:2"}, "properties": {"repobilityId": "835d4bab31c5e276", "scanner": "scanner-primary", "fingerprint": "3a3cd918753ab813", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e51855128e46e5a", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/enrich/free-verify.js:4"}, "properties": {"repobilityId": "7abcb90a9188865d", "scanner": "scanner-primary", "fingerprint": "6e51855128e46e5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deee6b60ecde258c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/enrich/verify-email.js:2"}, "properties": {"repobilityId": "c5ca784c154bb718", "scanner": "scanner-primary", "fingerprint": "deee6b60ecde258c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00efcd19dfef3184", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/llm/router.js:6"}, "properties": {"repobilityId": "de9fcd72de2d7ab5", "scanner": "scanner-primary", "fingerprint": "00efcd19dfef3184", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cf5e7d3b1ea1c04", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/skills/S065-touch-scheduler/scripts/send-due.js:11"}, "properties": {"repobilityId": "9c6070764bfc2f2a", "scanner": "scanner-primary", "fingerprint": "6cf5e7d3b1ea1c04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a400f8e0f3c53f5", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/tests/10-layer.test.js:5"}, "properties": {"repobilityId": "ad2ab25a876b0226", "scanner": "scanner-primary", "fingerprint": "8a400f8e0f3c53f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fe3af948f8ff24a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scripts/pre-w2-cron.js:2"}, "properties": {"repobilityId": "83b183384ca171b6", "scanner": "scanner-primary", "fingerprint": "5fe3af948f8ff24a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac7cd56890123f5b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/lib/http.js:53"}, "properties": {"repobilityId": "2b07e038f9c7548f", "scanner": "scanner-primary", "fingerprint": "ac7cd56890123f5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-295fa573c641cea2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/hallucination-guard.js:5"}, "properties": {"repobilityId": "1755323c92276f1b", "scanner": "scanner-primary", "fingerprint": "295fa573c641cea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e8e1589112f1184", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/skills/S008-personalisation-engine/lib/score-rubric.js:6"}, "properties": {"repobilityId": "6a5e6c384a3e1188", "scanner": "scanner-primary", "fingerprint": "0e8e1589112f1184", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-930effd67c9dd9d2", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/skills/S008-personalisation-engine/scanners/content-depth.js:1"}, "properties": {"repobilityId": "ac2f1fc2fb8389f2", "scanner": "scanner-primary", "fingerprint": "930effd67c9dd9d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3b3eeaf457cd59d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/ad-intel.js:1"}, "properties": {"repobilityId": "c12a04069b3d08d5", "scanner": "scanner-primary", "fingerprint": "d3b3eeaf457cd59d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8aee357dc8f7170", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/compliance.js:1"}, "properties": {"repobilityId": "f3f3a434fe9bb4e4", "scanner": "scanner-primary", "fingerprint": "e8aee357dc8f7170", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-886d14dd7444bb45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/compliance.js:201"}, "properties": {"repobilityId": "06de8be0fca339db", "scanner": "scanner-primary", "fingerprint": "886d14dd7444bb45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93adb70edd160650", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S008-personalisation-engine/scanners/security-headers.js:1"}, "properties": {"repobilityId": "e25fd425868ef91a", "scanner": "scanner-primary", "fingerprint": "93adb70edd160650", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-065beac51d57c1c0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S008-personalisation-engine/scanners/security-headers.js:66"}, "properties": {"repobilityId": "e2a379db46afb28b", "scanner": "scanner-primary", "fingerprint": "065beac51d57c1c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc88702fc369cb32", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/skills/S008-personalisation-engine/scanners/corpus-index.js:2"}, "properties": {"repobilityId": "06643d4f2f7ad101", "scanner": "scanner-primary", "fingerprint": "fc88702fc369cb32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56c710c0a1b347a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S024-bounce-handler/scripts/handle.js:64"}, "properties": {"repobilityId": "b352a9bc1720999d", "scanner": "scanner-primary", "fingerprint": "56c710c0a1b347a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dce8abaad7c62e46", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/skills/S067-instagram-drafter/scripts/draft.js:2"}, "properties": {"repobilityId": "efd20eb537e64523", "scanner": "scanner-primary", "fingerprint": "dce8abaad7c62e46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf46ddc7dbb1929c", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/skills/S012-reply-intent-classifier/scripts/classify.js:7"}, "properties": {"repobilityId": "80e2f952f2d58e4a", "scanner": "scanner-primary", "fingerprint": "bf46ddc7dbb1929c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3a0332ea95907cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S009-compliance-disclaimer-injector/scripts/inject.js:6"}, "properties": {"repobilityId": "520a1416b4cd3525", "scanner": "scanner-primary", "fingerprint": "d3a0332ea95907cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2a9328604c50dc7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/skills/S064-touch-cadence/scripts/render.js:2"}, "properties": {"repobilityId": "287a8bca82ba12bb", "scanner": "scanner-primary", "fingerprint": "c2a9328604c50dc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6822c2e0cf812964", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/skills/S063-deep-research/scripts/research.js:2"}, "properties": {"repobilityId": "2d73dcf00c38268c", "scanner": "scanner-primary", "fingerprint": "6822c2e0cf812964", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a02529269ba99382", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S013-response-draft-generator/scripts/draft.js:7"}, "properties": {"repobilityId": "85c3dc8221a1d950", "scanner": "scanner-primary", "fingerprint": "a02529269ba99382", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-909a16923ad9ea85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S019-engagement-tracker/scripts/track.js:2"}, "properties": {"repobilityId": "5306605e2ef0619e", "scanner": "scanner-primary", "fingerprint": "909a16923ad9ea85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ae040cf331ec599", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S016-alias-health-monitor/scripts/monitor.js:6"}, "properties": {"repobilityId": "f951e64f5d0ff948", "scanner": "scanner-primary", "fingerprint": "8ae040cf331ec599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-508e4aa27ae43fc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/skills/S001-compose-body/scripts/compose.js:1"}, "properties": {"repobilityId": "d16d247b4d7b6bb3", "scanner": "scanner-primary", "fingerprint": "508e4aa27ae43fc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-210fb45457b368a7", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/skills/S025-audit-page-builder/scripts/build.js:495"}, "properties": {"repobilityId": "80137b21a31760bb", "scanner": "scanner-primary", "fingerprint": "210fb45457b368a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-916e7c006263cbd7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/skills/S025-audit-page-builder/scripts/build.js:497"}, "properties": {"repobilityId": "bb0d1a7f011be2d4", "scanner": "scanner-primary", "fingerprint": "916e7c006263cbd7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-523e27ccde05f98b", "level": "error", "message": {"text": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/notify-event.js:28)"}, "properties": {"repobilityId": "8a21442247b5a0b5", "scanner": "scanner-primary", "fingerprint": "523e27ccde05f98b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0536b531818b582", "level": "error", "message": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/notify-event.js:29)"}, "properties": {"repobilityId": "dd8dd3cb2a0a83d5", "scanner": "scanner-primary", "fingerprint": "f0536b531818b582", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76171c399a579c68", "level": "error", "message": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/check-stuck-jobs.js:50)"}, "properties": {"repobilityId": "a9fb90733f395e71", "scanner": "scanner-primary", "fingerprint": "76171c399a579c68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a232a60bd1ebce57", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${gkey} (scripts/intel-pulse.js:50)"}, "properties": {"repobilityId": "b8dcfbbb5a14de10", "scanner": "scanner-primary", "fingerprint": "a232a60bd1ebce57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89c3186930f9d282", "level": "error", "message": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (scripts/intel-pulse.js:61)"}, "properties": {"repobilityId": "dce2d2494dfe4005", "scanner": "scanner-primary", "fingerprint": "89c3186930f9d282", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8ea0f067966f706", "level": "error", "message": {"text": "Dangling fetch: POST https://slack.com/api/chat.postMessage (scripts/intel-pulse.js:76)"}, "properties": {"repobilityId": "fb1ca0483e5aa57a", "scanner": "scanner-primary", "fingerprint": "c8ea0f067966f706", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a44a550d4553b24", "level": "error", "message": {"text": "Dangling fetch: POST https://api.telegram.org/bot${tok}/sendMessage (scripts/intel-pulse.js:80)"}, "properties": {"repobilityId": "a32a618401a97de5", "scanner": "scanner-primary", "fingerprint": "4a44a550d4553b24", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-559288ead1e8e94a", "level": "error", "message": {"text": "Dangling fetch: POST /api/track/audit-event (deploy/astro/audit-tracking.js:12)"}, "properties": {"repobilityId": "253d6cd081ef9ab0", "scanner": "scanner-primary", "fingerprint": "559288ead1e8e94a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73790be6d94fb1d1", "level": "error", "message": {"text": "Dangling fetch: POST https://${NEON_HOST}/sql (cloudflare/admin-worker.js:36)"}, "properties": {"repobilityId": "eae6f18142342091", "scanner": "scanner-primary", "fingerprint": "73790be6d94fb1d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae738f16913d0b7c", "level": "error", "message": {"text": "Dangling fetch: POST /admin/api/action (cloudflare/admin-worker.js:262)"}, "properties": {"repobilityId": "7ce998c191568291", "scanner": "scanner-primary", "fingerprint": "ae738f16913d0b7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f77c0bff5ce30143", "level": "error", "message": {"text": "Dangling fetch: POST https://api.languagetool.org/v2/check (src/lib/audit/site-scan.js:392)"}, "properties": {"repobilityId": "56543933dd9d7043", "scanner": "scanner-primary", "fingerprint": "f77c0bff5ce30143", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba026382592fc431", "level": "error", "message": {"text": "Dangling fetch: GET https://api.company-information.service.gov.uk/company/${reg}/officers (src/lib/sourcing/firmographics.js:43)"}, "properties": {"repobilityId": "29983bd09e1692d4", "scanner": "scanner-primary", "fingerprint": "ba026382592fc431", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-58f8b62fd6cf7522", "level": "error", "message": {"text": "Dangling fetch: GET https://api.hunter.io/v2/email-verifier?email=${encodeURIComponent(email)}&api_key=${key} (src/lib/enrich/free-verify.js:107)"}, "properties": {"repobilityId": "1126f50f5379df98", "scanner": "scanner-primary", "fingerprint": "58f8b62fd6cf7522", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-595f345096d4d173", "level": "error", "message": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (src/lib/llm/router.js:98)"}, "properties": {"repobilityId": "96869bcf70a76aab", "scanner": "scanner-primary", "fingerprint": "595f345096d4d173", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77a4d04dd694fd2a", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${process.env.GEMINI_API_KEY} (src/lib/llm/router.js:122)"}, "properties": {"repobilityId": "7f2906e5b4bd909d", "scanner": "scanner-primary", "fingerprint": "77a4d04dd694fd2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1170abc4fd2fe32", "level": "error", "message": {"text": "Dangling fetch: GET https://api.ssllabs.com/api/v3/analyze?host=${encodeURIComponent(domain)}&fromCache=on&maxAge=24&all=done (src/skills/S008-personalisation-engine/scanners/tls-dns.js:86)"}, "properties": {"repobilityId": "5f078464dd4d826e", "scanner": "scanner-primary", "fingerprint": "b1170abc4fd2fe32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67e48bc4740657ec", "level": "error", "message": {"text": "Dangling fetch: POST https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (src/skills/S008-personalisation-engine/scanners/security-headers.js:61)"}, "properties": {"repobilityId": "8b86a048c91cb62b", "scanner": "scanner-primary", "fingerprint": "67e48bc4740657ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7eb252a009486059", "level": "error", "message": {"text": "Dangling fetch: GET https://http-observatory.security.mozilla.org/api/v1/analyze?host=${encodeURIComponent(domain)} (src/skills/S008-personalisation-engine/scanners/security-headers.js:66)"}, "properties": {"repobilityId": "97d46b8fda261eb1", "scanner": "scanner-primary", "fingerprint": "7eb252a009486059", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8313cf93c61ffaa6", "level": "note", "message": {"text": "Unused endpoint: GET /render"}, "properties": {"repobilityId": "b05d413d09fb54b8", "scanner": "scanner-primary", "fingerprint": "8313cf93c61ffaa6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}