{"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-86936694a4ebc3ec", "name": "Stray `console.log` in TS/JS \u2014 test/orchestrator-prompt.test.ts:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/orchestrator-prompt.test.ts:224"}, "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-34436e0e898c03b1", "name": "Stray `console.log` in TS/JS \u2014 test/close-poll-stdout-json.test.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/close-poll-stdout-json.test.ts:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fcdb642e9d811b4", "name": "Stray `console.log` in TS/JS \u2014 test/ds-golden-components.test.ts:285", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/ds-golden-components.test.ts:285"}, "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-482dcf23f7e82f2e", "name": "Stray `console.log` in TS/JS \u2014 test/ds-golden-full-render.test.ts:553", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/ds-golden-full-render.test.ts:553"}, "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-f736986b5c9d847a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-sources.ts:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-sources.ts:127"}, "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-4be4faeb999a1c77", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email.ts:337", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email.ts:337"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5fd318d6fc49503f", "name": "Stray `console.log` in TS/JS \u2014 scripts/log-runtime-fix.ts:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-runtime-fix.ts: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-d2b4ba709ca5c76b", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-completeness.ts:114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-completeness.ts:114"}, "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-7be5227cea3a3e55", "name": "Stray `console.log` in TS/JS \u2014 scripts/regression-chrome-mcp.ts:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regression-chrome-mcp.ts:176"}, "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-aeb515360e4d1c81", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-accessibility.ts:766", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-accessibility.ts:766"}, "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-d9ccf57e4c1bd4b5", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-facebook-posts.ts:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-facebook-posts.ts:258"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52ba3b6ccf3944f9", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-publish-consent.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-publish-consent.ts: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-7ee86d2fdb83c4e2", "name": "Stray `console.log` in TS/JS \u2014 scripts/substitute-image-urls.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/substitute-image-urls.ts: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-6d1634914a94c071", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-score-by-month.ts:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-score-by-month.ts: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-ea3f7991477efe2e", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-structure.ts:287", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-structure.ts:287"}, "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-f3bf8e97c6f11b2c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-coverage-line.ts:380", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-coverage-line.ts:380"}, "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-6fd0dd37322206d9", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-a-rebalance.ts:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-a-rebalance.ts:111"}, "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-eb40fde5dda97ffc", "name": "Stray `console.log` in TS/JS \u2014 scripts/poll-kv-put.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-kv-put.ts: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-733e81cfed52fa47", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss-batch.ts:265", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss-batch.ts:265"}, "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-f6278251b59d26de", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-cursos-links.ts:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cursos-links.ts:119"}, "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-15ec64f6de985b41", "name": "Stray `console.log` in TS/JS \u2014 scripts/capture-newsletter-urls.ts:283", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/capture-newsletter-urls.ts:283"}, "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-7f0f109d1d2d4da4", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-injection.ts:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-injection.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-3799895d16cdd50d", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-image-freshness.ts:248", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-image-freshness.ts:248"}, "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-6e66382b4c6bdd75", "name": "Stray `console.log` in TS/JS \u2014 scripts/categorize.ts:1333", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/categorize.ts:1333"}, "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-3d4adec97f53161a", "name": "Stray `console.log` in TS/JS \u2014 scripts/auto-forward-newsletters.ts:277", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/auto-forward-newsletters.ts:277"}, "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-24c51ba1c27dedc1", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test.ts:408", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test.ts:408"}, "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-2adbeb4282306391", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-google-token.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-google-token.ts: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-efd392deff9ce91a", "name": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-e2e.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-e2e.ts:116"}, "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-37acc0e76ce8ac95", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss.ts:344", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss.ts:344"}, "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-6352e6f65048f4c4", "name": "Stray `console.log` in TS/JS \u2014 scripts/publish-facebook.ts:268", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/publish-facebook.ts:268"}, "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-648188681da39add", "name": "Stray `console.log` in TS/JS \u2014 scripts/list-invariants.ts:189", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-invariants.ts: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-bcb23cb41400c430", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-stage-status.ts:536", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-stage-status.ts:536"}, "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-12690d0ea347c6b9", "name": "Stray `console.log` in TS/JS \u2014 scripts/singularize-md-sections.ts:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/singularize-md-sections.ts:159"}, "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-de56d1d4c58743fb", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-section-structure.ts:201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-section-structure.ts: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-a2d67714bebd1526", "name": "Stray `console.log` in TS/JS \u2014 scripts/log-stage-1-payload-sizes.ts:270", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-stage-1-payload-sizes.ts:270"}, "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-da0bbd3cd25a5487", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-eia-used.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-eia-used.ts: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-502f3847e3e379c9", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-md.ts:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-md.ts:209"}, "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-61adb7922285d389", "name": "Stray `console.log` in TS/JS \u2014 scripts/poll-worker-healthcheck.ts:179", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-worker-healthcheck.ts:179"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-286526a5844aaf12", "name": "Stray `console.log` in TS/JS \u2014 scripts/cloudflare-image.js:163", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cloudflare-image.js:163"}, "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-0c2b1ec07d9a0234", "name": "Stray `console.log` in TS/JS \u2014 scripts/gemini-image.js:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gemini-image.js:159"}, "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-0c0d1d93a0bbb7fb", "name": "Stray `console.log` in TS/JS \u2014 scripts/drive-sync.ts:989", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drive-sync.ts:989"}, "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-64a1fbc09c6dd7b1", "name": "Stray `console.log` in TS/JS \u2014 scripts/monthly-click-sections.ts:532", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/monthly-click-sections.ts:532"}, "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-23133a4177135ee3", "name": "Stray `console.log` in TS/JS \u2014 scripts/match-prompts-to-destaques.ts:247", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/match-prompts-to-destaques.ts:247"}, "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-83368a6f1f951371", "name": "Stray `console.log` in TS/JS \u2014 scripts/resort-t02-by-recency.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resort-t02-by-recency.ts:116"}, "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-b258579c73e49392", "name": "Stray `console.log` in TS/JS \u2014 scripts/delete-test-schedules.ts:172", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/delete-test-schedules.ts:172"}, "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-d5bc42a8791118a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-humanizer-social.ts:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-humanizer-social.ts:129"}, "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-da9bccdc9e519c77", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-feeds.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-feeds.ts: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-6fc267e66279c238", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-vote-timing.ts:296", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-vote-timing.ts:296"}, "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-64ef73f7033ef2c5", "name": "Stray `console.log` in TS/JS \u2014 scripts/ensure-research-reviewer-output.ts:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-research-reviewer-output.ts: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-d0f8ac61b0c59bb8", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-link-tracking.ts:332", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-link-tracking.ts:332"}, "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-2ea5dc69867f6ef9", "name": "Stray `console.log` in TS/JS \u2014 scripts/aggregate-costs.ts:320", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/aggregate-costs.ts:320"}, "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-ad9510d60dc0524b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-report.ts:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-report.ts:120"}, "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-46b9b1583d03e799", "name": "Stray `console.log` in TS/JS \u2014 scripts/record-source-run.ts:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-source-run.ts:223"}, "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-9a197c0e35f886af", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pr-bugfix.ts:185", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pr-bugfix.ts:185"}, "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-e8d0a3304bddb339", "name": "Stray `console.log` in TS/JS \u2014 scripts/openai-image.js:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/openai-image.js:159"}, "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-f1cef048e63c04ae", "name": "Stray `console.log` in TS/JS \u2014 scripts/comfyui-run.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/comfyui-run.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-6d5f0f9cb1c0d82b", "name": "Stray `console.log` in TS/JS \u2014 scripts/collect-monthly.ts:328", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-monthly.ts:328"}, "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-dc5552f36382ccb4", "name": "Stray `console.log` in TS/JS \u2014 scripts/chunk-html-base64.ts:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/chunk-html-base64.ts:180"}, "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-89bcfa3b9ee007d8", "name": "Stray `console.log` in TS/JS \u2014 scripts/maintain-valid-editions-window.ts:222", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/maintain-valid-editions-window.ts:222"}, "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-510fd97af8eadff5", "name": "Stray `console.log` in TS/JS \u2014 scripts/compute-eia-poll-stats.ts:230", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/compute-eia-poll-stats.ts:230"}, "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-ab333b3e353fc8b1", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-cursos-page.ts:460", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-cursos-page.ts:460"}, "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-2eb6e04751a1b631", "name": "Stray `console.log` in TS/JS \u2014 scripts/publish-linkedin.ts:376", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/publish-linkedin.ts:376"}, "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-ce9fc8e91430002a", "name": "Stray `console.log` in TS/JS \u2014 scripts/render-social-html.ts:365", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-social-html.ts:365"}, "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-031cf7bd790b755a", "name": "Stray `console.log` in TS/JS \u2014 scripts/prep-manual-publish.ts:153", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/prep-manual-publish.ts:153"}, "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-289a62580eadfb79", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-stage-status.ts:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-stage-status.ts:129"}, "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-3d9ee9d8de615a39", "name": "Stray `console.log` in TS/JS \u2014 scripts/render-erro-intencional.ts:750", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-erro-intencional.ts:750"}, "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-e66a7b6a33dd36e6", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-monthly-cycle-dirs.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-monthly-cycle-dirs.ts: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-6b87fb73c138b73f", "name": "Stray `console.log` in TS/JS \u2014 scripts/reorder-destaques.ts:358", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reorder-destaques.ts:358"}, "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-d620072e045303a7", "name": "Stray `console.log` in TS/JS \u2014 scripts/extract-destaques.ts:239", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/extract-destaques.ts:239"}, "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-9c27d5b69a75c351", "name": "Stray `console.log` in TS/JS \u2014 scripts/capture-livros-promo.ts:193", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/capture-livros-promo.ts:193"}, "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-788a1b24ee400f6d", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-invariants.ts:291", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-invariants.ts:291"}, "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-d2131084bee50f80", "name": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-intentional-errors.ts:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-intentional-errors.ts:145"}, "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-6746c9b7e6e1682c", "name": "Stray `console.log` in TS/JS \u2014 scripts/pipeline-sentinel.ts:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pipeline-sentinel.ts:151"}, "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-1330b77e0a175b53", "name": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-stats.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-stats.ts:147"}, "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-125e56fe5da746bc", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-numbers.ts:472", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-numbers.ts:472"}, "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-c6da44226a554def", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-coupons.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-coupons.ts:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00b4299de8071db2", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-humanized-output.ts:228", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-humanized-output.ts:228"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85d5a8994de81bb2", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-diaria-dashboard-data.ts:456", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-diaria-dashboard-data.ts:456"}, "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-e40e1d21f1b6abab", "name": "Stray `console.log` in TS/JS \u2014 scripts/inject-inbox-urls.ts:503", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inject-inbox-urls.ts:503"}, "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-90eee1fb2ab53e77", "name": "Stray `console.log` in TS/JS \u2014 scripts/close-poll.ts:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/close-poll.ts:164"}, "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-9a246276de9f3f88", "name": "Stray `console.log` in TS/JS \u2014 scripts/record-source-runs.ts:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-source-runs.ts: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-8a6f10e104659152", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-lancamentos.ts:463", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-lancamentos.ts:463"}, "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-627cfc8ec64d2d70", "name": "Stray `console.log` in TS/JS \u2014 scripts/resolve-clarice-input.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resolve-clarice-input.ts:88"}, "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-20e3dcf9190f19c1", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-link-ctr.ts:377", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-link-ctr.ts:377"}, "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-0bc214ba09008ee2", "name": "Stray `console.log` in TS/JS \u2014 scripts/crop-resize.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/crop-resize.ts: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-5ce3a061e90f6198", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-livros-page.ts:358", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-livros-page.ts:358"}, "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-e92ffcb23130643a", "name": "Stray `console.log` in TS/JS \u2014 scripts/add-valid-edition.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/add-valid-edition.ts: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-548bbb622ece1b31", "name": "Stray `console.log` in TS/JS \u2014 scripts/insert-titulo-subtitulo.ts:260", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/insert-titulo-subtitulo.ts:260"}, "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-63e764579782aed0", "name": "Stray `console.log` in TS/JS \u2014 scripts/inbox-drain.ts:652", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inbox-drain.ts:652"}, "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-3bc9a70dda6e9c8c", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-correct.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-correct.ts:171"}, "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-94e0181459bc32cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/measure-type-hint-divergence.ts:175", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/measure-type-hint-divergence.ts:175"}, "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-e1cd3a37d0fbe1f6", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-c-to-b.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-c-to-b.ts:66"}, "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-ac3c1d0d9ac7489d", "name": "Stray `console.log` in TS/JS \u2014 scripts/fix-post-slug.ts:389", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fix-post-slug.ts:389"}, "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-2ba064e7ac2ef34f", "name": "Stray `console.log` in TS/JS \u2014 scripts/purge-leaderboard.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/purge-leaderboard.ts:125"}, "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-5908949b65780da0", "name": "Stray `console.log` in TS/JS \u2014 scripts/eia-compose.ts:870", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eia-compose.ts:870"}, "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-91329ca78ca16c83", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-schedule-sends.ts:591", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-schedule-sends.ts:591"}, "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-16f68e2da7775ea8", "name": "Stray `console.log` in TS/JS \u2014 scripts/monthly-preview-cloudflare.ts:211", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/monthly-preview-cloudflare.ts:211"}, "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-58cc51e65742d709", "name": "Stray `console.log` in TS/JS \u2014 scripts/beehiiv-sync.ts:472", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/beehiiv-sync.ts:472"}, "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-858f82b9f3fa2ce4", "name": "Stray `console.log` in TS/JS \u2014 scripts/merge-social-md.ts:267", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-social-md.ts:267"}, "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-c61a5928e0974f2b", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-audience.ts:431", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-audience.ts:431"}, "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-4275d7d9353f5e6c", "name": "Stray `console.log` in TS/JS \u2014 scripts/upload-report-to-drive.ts:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-report-to-drive.ts: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-1e9c12d20858aa37", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sitemap.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sitemap.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b82f355fb3a8a211", "name": "Stray `console.log` in TS/JS \u2014 scripts/preflight-poll-dispatch.ts:243", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/preflight-poll-dispatch.ts:243"}, "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-41e6641b6d3393fe", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-healthcheck.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-healthcheck.ts:73"}, "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-69c3c44472d023b6", "name": "Stray `console.log` in TS/JS \u2014 scripts/inspect-brevo-wave.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-brevo-wave.ts:73"}, "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-37f4a2a4075f91bc", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-poll-stats.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-poll-stats.ts:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f350ab44726f535", "name": "Stray `console.log` in TS/JS \u2014 scripts/split-wave-brevo.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/split-wave-brevo.ts:124"}, "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-face4ef13d523d1e", "name": "Stray `console.log` in TS/JS \u2014 scripts/backup-beehiiv.ts:500", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backup-beehiiv.ts:500"}, "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-b42f282867fade91", "name": "Stray `console.log` in TS/JS \u2014 scripts/seo-pull.ts:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seo-pull.ts:170"}, "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-2bc6df0a825e745f", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-sends.ts:178", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-sends.ts:178"}, "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-c11a81e04018aedc", "name": "Stray `console.log` in TS/JS \u2014 scripts/review-use-melhor.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-use-melhor.ts:171"}, "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-7e2cc7efcd45fd96", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-worker-tokens.ts:114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-worker-tokens.ts:114"}, "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-768b81cfc339c166", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-monthly-draft.ts:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-monthly-draft.ts: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-290cfc9ad1bcc596", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-split-cells.ts:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-split-cells.ts: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-3dc58e6db5b5179a", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-url-stability.ts:243", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-url-stability.ts:243"}, "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-9abc59e35cd04345", "name": "Stray `console.log` in TS/JS \u2014 scripts/poll-generate-url.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-generate-url.ts: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-af15619f349558a2", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-encoding.ts:199", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-encoding.ts: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-7052eba88ceddda9", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-mcp-clicks.ts:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-mcp-clicks.ts:209"}, "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-65ca77304844c866", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-leaderboard-top1.ts:216", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-leaderboard-top1.ts: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-bebe1c0f6c8a2266", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-gemini-config.ts:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-gemini-config.ts: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-aebf86edfd24b5dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-emails-mv.ts:364", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-emails-mv.ts:364"}, "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-9dcd53553b756bdb", "name": "Stray `console.log` in TS/JS \u2014 scripts/load-carry-over.ts:297", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/load-carry-over.ts:297"}, "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-96e01fe021d185fa", "name": "Stray `console.log` in TS/JS \u2014 scripts/upload-images-public.ts:611", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-images-public.ts:611"}, "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-7da356ec40e28d87", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-waves.ts:201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-waves.ts: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-af2d2fd7b47c8008", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-cloudflare-token.ts:159", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cloudflare-token.ts:159"}, "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-cfd91d0d8c57980e", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test-vote.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test-vote.ts: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-39376a9285e38f6f", "name": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions.ts:303", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions.ts:303"}, "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-65b9d9dca93e860c", "name": "Stray `console.log` in TS/JS \u2014 scripts/clarice-build-waves.ts:405", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-build-waves.ts:405"}, "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-f9f04b55b80ad3e1", "name": "Stray `console.log` in TS/JS \u2014 scripts/merge-clarice-subscribers.ts:810", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-clarice-subscribers.ts:810"}, "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-ff93c128c0df3340", "name": "Stray `console.log` in TS/JS \u2014 scripts/regen-invariants.ts:221", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regen-invariants.ts:221"}, "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-ed3729015132c7c8", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-stage2-invariants.ts:348", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-stage2-invariants.ts:348"}, "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-01825bd1004c3f5b", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-monthly-posts.ts:241", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-monthly-posts.ts:241"}, "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-87916b003846bb00", "name": "Stray `console.log` in TS/JS \u2014 scripts/eia-log-used.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eia-log-used.ts:83"}, "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-1ee453ce78a090fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-md.ts:931", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-md.ts:931"}, "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-188d1da1119adc6f", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-output.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-output.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-affff2d59adf38a1", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-agent-md.ts:153", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-agent-md.ts:153"}, "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-e69ca544d91d5919", "name": "Stray `console.log` in TS/JS \u2014 scripts/oauth-setup.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/oauth-setup.ts:116"}, "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-9e8ed6dcabe009e5", "name": "Stray `console.log` in TS/JS \u2014 scripts/log-event.ts:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-event.ts: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-505c8dc60870dbbb", "name": "Stray `console.log` in TS/JS \u2014 scripts/refresh-dedup.ts:559", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-dedup.ts:559"}, "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-3f73b8d2c7830772", "name": "Stray `console.log` in TS/JS \u2014 scripts/collect-edition-signals.ts:900", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-edition-signals.ts:900"}, "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-584504d0d3fb700d", "name": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-html.ts:352", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-html.ts:352"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-946d601d1932d87d", "name": "Stray `console.log` in TS/JS \u2014 scripts/benchmark.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark.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-acf0066c13be4cc4", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-drive-push.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-drive-push.ts:65"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60f8817f2dfef2de", "name": "Stray `console.log` in TS/JS \u2014 scripts/stage-timing.ts:185", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/stage-timing.ts:185"}, "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-f636f3bb0aadd98d", "name": "Stray `console.log` in TS/JS \u2014 scripts/merge-local-pending.ts:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-local-pending.ts: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-8a7b37df93283b5e", "name": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions-standalone.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions-standalone.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-bf9a1b90351466b2", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-domains.ts:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-domains.ts: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-bb3add65a0e5a3d1", "name": "Stray `console.log` in TS/JS \u2014 scripts/review-highlight-source.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-highlight-source.ts: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-3aabb844b5d8d356", "name": "Stray `console.log` in TS/JS \u2014 scripts/filter-subscriber-replies.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/filter-subscriber-replies.ts: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-804d1747c3cd56c1", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-intro-count.ts:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-intro-count.ts:197"}, "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-586b61e215c7e86e", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-2-outputs.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-2-outputs.ts: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-e95f54e1bdbcf233", "name": "Stray `console.log` in TS/JS \u2014 scripts/upload-html-public.ts:448", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-html-public.ts:448"}, "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-be0bbb5e0ade47a1", "name": "Stray `console.log` in TS/JS \u2014 scripts/stitch-newsletter.ts:307", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/stitch-newsletter.ts:307"}, "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-971dfe2d71ead52e", "name": "TODO/FIXME marker in shipping code \u2014 scripts/lib/newsletter-parse.ts:290", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/lib/newsletter-parse.ts:290"}, "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-242ec8e235ad80b4", "name": "TODO/FIXME marker in shipping code \u2014 scripts/lib/agent-issue-validator.ts:650", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/lib/agent-issue-validator.ts:650"}, "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-e4e5daec8daae4e5", "name": "Stray `console.log` in TS/JS \u2014 workers/linkedin-cron/src/index.ts:411", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/linkedin-cron/src/index.ts:411"}, "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-e028f18f6b0234ac", "name": "Stray `console.log` in TS/JS \u2014 workers/poll/src/index.ts:259", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/poll/src/index.ts:259"}, "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-01655b06d1e844b9", "name": "Insecure pattern 'node_child_process' in scripts/image-generate.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/image-generate.ts: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-36e8f0116bf18c16", "name": "Insecure pattern 'node_child_process' in scripts/benchmark-e2e.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/benchmark-e2e.ts: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-83d62fe60e87a80f", "name": "Insecure pattern 'node_child_process' in scripts/drive-sync.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/drive-sync.ts:32"}, "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-3e05b4237997d31d", "name": "Insecure pattern 'node_child_process' in scripts/check-pr-bugfix.ts:35", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/check-pr-bugfix.ts:35"}, "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-0a00524baff36fe6", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-cursos-page.ts:408", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-cursos-page.ts:408"}, "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-84c08c5bda53731e", "name": "Insecure pattern 'node_child_process' in scripts/bug-heatmap.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/bug-heatmap.ts: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-7f7743598e35841d", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-livros-page.ts:306", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-livros-page.ts:306"}, "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-c8d71eb638f1c77c", "name": "Insecure pattern 'node_child_process' in scripts/purge-leaderboard.ts:42", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/purge-leaderboard.ts:42"}, "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-ad7fb95068a4a051", "name": "Insecure pattern 'node_child_process' in scripts/eia-compose.ts:44", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eia-compose.ts:44"}, "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-53967a1b26b58f70", "name": "Insecure pattern 'node_child_process' in scripts/regen-invariants.ts:30", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/regen-invariants.ts: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-5ff550c5aabcf997", "name": "Insecure pattern 'exec_used' in scripts/oauth-setup.ts:70", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/oauth-setup.ts:70"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64deff2d4c407caf", "name": "Insecure pattern 'node_child_process' in scripts/oauth-setup.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/oauth-setup.ts:32"}, "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-e11bc2b50577e6a0", "name": "Insecure pattern 'node_child_process' in scripts/benchmark.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/benchmark.ts:32"}, "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-adaf93965cc1fdcd", "name": "Insecure pattern 'node_child_process' in scripts/finalize-stage1.ts:36", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/finalize-stage1.ts:36"}, "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-eb4c4427ec3ae372", "name": "Insecure pattern 'node_child_process' in scripts/prewarm-verify-cache.ts:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/prewarm-verify-cache.ts: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-d127f89e85e3c940", "name": "Insecure pattern 'node_child_process' in scripts/overnight-statusline.ts:42", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/overnight-statusline.ts:42"}, "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-39a1e2869faaf955", "name": "Insecure pattern 'node_child_process' in scripts/lib/poll-kv.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/poll-kv.ts: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-158e657e68757da6", "name": "Insecure pattern 'node_child_process' in scripts/lib/run-tsx.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/run-tsx.ts: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-cab080746f44ba0c", "name": "Insecure pattern 'node_child_process' in scripts/lib/mcp-guard.ts:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/mcp-guard.ts: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-bcaec96051409463", "name": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-0.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-0.ts: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-7c45d96ef8e98d8d", "name": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-2.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-2.ts: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-a4229e06d968327a", "name": "Insecure pattern 'direct_innerhtml_assignment' in workers/livros/public/index.html:412", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workers/livros/public/index.html:412"}, "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-c2100837d26d7705", "name": "Insecure pattern 'cors_wildcard' in workers/draft/src/index.ts:58", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in workers/draft/src/index.ts:58"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-166596b8de22af69", "name": "Insecure pattern 'direct_innerhtml_assignment' in workers/cursos/public/index.html:472", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workers/cursos/public/index.html:472"}, "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-a32d9c7d4a91055d", "name": "Insecure pattern 'cors_wildcard' in workers/poll/src/index.ts:2017", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in workers/poll/src/index.ts:2017"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd323bbdeac7da2a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "peter-evans/create-pull-request@v6 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-d05c6f41f6306f80", "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-a0930060eb1a8e9c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf04169dc9d16e31", "name": "Very large file: test/render-erro-intencional.test.ts (1462 lines)", "shortDescription": {"text": "Very large file: test/render-erro-intencional.test.ts (1462 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-53383ed69152b479", "name": "Very large file: test/brevo-dashboard-fase2.test.ts (1333 lines)", "shortDescription": {"text": "Very large file: test/brevo-dashboard-fase2.test.ts (1333 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-19b91f8f23544b15", "name": "Very large file: test/render-newsletter-html.test.ts (1898 lines)", "shortDescription": {"text": "Very large file: test/render-newsletter-html.test.ts (1898 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-ca320bee65c3585a", "name": "Very large file: test/check-invariants-stage.test.ts (1431 lines)", "shortDescription": {"text": "Very large file: test/check-invariants-stage.test.ts (1431 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-7c6dccabc2d97ff2", "name": "Very large file: test/lint-newsletter-md.test.ts (1886 lines)", "shortDescription": {"text": "Very large file: test/lint-newsletter-md.test.ts (1886 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-fcc3d10d74c33c59", "name": "Very large file: test/categorize.test.ts (2628 lines)", "shortDescription": {"text": "Very large file: test/categorize.test.ts (2628 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-4bd62c55b75b1d2f", "name": "Very large file: scripts/categorize.ts (1342 lines)", "shortDescription": {"text": "Very large file: scripts/categorize.ts (1342 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-5c399e1e74fb910a", "name": "Very large file: scripts/dedup.ts (1278 lines)", "shortDescription": {"text": "Very large file: scripts/dedup.ts (1278 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-80d4d84aa0518ffe", "name": "Very large file: workers/brevo-dashboard/src/index.ts (2043 lines)", "shortDescription": {"text": "Very large file: workers/brevo-dashboard/src/index.ts (2043 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-f13f15561215916b", "name": "Very large file: workers/linkedin-cron/test/index.test.ts (3428 lines)", "shortDescription": {"text": "Very large file: workers/linkedin-cron/test/index.test.ts (3428 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-7c25c47137795fa3", "name": "Very large file: workers/linkedin-cron/src/index.ts (1418 lines)", "shortDescription": {"text": "Very large file: workers/linkedin-cron/src/index.ts (1418 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-a4163a2a586a084d", "name": "Very large file: workers/poll/src/index.ts (2137 lines)", "shortDescription": {"text": "Very large file: workers/poll/src/index.ts (2137 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-a354f9371eb1f664", "name": "90 TODO/FIXME markers", "shortDescription": {"text": "90 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 519 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 107 placeholder/mock markers across 40 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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecb0d2c55ed6875d", "name": "Agent authority lacks a verifier contract: .claude/settings.local.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87e26b52be1f029b", "name": "Agent authority lacks a verifier contract: .claude/agents/scorer-monthly.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-monthly.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9707475f99f3bd4a", "name": "Agent authority lacks a verifier contract: .claude/agents/beehiiv-clicks-enricher.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/beehiiv-clicks-enricher.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b46a53528d27e171", "name": "Agent authority lacks a verifier contract: .claude/agents/research-reviewer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/research-reviewer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2fcb6e5ed16b9cf2", "name": "Agent authority lacks a verifier contract: .claude/agents/scorer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ce56fc68ee00be5", "name": "Agent authority lacks a verifier contract: .claude/agents/discovery-searcher.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/discovery-searcher.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70db6df66ca28661", "name": "Agent authority lacks a verifier contract: .claude/agents/source-researcher.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/source-researcher.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-715a3655889f03c7", "name": "Agent authority lacks a verifier contract: .claude/agents/scorer-chunk.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-chunk.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8868a380e25971c", "name": "Agent authority lacks a verifier contract: .claude/agents/scorer-select.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-select.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f97dbd395a4aa590", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-refresh-dedup/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-refresh-dedup/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ee822fbdb928f64", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-remover-votos-pixel/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-remover-votos-pixel/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bfea91020caf5a6", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-source-health/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-source-health/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fc65c07f9d952dd", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-mes-erros/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-mes-erros/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d31d057610dfc58b", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-3-imagens/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-3-imagens/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5478fb7dd71b6ede", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-inbox/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-inbox/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8e6fa2a0cabf21b", "name": "Agent authority lacks a verifier contract: .claude/skills/diaria-log/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-log/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2460670215e2854f", "name": "Commented-code block (5 lines) in test/validate-lancamentos.test.ts:774", "shortDescription": {"text": "Commented-code block (5 lines) in test/validate-lancamentos.test.ts:774"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdbc626aca73b605", "name": "Commented-code block (5 lines) in test/social-published-store-race.test.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in test/social-published-store-race.test.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4562e7a8fa3e1c3a", "name": "Commented-code block (7 lines) in test/analyze-h4.test.ts:83", "shortDescription": {"text": "Commented-code block (7 lines) in test/analyze-h4.test.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ab6e5f80e8afe02", "name": "Commented-code block (5 lines) in test/design-tokens.test.ts:81", "shortDescription": {"text": "Commented-code block (5 lines) in test/design-tokens.test.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67aa61c8d76c7b9f", "name": "Legacy-named symbol `sentDateOld` in test/brevo-umbrella-2275-2273-2282.test.ts:180", "shortDescription": {"text": "Legacy-named symbol `sentDateOld` in test/brevo-umbrella-2275-2273-2282.test.ts:180"}, "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-1214f6be5e6113c9", "name": "Commented-code block (6 lines) in test/brevo-umbrella-2275-2273-2282.test.ts:351", "shortDescription": {"text": "Commented-code block (6 lines) in test/brevo-umbrella-2275-2273-2282.test.ts:351"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf4e1b9c2afda38e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/brevo-umbrella-2275-2273-2282.test.ts:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/brevo-umbrella-2275-2273-2282.test.ts:108"}, "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-d05e97c6c9d9e9d2", "name": "Commented-code block (5 lines) in test/url-body-cache.test.ts:94", "shortDescription": {"text": "Commented-code block (5 lines) in test/url-body-cache.test.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2be66bd880439303", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/publish-monthly-mock-fetch.test.ts:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/publish-monthly-mock-fetch.test.ts:10"}, "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-e4c9751f344efc4e", "name": "Legacy-named symbol `monthlyWorkerKeyLegacy` in test/monthly-paths.test.ts:23", "shortDescription": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in test/monthly-paths.test.ts:23"}, "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-b3bc1a2a0f1cb53d", "name": "Commented-code block (6 lines) in test/monthly-paths.test.ts:183", "shortDescription": {"text": "Commented-code block (6 lines) in test/monthly-paths.test.ts:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31025dad8a73f8c4", "name": "Commented-code block (5 lines) in test/brevo-dashboard-v2.test.ts:533", "shortDescription": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-v2.test.ts:533"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8a52611b90dd300", "name": "Commented-code block (5 lines) in test/brevo-dashboard-ds-drift.test.ts:163", "shortDescription": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-ds-drift.test.ts:163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c65e98735a6b3334", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/worker-poll-brand.test.ts:151", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/worker-poll-brand.test.ts:151"}, "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-c05176f1919d9776", "name": "Legacy-named symbol `p_old` in test/beehiiv-sync-needs-clicks.test.ts:46", "shortDescription": {"text": "Legacy-named symbol `p_old` in test/beehiiv-sync-needs-clicks.test.ts:46"}, "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-09e3673ffbf1c820", "name": "Commented-code block (16 lines) in test/use-melhor-sources.test.ts:179", "shortDescription": {"text": "Commented-code block (16 lines) in test/use-melhor-sources.test.ts:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b24984606d8ec253", "name": "Commented-code block (8 lines) in test/use-melhor-curation.test.ts:613", "shortDescription": {"text": "Commented-code block (8 lines) in test/use-melhor-curation.test.ts:613"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-450e47b65a3dcd03", "name": "Commented-code block (5 lines) in test/beehiiv-timestamp.test.ts:119", "shortDescription": {"text": "Commented-code block (5 lines) in test/beehiiv-timestamp.test.ts:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eb1c07ee99e602a", "name": "Commented-code block (5 lines) in test/sources-rss-fixes.test.ts:108", "shortDescription": {"text": "Commented-code block (5 lines) in test/sources-rss-fixes.test.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7db4768b1915df2", "name": "Commented-code block (5 lines) in test/intentional-error-none.test.ts:365", "shortDescription": {"text": "Commented-code block (5 lines) in test/intentional-error-none.test.ts:365"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-941ac04cf21e2ba0", "name": "Commented-code block (6 lines) in test/poll-leaderboard-year-url.test.ts:59", "shortDescription": {"text": "Commented-code block (6 lines) in test/poll-leaderboard-year-url.test.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67508549e28adc56", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-leaderboard-year-url.test.ts:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-leaderboard-year-url.test.ts:98"}, "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-cdd3d5d421a5dd17", "name": "Commented-code block (19 lines) in test/orchestrator-prompt.test.ts:123", "shortDescription": {"text": "Commented-code block (19 lines) in test/orchestrator-prompt.test.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1feba89c3a4303d3", "name": "Commented-code block (7 lines) in test/merge-clarice-integration.test.ts:277", "shortDescription": {"text": "Commented-code block (7 lines) in test/merge-clarice-integration.test.ts:277"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ac80974bd82cd9a", "name": "Commented-code block (7 lines) in test/check-cloudflare-token.test.ts:191", "shortDescription": {"text": "Commented-code block (7 lines) in test/check-cloudflare-token.test.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7526da481014420", "name": "Legacy-named symbol `md5Old` in test/capture-livros-promo.test.ts:9", "shortDescription": {"text": "Legacy-named symbol `md5Old` in test/capture-livros-promo.test.ts:9"}, "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-50bc7a188224de01", "name": "Commented-code block (5 lines) in test/brevo-dashboard-fase2.test.ts:1093", "shortDescription": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-fase2.test.ts:1093"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3712e2e07801ee2f", "name": "Commented-code block (6 lines) in test/eia-compose.test.ts:712", "shortDescription": {"text": "Commented-code block (6 lines) in test/eia-compose.test.ts:712"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91d23572545b48a0", "name": "Commented-code block (5 lines) in test/analyze-scorer-impact.test.ts:143", "shortDescription": {"text": "Commented-code block (5 lines) in test/analyze-scorer-impact.test.ts:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33830d87338ae5ac", "name": "Commented-code block (5 lines) in test/poll-snapshot-2123.test.ts:351", "shortDescription": {"text": "Commented-code block (5 lines) in test/poll-snapshot-2123.test.ts:351"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ca731319cfdd97e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-snapshot-2123.test.ts:269", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-snapshot-2123.test.ts:269"}, "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-79b99d0ebb02be13", "name": "Legacy-named symbol `post_old` in test/refresh-dedup.test.ts:251", "shortDescription": {"text": "Legacy-named symbol `post_old` in test/refresh-dedup.test.ts:251"}, "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-74e55c9693974781", "name": "Commented-code block (8 lines) in test/brevo-dashboard-render.test.ts:122", "shortDescription": {"text": "Commented-code block (8 lines) in test/brevo-dashboard-render.test.ts:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e1efc072e28f57b", "name": "Legacy-named symbol `nLegacy` in test/render-newsletter-html.test.ts:639", "shortDescription": {"text": "Legacy-named symbol `nLegacy` in test/render-newsletter-html.test.ts:639"}, "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-18f399b7f8b3e8e0", "name": "Commented-code block (5 lines) in test/render-newsletter-html.test.ts:249", "shortDescription": {"text": "Commented-code block (5 lines) in test/render-newsletter-html.test.ts:249"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-142849fa2b3ed380", "name": "Commented-code block (5 lines) in test/stage-1-validator.test.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in test/stage-1-validator.test.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38d0bb1c292f8d81", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-stats-counter-2223.test.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-stats-counter-2223.test.ts:50"}, "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-01a51e11956ed043", "name": "Legacy-named symbol `fmOld` in test/intentional-errors.test.ts:317", "shortDescription": {"text": "Legacy-named symbol `fmOld` in test/intentional-errors.test.ts:317"}, "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-61342fac5e3165e6", "name": "Commented-code block (6 lines) in test/poll-hardening-2188-2189-2190-2191.test.ts:352", "shortDescription": {"text": "Commented-code block (6 lines) in test/poll-hardening-2188-2189-2190-2191.test.ts:352"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97a5f935d1215d60", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-hardening-2188-2189-2190-2191.test.ts:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-hardening-2188-2189-2190-2191.test.ts:58"}, "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-2674328d7236c09e", "name": "Commented-code block (6 lines) in test/agent-issue-validator.test.ts:844", "shortDescription": {"text": "Commented-code block (6 lines) in test/agent-issue-validator.test.ts:844"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b3cf2621751a663", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/agent-issue-validator.test.ts:616", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/agent-issue-validator.test.ts:616"}, "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-77b389a72dfa3bbe", "name": "Commented-code block (6 lines) in test/split-articles-for-scoring.test.ts:161", "shortDescription": {"text": "Commented-code block (6 lines) in test/split-articles-for-scoring.test.ts:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c61d00d9412ba2e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/beehiiv-sync-needs-update.test.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/beehiiv-sync-needs-update.test.ts:41"}, "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-463ac7a292c7b9d8", "name": "Commented-code block (5 lines) in test/clarice-import-sends.test.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in test/clarice-import-sends.test.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c449aa0699e5cd6b", "name": "Commented-code block (8 lines) in test/clarice-apply.test.ts:92", "shortDescription": {"text": "Commented-code block (8 lines) in test/clarice-apply.test.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eeb07accf63fcf7c", "name": "Commented-code block (5 lines) in test/inline-link.test.ts:88", "shortDescription": {"text": "Commented-code block (5 lines) in test/inline-link.test.ts:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13ed8b342ccd1332", "name": "Commented-code block (6 lines) in test/overnight-statusline.test.ts:293", "shortDescription": {"text": "Commented-code block (6 lines) in test/overnight-statusline.test.ts:293"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7f8f80b8dc5bb0c", "name": "Commented-code block (6 lines) in test/finalize-stage1.test.ts:735", "shortDescription": {"text": "Commented-code block (6 lines) in test/finalize-stage1.test.ts:735"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-857c09c5284803ef", "name": "Commented-code block (5 lines) in test/brevo-dashboard-links-ctr.test.ts:214", "shortDescription": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-links-ctr.test.ts:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f971211c7a78f2e", "name": "Commented-code block (5 lines) in test/check-invariants-stage.test.ts:1392", "shortDescription": {"text": "Commented-code block (5 lines) in test/check-invariants-stage.test.ts:1392"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44b78adf1ce2c2c7", "name": "Commented-code block (7 lines) in test/build-diaria-dashboard-data.test.ts:36", "shortDescription": {"text": "Commented-code block (7 lines) in test/build-diaria-dashboard-data.test.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1104ea822ec2185", "name": "Commented-code block (5 lines) in test/clarice-build-edition-sends.test.ts:172", "shortDescription": {"text": "Commented-code block (5 lines) in test/clarice-build-edition-sends.test.ts:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aeac2804a2e470bf", "name": "Commented-code block (6 lines) in test/lint-newsletter-md.test.ts:206", "shortDescription": {"text": "Commented-code block (6 lines) in test/lint-newsletter-md.test.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-763e8ea6efb7e2d1", "name": "Commented-code block (5 lines) in test/validate-gemini-config.test.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in test/validate-gemini-config.test.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acba7e9ebd67a2a1", "name": "Commented-code block (7 lines) in test/backup-beehiiv.test.ts:166", "shortDescription": {"text": "Commented-code block (7 lines) in test/backup-beehiiv.test.ts:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a550d33d12277811", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-vote-dedup-2187.test.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-vote-dedup-2187.test.ts:64"}, "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-da5f317d707dbe65", "name": "Commented-code block (5 lines) in test/upload-images-public-target.test.ts:134", "shortDescription": {"text": "Commented-code block (5 lines) in test/upload-images-public-target.test.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-830dcf73f42cb353", "name": "Commented-code block (5 lines) in test/lint-social-md.test.ts:1025", "shortDescription": {"text": "Commented-code block (5 lines) in test/lint-social-md.test.ts:1025"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4513e79721cb977", "name": "Commented-code block (5 lines) in test/update-audience-decay.test.ts:122", "shortDescription": {"text": "Commented-code block (5 lines) in test/update-audience-decay.test.ts:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1193fb66b152df7", "name": "Commented-code block (9 lines) in test/publish-linkedin.test.ts:615", "shortDescription": {"text": "Commented-code block (9 lines) in test/publish-linkedin.test.ts:615"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e60c1bc2964bed94", "name": "Commented-code block (7 lines) in test/dedup-inbox-title.test.ts:70", "shortDescription": {"text": "Commented-code block (7 lines) in test/dedup-inbox-title.test.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d83f7e235a10a688", "name": "Legacy-named symbol `sentDateOld` in test/brevo-dashboard-ratelimit.test.ts:304", "shortDescription": {"text": "Legacy-named symbol `sentDateOld` in test/brevo-dashboard-ratelimit.test.ts:304"}, "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-b27d5aed12194ba4", "name": "Commented-code block (5 lines) in test/brevo-dashboard-ratelimit.test.ts:139", "shortDescription": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-ratelimit.test.ts:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c033188ec4bd3d6a", "name": "Commented-code block (5 lines) in test/email-design-white-1943-1946.test.ts:90", "shortDescription": {"text": "Commented-code block (5 lines) in test/email-design-white-1943-1946.test.ts:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02ae096ffd663309", "name": "Commented-code block (5 lines) in scripts/lint-test-email.ts:174", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lint-test-email.ts:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5992bc66a70b8120", "name": "Commented-code block (8 lines) in scripts/verify-accessibility.ts:93", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/verify-accessibility.ts:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a33c58197825629a", "name": "Legacy-named symbol `rootLegacy` in scripts/verify-facebook-posts.ts:45", "shortDescription": {"text": "Legacy-named symbol `rootLegacy` in scripts/verify-facebook-posts.ts:45"}, "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-29983fcee2a96831", "name": "Commented-code block (5 lines) in scripts/verify-facebook-posts.ts:97", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/verify-facebook-posts.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f72bb7f7eaaae27f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-facebook-posts.ts:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-facebook-posts.ts:107"}, "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-188b8353ed3d89be", "name": "Commented-code block (5 lines) in scripts/backfill-score-by-month.ts:135", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backfill-score-by-month.ts:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d09d76d42d15918", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backfill-score-by-month.ts:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backfill-score-by-month.ts:81"}, "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-918f7f057ac1c4ba", "name": "Commented-code block (5 lines) in scripts/image-generate.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/image-generate.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-010e74e5999e2c8a", "name": "Commented-code block (8 lines) in scripts/lint-test-email-structure.ts:59", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/lint-test-email-structure.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8200e1002da1309e", "name": "Commented-code block (6 lines) in scripts/sync-coverage-line.ts:347", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/sync-coverage-line.ts:347"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-411dd962551056c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-a-rebalance.ts:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-a-rebalance.ts:92"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89f43c3337d2d180", "name": "Commented-code block (5 lines) in scripts/lint-test-email-image-freshness.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lint-test-email-image-freshness.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fecb7dae1cf17a91", "name": "Commented-code block (5 lines) in scripts/categorize.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/categorize.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4b8942539841108", "name": "Commented-code block (8 lines) in scripts/benchmark-e2e.ts:186", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/benchmark-e2e.ts:186"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5610fa38c37f95b", "name": "Commented-code block (5 lines) in scripts/fetch-rss.ts:65", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/fetch-rss.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f6782c6277730c3", "name": "Commented-code block (5 lines) in scripts/publish-facebook.ts:93", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/publish-facebook.ts:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f6f375d371b54fa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-facebook.ts:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-facebook.ts:185"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5be9c5964a72987", "name": "Commented-code block (6 lines) in scripts/update-stage-status.ts:254", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/update-stage-status.ts:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f646f5ed8462caf4", "name": "Commented-code block (5 lines) in scripts/singularize-md-sections.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/singularize-md-sections.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55986d08e7807d4c", "name": "Commented-code block (5 lines) in scripts/cloudflare-image.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/cloudflare-image.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-82b93be7a5e31ece", "name": "Commented-code block (5 lines) in scripts/gemini-image.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gemini-image.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89b714f670d27656", "name": "Commented-code block (5 lines) in scripts/drive-sync.ts:109", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/drive-sync.ts:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-922fab3a7a74aa8e", "name": "Commented-code block (5 lines) in scripts/monthly-click-sections.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/monthly-click-sections.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-846e1ccad0bd8926", "name": "Commented-code block (5 lines) in scripts/check-worker-cors.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check-worker-cors.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1761d5c5b22b0292", "name": "Commented-code block (8 lines) in scripts/match-prompts-to-destaques.ts:71", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/match-prompts-to-destaques.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f4619719944525b", "name": "Commented-code block (7 lines) in scripts/verify-dates.ts:229", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/verify-dates.ts:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b06b7f75b6c17d7", "name": "Commented-code block (6 lines) in scripts/check-pr-bugfix.ts:178", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/check-pr-bugfix.ts:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bca95bf1c596def7", "name": "Commented-code block (5 lines) in scripts/openai-image.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/openai-image.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5ba2bbdb53a05f2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/openai-image.js:141", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/openai-image.js:141"}, "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-173464a1e0f8f67b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/comfyui-run.js:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/comfyui-run.js:72"}, "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-6ed87d1e1833a52b", "name": "Commented-code block (7 lines) in scripts/split-articles-for-scoring.ts:198", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/split-articles-for-scoring.ts:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5669a6e43a22589", "name": "Commented-code block (5 lines) in scripts/verify-stage-4-dispatch.ts:382", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/verify-stage-4-dispatch.ts:382"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85f4e06a77c6a34b", "name": "Commented-code block (5 lines) in scripts/collect-monthly.ts:205", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/collect-monthly.ts:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05f2770f0eb74e9c", "name": "Commented-code block (5 lines) in scripts/compute-eia-poll-stats.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/compute-eia-poll-stats.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9145095141479429", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-websearch-batch.ts:268", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-websearch-batch.ts:268"}, "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-26d512c9af509173", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beehiiv-poll-stats.ts:147", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beehiiv-poll-stats.ts:147"}, "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-31d551fe95c8121c", "name": "Commented-code block (5 lines) in scripts/normalize-newsletter.ts:150", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/normalize-newsletter.ts:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c159bd6cf1c4288d", "name": "Commented-code block (5 lines) in scripts/check-staleness.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check-staleness.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c078517c6010759", "name": "Commented-code block (5 lines) in scripts/publish-linkedin.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/publish-linkedin.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e734bb4c47bf9b0", "name": "Commented-code block (5 lines) in scripts/render-erro-intencional.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/render-erro-intencional.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-686a6f261ab76b24", "name": "Commented-code block (6 lines) in scripts/merge-scored-chunks.ts:256", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/merge-scored-chunks.ts:256"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c88ada6fef023dc8", "name": "Commented-code block (6 lines) in scripts/clarice-build-edition-sends.ts:113", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/clarice-build-edition-sends.ts:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d5c670c429493ae", "name": "Commented-code block (5 lines) in scripts/reorder-destaques.ts:128", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/reorder-destaques.ts:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6171b7c23047291c", "name": "Commented-code block (8 lines) in scripts/extract-destaques.ts:76", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/extract-destaques.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2791cec0494e0b4", "name": "Legacy-named symbol `md5Old` in scripts/capture-livros-promo.ts:92", "shortDescription": {"text": "Legacy-named symbol `md5Old` in scripts/capture-livros-promo.ts:92"}, "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-d73fdbd1e83ea72e", "name": "Commented-code block (9 lines) in scripts/dedup.ts:284", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/dedup.ts:284"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fdd2ef1ac468cf2", "name": "Commented-code block (5 lines) in scripts/reconcile-intentional-errors.ts:95", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/reconcile-intentional-errors.ts:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86ef6be8cdf26c00", "name": "Commented-code block (5 lines) in scripts/enrich-inbox-articles.ts:392", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/enrich-inbox-articles.ts:392"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f5b22a41e239a28", "name": "Commented-code block (6 lines) in scripts/analyze-h4.ts:518", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/analyze-h4.ts:518"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e6409635549bb7c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rebuild-stats.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rebuild-stats.ts:109"}, "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-43ec8be951224881", "name": "Commented-code block (11 lines) in scripts/lint-social-numbers.ts:82", "shortDescription": {"text": "Commented-code block (11 lines) in scripts/lint-social-numbers.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-daf5bf3c8393e9ed", "name": "Commented-code block (5 lines) in scripts/lint-humanized-output.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lint-humanized-output.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa32d1348bdfd90b", "name": "Commented-code block (5 lines) in scripts/inject-inbox-urls.ts:456", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/inject-inbox-urls.ts:456"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f7355b7780307ef", "name": "Commented-code block (5 lines) in scripts/close-poll.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/close-poll.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-571e71b92cdb06c6", "name": "Commented-code block (5 lines) in scripts/validate-lancamentos.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validate-lancamentos.ts:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-079a4a96fd4df2c2", "name": "Commented-code block (5 lines) in scripts/build-link-ctr.ts:140", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build-link-ctr.ts:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c5ca7ad2bcc9b50", "name": "Commented-code block (5 lines) in scripts/inbox-drain.ts:559", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/inbox-drain.ts:559"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79f7fab9d774ad6f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-c-to-b.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-c-to-b.ts:47"}, "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-cd6a37fa2cfa536a", "name": "Commented-code block (5 lines) in scripts/eia-compose.ts:179", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/eia-compose.ts:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8193280bed79a85a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/eia-compose.ts:303", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/eia-compose.ts:303"}, "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-2961d54bd399c09e", "name": "Commented-code block (5 lines) in scripts/clarice-schedule-sends.ts:577", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/clarice-schedule-sends.ts:577"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c9c9240bcaa2305", "name": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/monthly-preview-cloudflare.ts:45", "shortDescription": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/monthly-preview-cloudflare.ts:45"}, "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-38fee3eac00870f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/beehiiv-sync.ts:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/beehiiv-sync.ts:118"}, "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-e1f8968f281ee577", "name": "Commented-code block (5 lines) in scripts/merge-social-md.ts:216", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/merge-social-md.ts:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5daf3db1815ba3d9", "name": "Commented-code block (8 lines) in scripts/render-categorized-md.ts:560", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/render-categorized-md.ts:560"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13ffd42ac10b1039", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/select-eia-edition.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/select-eia-edition.ts:48"}, "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-c1951774401ffe02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/inspect-brevo-wave.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/inspect-brevo-wave.ts:37"}, "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-591b3f9fc92a3d6f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/split-wave-brevo.ts:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/split-wave-brevo.ts:34"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7774ac5e63a72300", "name": "Commented-code block (6 lines) in scripts/backup-beehiiv.ts:436", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/backup-beehiiv.ts:436"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d29be1582aa31552", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backup-beehiiv.ts:233", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backup-beehiiv.ts:233"}, "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-e317a32230dbe622", "name": "Commented-code block (5 lines) in scripts/send-edition-report.ts:609", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/send-edition-report.ts:609"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0e5be53565ea133", "name": "Commented-code block (5 lines) in scripts/generate-worker-tokens.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/generate-worker-tokens.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-348ac34c7434d01f", "name": "Commented-code block (5 lines) in scripts/topic-cluster.ts:322", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/topic-cluster.ts:322"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-717a466548ca7c62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-auth.ts:211", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-auth.ts:211"}, "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-9adbea47d2276919", "name": "Commented-code block (5 lines) in scripts/check-highlight-themes.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check-highlight-themes.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09fd88fb6bf24243", "name": "Commented-code block (6 lines) in scripts/apply-gate-edits.ts:124", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/apply-gate-edits.ts:124"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e123de9971b809b", "name": "Commented-code block (5 lines) in scripts/fetch-leaderboard-top1.ts:220", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/fetch-leaderboard-top1.ts:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53001da31e5e9e6c", "name": "Commented-code block (6 lines) in scripts/upload-images-public.ts:203", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/upload-images-public.ts:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdd1cb5665a24700", "name": "Commented-code block (5 lines) in scripts/check-cloudflare-token.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check-cloudflare-token.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ad79d5c4865adab", "name": "Commented-code block (5 lines) in scripts/refresh-past-editions.ts:473", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/refresh-past-editions.ts:473"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ddf1050edb265e3d", "name": "Commented-code block (6 lines) in scripts/merge-clarice-subscribers.ts:299", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/merge-clarice-subscribers.ts:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5f3d4fa14dadefa", "name": "Commented-code block (5 lines) in scripts/fetch-monthly-posts.ts:105", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/fetch-monthly-posts.ts:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8e697f9f4ba55aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-monthly-posts.ts:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-monthly-posts.ts:65"}, "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-46ed704d1020edfe", "name": "Commented-code block (5 lines) in scripts/eia-log-used.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/eia-log-used.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c45f129ddf6f6e4", "name": "Commented-code block (9 lines) in scripts/lint-social-md.ts:182", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/lint-social-md.ts:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3e8da2c6ba65b97", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/oauth-setup.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/oauth-setup.ts:78"}, "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-7fd95c1288913088", "name": "Commented-code block (5 lines) in scripts/refresh-dedup.ts:446", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/refresh-dedup.ts:446"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4f1debf481a4d46", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/refresh-dedup.ts:112", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/refresh-dedup.ts:112"}, "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-7ee090dec9d5d384", "name": "Commented-code block (6 lines) in scripts/collect-edition-signals.ts:191", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/collect-edition-signals.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57c4bce141fc2de6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/benchmark.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/benchmark.ts:21"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc83c79ac5e686fe", "name": "Commented-code block (5 lines) in scripts/finalize-stage1.ts:191", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/finalize-stage1.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22fb1372b6103599", "name": "Commented-code block (7 lines) in scripts/stage-timing.ts:43", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/stage-timing.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e468157114e55b1d", "name": "Commented-code block (5 lines) in scripts/merge-local-pending.ts:119", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/merge-local-pending.ts:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f5187aba5566dd1", "name": "Commented-code block (7 lines) in scripts/sync-intro-count.ts:78", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/sync-intro-count.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d8554e397185c90", "name": "Commented-code block (5 lines) in scripts/upload-html-public.ts:431", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/upload-html-public.ts:431"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3e501da3d45b50e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/upload-html-public.ts:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/upload-html-public.ts: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-5b9f8299f74c1c08", "name": "Commented-code block (6 lines) in scripts/stitch-newsletter.ts:121", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/stitch-newsletter.ts:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfee4e27fe2ad69b", "name": "Commented-code block (5 lines) in scripts/lib/clean-summary.ts:155", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/clean-summary.ts:155"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05ce27e546ca5613", "name": "Commented-code block (8 lines) in scripts/lib/newsletter-render-html.ts:31", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/lib/newsletter-render-html.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b65f3352fec8b9df", "name": "Commented-code block (5 lines) in scripts/lib/drive-helpers.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/drive-helpers.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-adf4205a8a7ebbe3", "name": "Commented-code block (5 lines) in scripts/lib/beehiiv-cover-upload.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/beehiiv-cover-upload.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77b70630f2312891", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/beehiiv-cover-upload.ts:257", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/beehiiv-cover-upload.ts:257"}, "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-3e37ab071c5e8273", "name": "Commented-code block (5 lines) in scripts/lib/atomic-write.ts:95", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/atomic-write.ts:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b74566f4aa8b3155", "name": "Commented-code block (10 lines) in scripts/lib/newsletter-count.ts:61", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/lib/newsletter-count.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-813519d1e95daf92", "name": "Commented-code block (5 lines) in scripts/lib/audience-affinity.ts:183", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/audience-affinity.ts:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94ebc2d96e4cffdb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/doh-fetch.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/doh-fetch.ts:15"}, "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-fcccc6ae658cf4b8", "name": "Commented-code block (5 lines) in scripts/lib/monthly-render.ts:261", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/monthly-render.ts:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b169c9f1c06616f", "name": "Commented-code block (7 lines) in scripts/lib/poll-kv.ts:149", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/lib/poll-kv.ts:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e49f271a86addfb6", "name": "Commented-code block (16 lines) in scripts/lib/launch-vs-news.ts:211", "shortDescription": {"text": "Commented-code block (16 lines) in scripts/lib/launch-vs-news.ts:211"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10e00bd0d437e59f", "name": "Commented-code block (12 lines) in scripts/lib/newsletter-parse.ts:177", "shortDescription": {"text": "Commented-code block (12 lines) in scripts/lib/newsletter-parse.ts:177"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ee2fd6830eaa835", "name": "Commented-code block (5 lines) in scripts/lib/find-current-edition.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/find-current-edition.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f69c7ff026d7e32c", "name": "Commented-code block (5 lines) in scripts/lib/agent-issue-validator.ts:345", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/agent-issue-validator.ts:345"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c80ed97b03d994a4", "name": "Commented-code block (5 lines) in scripts/lib/measure-highlights.ts:66", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/measure-highlights.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c89c9b76589d204", "name": "Commented-code block (5 lines) in scripts/lib/url-utils.ts:93", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/url-utils.ts:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abe8e96745e9a833", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/mcp-guard.ts:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/mcp-guard.ts:25"}, "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-e4344350bbd79cc5", "name": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/lib/monthly-paths.ts:184", "shortDescription": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/lib/monthly-paths.ts:184"}, "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-d59cf6c27e0fc0a0", "name": "Commented-code block (9 lines) in scripts/lib/section-naming.ts:115", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/lib/section-naming.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d72f93a0287f6ffc", "name": "Commented-code block (6 lines) in scripts/lib/official-domains.ts:65", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/lib/official-domains.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e645ab2d2066d5ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/brevo-client.ts:105", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/brevo-client.ts:105"}, "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-46c5fd9dd6411852", "name": "Commented-code block (7 lines) in scripts/lib/use-melhor-sources.ts:223", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/lib/use-melhor-sources.ts:223"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9dd77579b655bab2", "name": "Commented-code block (7 lines) in scripts/lib/invariant-checks/stage-4.ts:414", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/lib/invariant-checks/stage-4.ts:414"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e71aac0e9405e13", "name": "Commented-code block (6 lines) in scripts/lib/invariant-checks/stage-5.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/lib/invariant-checks/stage-5.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d244429a61553d1", "name": "Commented-code block (5 lines) in scripts/lib/lint-checks/callout-placement.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/callout-placement.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1792640cf1974636", "name": "Legacy-named symbol `pesquisasLegacy` in scripts/lib/lint-checks/url-bucket.ts:299", "shortDescription": {"text": "Legacy-named symbol `pesquisasLegacy` in scripts/lib/lint-checks/url-bucket.ts:299"}, "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-f738ff4b7b765122", "name": "Commented-code block (5 lines) in scripts/lib/lint-checks/url-bucket.ts:64", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/url-bucket.ts: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-37e1afa28596a712", "name": "Legacy-named symbol `hasGabaritoLegacy` in scripts/lib/lint-checks/eai-section.ts:50", "shortDescription": {"text": "Legacy-named symbol `hasGabaritoLegacy` in scripts/lib/lint-checks/eai-section.ts:50"}, "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-5879f33435ad2aca", "name": "Commented-code block (6 lines) in scripts/lib/lint-checks/section-item-format.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/lib/lint-checks/section-item-format.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c090da1b94bd5863", "name": "Commented-code block (5 lines) in scripts/lib/lint-checks/intentional-error.ts:96", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/intentional-error.ts:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a1cafe495882b70", "name": "Commented-code block (5 lines) in scripts/lib/lint-checks/relative-time.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/relative-time.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff9a1bc8faca3a53", "name": "Commented-code block (5 lines) in workers/brevo-dashboard/src/index.ts:271", "shortDescription": {"text": "Commented-code block (5 lines) in workers/brevo-dashboard/src/index.ts:271"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d2f46b68d4259af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/brevo-dashboard/src/index.ts:267", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/brevo-dashboard/src/index.ts:267"}, "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-c4b258be23d41ae8", "name": "Commented-code block (8 lines) in workers/draft/src/index.ts:60", "shortDescription": {"text": "Commented-code block (8 lines) in workers/draft/src/index.ts:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fb8b253e47e2e02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/draft/src/index.ts:176", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/draft/src/index.ts:176"}, "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-0cf71ee0af5c2963", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/diaria-dashboard/src/index.ts:375", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/diaria-dashboard/src/index.ts:375"}, "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-dcc092406cb442b0", "name": "Commented-code block (5 lines) in workers/linkedin-cron/test/index.test.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in workers/linkedin-cron/test/index.test.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f6352dd29a12117", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/test/index.test.ts:125", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/test/index.test.ts:125"}, "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-7d51552a9f5c62fc", "name": "Commented-code block (5 lines) in workers/linkedin-cron/src/index.ts:336", "shortDescription": {"text": "Commented-code block (5 lines) in workers/linkedin-cron/src/index.ts:336"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a070e77e576910f4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/src/index.ts:269", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/src/index.ts:269"}, "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-bdf7c9f29d98d970", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/vote-dedup.ts:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/vote-dedup.ts:140"}, "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-6f1557b6c3c5c0e8", "name": "Commented-code block (7 lines) in workers/poll/src/index.ts:234", "shortDescription": {"text": "Commented-code block (7 lines) in workers/poll/src/index.ts:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbb9a19f128b2f45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/index.ts:676", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/index.ts:676"}, "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-627a956f02b0b86b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/stats-counter.ts:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/stats-counter.ts:80"}, "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-5012f45b317442fa", "name": "Commented-code block (11 lines) in .claude/hooks/pr-create-review.mjs:6", "shortDescription": {"text": "Commented-code block (11 lines) in .claude/hooks/pr-create-review.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51dbf90b6ad9e4e9", "name": "28 env vars used in code but missing from .env.example", "shortDescription": {"text": "28 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_SECRET`, `BASE_SHA`, `BEEHIIV_API_URL`, `CF_TOKEN_CHECK_SKIP`, `CLOUDFLARE_WORKERS_TOKEN`, `DIARIA_LINKEDIN_CRON_TOKEN`, `DIARIA_LINKEDIN_CRON_URL`, `DIARIA_PROJECT_ROOT` + 20 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f76b6396c14bb275", "name": "Dangling fetch: POST https://api.openai.com/v1/images/generations (scripts/openai-image.js:68)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/images/generations (scripts/openai-image.js:68)"}, "fullDescription": {"text": "`scripts/openai-image.js:68` calls `POST https://api.openai.com/v1/images/generations` 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.openai.com/v1/images/generations`\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-a0eaf2bc209f65f6", "name": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-a-rebalance.ts:92)", "shortDescription": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-a-rebalance.ts:92)"}, "fullDescription": {"text": "`scripts/clarice-drop-a-rebalance.ts:92` calls `GET https://api.brevo.com/v3${path}` 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.brevo.com/v3/<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-71d3ab0398e35856", "name": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-c-to-b.ts:47)", "shortDescription": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-c-to-b.ts:47)"}, "fullDescription": {"text": "`scripts/clarice-drop-c-to-b.ts:47` calls `GET https://api.brevo.com/v3${path}` 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.brevo.com/v3/<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-43025c6735f0683d", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(model)}:generateConten", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(model)}:generateContent?key=${apiKey} (scripts/eia-compose.ts:591)"}, "fullDescription": {"text": "`scripts/eia-compose.ts:591` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(model)}:generateContent?key=${apiKey}` 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-3c6762f7507755c5", "name": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/split-wave-brevo.ts:34)", "shortDescription": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/split-wave-brevo.ts:34)"}, "fullDescription": {"text": "`scripts/split-wave-brevo.ts:34` calls `GET https://api.brevo.com/v3${path}` 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.brevo.com/v3/<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-75ea53e4d342a52d", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=${apiKe", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=${apiKey} (scripts/topic-cluster.ts:68)"}, "fullDescription": {"text": "`scripts/topic-cluster.ts:68` calls `POST https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=${apiKey}` 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/text-embedding-004/<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-b70c46ba90a993d4", "name": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-build-waves.ts:198)", "shortDescription": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-build-waves.ts:198)"}, "fullDescription": {"text": "`scripts/clarice-build-waves.ts:198` calls `GET https://api.brevo.com/v3${path}` 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.brevo.com/v3/<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-387df343ff1cb42c", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (scripts/oauth-setup.ts:78)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (scripts/oauth-setup.ts:78)"}, "fullDescription": {"text": "`scripts/oauth-setup.ts:78` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\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-7ff3b9762a3bb11f", "name": "Dangling fetch: GET https://draft.diaria.workers.dev/{edition} (scripts/upload-html-public.ts:11)", "shortDescription": {"text": "Dangling fetch: GET https://draft.diaria.workers.dev/{edition} (scripts/upload-html-public.ts:11)"}, "fullDescription": {"text": "`scripts/upload-html-public.ts:11` calls `GET https://draft.diaria.workers.dev/{edition}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/draft.diaria.workers.dev/<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-cfe867b7df347a98", "name": "Dangling fetch: GET https://api.brevo.com${path} (workers/brevo-dashboard/src/index.ts:267)", "shortDescription": {"text": "Dangling fetch: GET https://api.brevo.com${path} (workers/brevo-dashboard/src/index.ts:267)"}, "fullDescription": {"text": "`workers/brevo-dashboard/src/index.ts:267` calls `GET https://api.brevo.com${path}` 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.brevo.com/<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-2f4fddc6a2b82b7e", "name": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2339)", "shortDescription": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2339)"}, "fullDescription": {"text": "`workers/linkedin-cron/test/index.test.ts:2339` calls `GET /claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/claim`\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-f988dd6eede49989", "name": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2797)", "shortDescription": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2797)"}, "fullDescription": {"text": "`workers/linkedin-cron/test/index.test.ts:2797` calls `GET /claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/claim`\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-ffcac0c7bea30b38", "name": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:269)", "shortDescription": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:269)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:269` calls `GET /claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/claim`\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-994d6e329faee91d", "name": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:402)", "shortDescription": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:402)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:402` calls `GET /claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/claim`\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-f426ea8ff05aaad4", "name": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:403)", "shortDescription": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:403)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:403` calls `GET /claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/claim`\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-8af37236b52d6693", "name": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:668)", "shortDescription": {"text": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:668)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:668` calls `POST https://do/arm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/arm`\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-403f4753500d6a5a", "name": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:843)", "shortDescription": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:843)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:843` calls `POST https://do/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/cancel`\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-d46918b8b5719c77", "name": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:969)", "shortDescription": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:969)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:969` calls `POST https://do/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/cancel`\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-c5a79e7524e590fb", "name": "Dangling fetch: GET https://do/status (workers/linkedin-cron/src/index.ts:999)", "shortDescription": {"text": "Dangling fetch: GET https://do/status (workers/linkedin-cron/src/index.ts:999)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:999` calls `GET https://do/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/status`\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-7ab03e7bd4ea86cd", "name": "Dangling fetch: POST https://do/claim (workers/linkedin-cron/src/index.ts:1022)", "shortDescription": {"text": "Dangling fetch: POST https://do/claim (workers/linkedin-cron/src/index.ts:1022)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1022` calls `POST https://do/claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/claim`\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-442e0f69e691edea", "name": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1049)", "shortDescription": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1049)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1049` calls `POST https://do/release-claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/release-claim`\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-3a82afb5c02c135c", "name": "Dangling fetch: POST https://do/status-set-fired (workers/linkedin-cron/src/index.ts:1123)", "shortDescription": {"text": "Dangling fetch: POST https://do/status-set-fired (workers/linkedin-cron/src/index.ts:1123)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1123` calls `POST https://do/status-set-fired` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/status-set-fired`\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-cf6a03c2a110d53c", "name": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:1143)", "shortDescription": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:1143)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1143` calls `POST https://do/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/cancel`\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-8977deed9beeb7e2", "name": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1169)", "shortDescription": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1169)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1169` calls `POST https://do/release-claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/release-claim`\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-e99b6073edab5ccf", "name": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1181)", "shortDescription": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1181)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1181` calls `POST https://do/release-claim` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/release-claim`\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-3cf093fbc93be3e0", "name": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:1314)", "shortDescription": {"text": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:1314)"}, "fullDescription": {"text": "`workers/linkedin-cron/src/index.ts:1314` calls `POST https://do/arm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/arm`\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-8cd9a6a3aa7f47ee", "name": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:337)", "shortDescription": {"text": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:337)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:337` calls `POST https://internal/vote-dedup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/vote-dedup`\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-ac8ff2574883677d", "name": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:346)", "shortDescription": {"text": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:346)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:346` calls `POST https://internal/vote-dedup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/vote-dedup`\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-231989e476c2acaa", "name": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:584)", "shortDescription": {"text": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:584)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:584` calls `POST https://internal/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/confirm`\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-613379a9ba14651e", "name": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:588)", "shortDescription": {"text": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:588)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:588` calls `POST https://internal/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/confirm`\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-9f241312a723181f", "name": "Dangling fetch: POST https://internal/increment (workers/poll/src/index.ts:676)", "shortDescription": {"text": "Dangling fetch: POST https://internal/increment (workers/poll/src/index.ts:676)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:676` calls `POST https://internal/increment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/increment`\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-d01b4885bcd1b179", "name": "Dangling fetch: GET https://internal/stats (workers/poll/src/index.ts:1006)", "shortDescription": {"text": "Dangling fetch: GET https://internal/stats (workers/poll/src/index.ts:1006)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:1006` calls `GET https://internal/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/stats`\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-071d0323dac46ea3", "name": "Dangling fetch: POST https://internal/adjust-correct (workers/poll/src/index.ts:1716)", "shortDescription": {"text": "Dangling fetch: POST https://internal/adjust-correct (workers/poll/src/index.ts:1716)"}, "fullDescription": {"text": "`workers/poll/src/index.ts:1716` calls `POST https://internal/adjust-correct` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/internal/adjust-correct`\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-19a1a46befe3d6a6", "name": "Unused endpoint: DELETE ", "shortDescription": {"text": "Unused endpoint: DELETE "}, "fullDescription": {"text": "`scripts/categorize.ts` declares `DELETE ` 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/22370"}, "properties": {"repository": "vjpixel/diaria-studio", "repoUrl": "https://github.com/vjpixel/diaria-studio", "branch": "main"}, "results": [{"ruleId": "scanner-86936694a4ebc3ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/orchestrator-prompt.test.ts:224"}, "properties": {"repobilityId": "401515f96cc2ebac", "scanner": "scanner-primary", "fingerprint": "86936694a4ebc3ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34436e0e898c03b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/close-poll-stdout-json.test.ts:11"}, "properties": {"repobilityId": "4010b67b5ce7f71f", "scanner": "scanner-primary", "fingerprint": "34436e0e898c03b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fcdb642e9d811b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/ds-golden-components.test.ts:285"}, "properties": {"repobilityId": "5b3aeed97d615ce2", "scanner": "scanner-primary", "fingerprint": "1fcdb642e9d811b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-482dcf23f7e82f2e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/ds-golden-full-render.test.ts:553"}, "properties": {"repobilityId": "81760c7cd4455688", "scanner": "scanner-primary", "fingerprint": "482dcf23f7e82f2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f736986b5c9d847a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-sources.ts:127"}, "properties": {"repobilityId": "bd46ffae65d83f3b", "scanner": "scanner-primary", "fingerprint": "f736986b5c9d847a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4be4faeb999a1c77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email.ts:337"}, "properties": {"repobilityId": "45e87d0d83a9e8ab", "scanner": "scanner-primary", "fingerprint": "4be4faeb999a1c77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5fd318d6fc49503f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-runtime-fix.ts:148"}, "properties": {"repobilityId": "b0f95aa79e51ec4b", "scanner": "scanner-primary", "fingerprint": "5fd318d6fc49503f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d2b4ba709ca5c76b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-completeness.ts:114"}, "properties": {"repobilityId": "9384a2a8d334f23f", "scanner": "scanner-primary", "fingerprint": "d2b4ba709ca5c76b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7be5227cea3a3e55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regression-chrome-mcp.ts:176"}, "properties": {"repobilityId": "6be6a334bc90b312", "scanner": "scanner-primary", "fingerprint": "7be5227cea3a3e55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aeb515360e4d1c81", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-accessibility.ts:766"}, "properties": {"repobilityId": "4facda5b3419447b", "scanner": "scanner-primary", "fingerprint": "aeb515360e4d1c81", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9ccf57e4c1bd4b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-facebook-posts.ts:258"}, "properties": {"repobilityId": "232eb55268d49e0f", "scanner": "scanner-primary", "fingerprint": "d9ccf57e4c1bd4b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-52ba3b6ccf3944f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-publish-consent.ts:92"}, "properties": {"repobilityId": "4b3af8f3cd52b420", "scanner": "scanner-primary", "fingerprint": "52ba3b6ccf3944f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ee86d2fdb83c4e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/substitute-image-urls.ts:128"}, "properties": {"repobilityId": "445dc9662a6c2322", "scanner": "scanner-primary", "fingerprint": "7ee86d2fdb83c4e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d1634914a94c071", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-score-by-month.ts:103"}, "properties": {"repobilityId": "fe37a6a705b48b88", "scanner": "scanner-primary", "fingerprint": "6d1634914a94c071", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea3f7991477efe2e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-structure.ts:287"}, "properties": {"repobilityId": "5b5722d596ed1491", "scanner": "scanner-primary", "fingerprint": "ea3f7991477efe2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3bf8e97c6f11b2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-coverage-line.ts:380"}, "properties": {"repobilityId": "974b231b82710211", "scanner": "scanner-primary", "fingerprint": "f3bf8e97c6f11b2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6fd0dd37322206d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-a-rebalance.ts:111"}, "properties": {"repobilityId": "6039471377502a1d", "scanner": "scanner-primary", "fingerprint": "6fd0dd37322206d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb40fde5dda97ffc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-kv-put.ts:67"}, "properties": {"repobilityId": "05313f8604d8c7b6", "scanner": "scanner-primary", "fingerprint": "eb40fde5dda97ffc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-733e81cfed52fa47", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss-batch.ts:265"}, "properties": {"repobilityId": "7ac7b02faf64285e", "scanner": "scanner-primary", "fingerprint": "733e81cfed52fa47", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6278251b59d26de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cursos-links.ts:119"}, "properties": {"repobilityId": "3462181362d99e80", "scanner": "scanner-primary", "fingerprint": "f6278251b59d26de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15ec64f6de985b41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/capture-newsletter-urls.ts:283"}, "properties": {"repobilityId": "56ac5e062e6f56c7", "scanner": "scanner-primary", "fingerprint": "15ec64f6de985b41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f0f109d1d2d4da4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-injection.ts:75"}, "properties": {"repobilityId": "2d09e00b73902e27", "scanner": "scanner-primary", "fingerprint": "7f0f109d1d2d4da4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3799895d16cdd50d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-image-freshness.ts:248"}, "properties": {"repobilityId": "a0e071cffcf7f1bd", "scanner": "scanner-primary", "fingerprint": "3799895d16cdd50d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e66382b4c6bdd75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/categorize.ts:1333"}, "properties": {"repobilityId": "ccc0f87cbd65cea8", "scanner": "scanner-primary", "fingerprint": "6e66382b4c6bdd75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d4adec97f53161a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/auto-forward-newsletters.ts:277"}, "properties": {"repobilityId": "95c50a4201bddf09", "scanner": "scanner-primary", "fingerprint": "3d4adec97f53161a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-24c51ba1c27dedc1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test.ts:408"}, "properties": {"repobilityId": "5f2b372ac377e7d4", "scanner": "scanner-primary", "fingerprint": "24c51ba1c27dedc1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2adbeb4282306391", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-google-token.ts:22"}, "properties": {"repobilityId": "7dffa313105bdd3b", "scanner": "scanner-primary", "fingerprint": "2adbeb4282306391", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efd392deff9ce91a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-e2e.ts:116"}, "properties": {"repobilityId": "191eecf4f6a28e36", "scanner": "scanner-primary", "fingerprint": "efd392deff9ce91a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37acc0e76ce8ac95", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-rss.ts:344"}, "properties": {"repobilityId": "110ffb060e579ef3", "scanner": "scanner-primary", "fingerprint": "37acc0e76ce8ac95", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6352e6f65048f4c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/publish-facebook.ts:268"}, "properties": {"repobilityId": "03322a371185ba3c", "scanner": "scanner-primary", "fingerprint": "6352e6f65048f4c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-648188681da39add", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/list-invariants.ts:189"}, "properties": {"repobilityId": "fd689bdabfc7f061", "scanner": "scanner-primary", "fingerprint": "648188681da39add", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcb23cb41400c430", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-stage-status.ts:536"}, "properties": {"repobilityId": "af1f49bcc2ee83f5", "scanner": "scanner-primary", "fingerprint": "bcb23cb41400c430", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12690d0ea347c6b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/singularize-md-sections.ts:159"}, "properties": {"repobilityId": "11c21a4bf2d79cd0", "scanner": "scanner-primary", "fingerprint": "12690d0ea347c6b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de56d1d4c58743fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-section-structure.ts:201"}, "properties": {"repobilityId": "f95d4d69851400cd", "scanner": "scanner-primary", "fingerprint": "de56d1d4c58743fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a2d67714bebd1526", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-stage-1-payload-sizes.ts:270"}, "properties": {"repobilityId": "0634ec7045b7add6", "scanner": "scanner-primary", "fingerprint": "a2d67714bebd1526", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da0bbd3cd25a5487", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-eia-used.ts:85"}, "properties": {"repobilityId": "d39e2457bedfd9bf", "scanner": "scanner-primary", "fingerprint": "da0bbd3cd25a5487", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-502f3847e3e379c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-md.ts:209"}, "properties": {"repobilityId": "3585e5899839ac27", "scanner": "scanner-primary", "fingerprint": "502f3847e3e379c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61adb7922285d389", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-worker-healthcheck.ts:179"}, "properties": {"repobilityId": "8ed9e121450b2fd9", "scanner": "scanner-primary", "fingerprint": "61adb7922285d389", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-286526a5844aaf12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cloudflare-image.js:163"}, "properties": {"repobilityId": "6cbb4c18b8d1a5cf", "scanner": "scanner-primary", "fingerprint": "286526a5844aaf12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c2b1ec07d9a0234", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gemini-image.js:159"}, "properties": {"repobilityId": "833b828b610cd2fb", "scanner": "scanner-primary", "fingerprint": "0c2b1ec07d9a0234", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c0d1d93a0bbb7fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drive-sync.ts:989"}, "properties": {"repobilityId": "cda575ddbc26e8e9", "scanner": "scanner-primary", "fingerprint": "0c0d1d93a0bbb7fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64a1fbc09c6dd7b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/monthly-click-sections.ts:532"}, "properties": {"repobilityId": "4a3fdc8c1f5361d0", "scanner": "scanner-primary", "fingerprint": "64a1fbc09c6dd7b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23133a4177135ee3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/match-prompts-to-destaques.ts:247"}, "properties": {"repobilityId": "4b4f0c86e3367313", "scanner": "scanner-primary", "fingerprint": "23133a4177135ee3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83368a6f1f951371", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resort-t02-by-recency.ts:116"}, "properties": {"repobilityId": "04e5567033e289c2", "scanner": "scanner-primary", "fingerprint": "83368a6f1f951371", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b258579c73e49392", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/delete-test-schedules.ts:172"}, "properties": {"repobilityId": "47c25a6922378681", "scanner": "scanner-primary", "fingerprint": "b258579c73e49392", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5bc42a8791118a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-humanizer-social.ts:129"}, "properties": {"repobilityId": "ab3934e313b1332e", "scanner": "scanner-primary", "fingerprint": "d5bc42a8791118a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da9bccdc9e519c77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-feeds.ts:36"}, "properties": {"repobilityId": "0c1584fec3b16fc1", "scanner": "scanner-primary", "fingerprint": "da9bccdc9e519c77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6fc267e66279c238", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-vote-timing.ts:296"}, "properties": {"repobilityId": "f8bee0896b32c992", "scanner": "scanner-primary", "fingerprint": "6fc267e66279c238", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64ef73f7033ef2c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-research-reviewer-output.ts:108"}, "properties": {"repobilityId": "02d3af12887c7c23", "scanner": "scanner-primary", "fingerprint": "64ef73f7033ef2c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0f8ac61b0c59bb8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-link-tracking.ts:332"}, "properties": {"repobilityId": "057ffeaaae53fb83", "scanner": "scanner-primary", "fingerprint": "d0f8ac61b0c59bb8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ea5dc69867f6ef9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/aggregate-costs.ts:320"}, "properties": {"repobilityId": "059be9c32fb53056", "scanner": "scanner-primary", "fingerprint": "2ea5dc69867f6ef9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad9510d60dc0524b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-report.ts:120"}, "properties": {"repobilityId": "4965276fac647878", "scanner": "scanner-primary", "fingerprint": "ad9510d60dc0524b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46b9b1583d03e799", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-source-run.ts:223"}, "properties": {"repobilityId": "73de809909519ee1", "scanner": "scanner-primary", "fingerprint": "46b9b1583d03e799", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a197c0e35f886af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pr-bugfix.ts:185"}, "properties": {"repobilityId": "887d6c33f5df7fe7", "scanner": "scanner-primary", "fingerprint": "9a197c0e35f886af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8d0a3304bddb339", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/openai-image.js:159"}, "properties": {"repobilityId": "f854d80f49606ae0", "scanner": "scanner-primary", "fingerprint": "e8d0a3304bddb339", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1cef048e63c04ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/comfyui-run.js:121"}, "properties": {"repobilityId": "8db2381724603946", "scanner": "scanner-primary", "fingerprint": "f1cef048e63c04ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d5f0f9cb1c0d82b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-monthly.ts:328"}, "properties": {"repobilityId": "ef0469dcafa0de28", "scanner": "scanner-primary", "fingerprint": "6d5f0f9cb1c0d82b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc5552f36382ccb4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/chunk-html-base64.ts:180"}, "properties": {"repobilityId": "30f359f81a93ccb7", "scanner": "scanner-primary", "fingerprint": "dc5552f36382ccb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89bcfa3b9ee007d8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/maintain-valid-editions-window.ts:222"}, "properties": {"repobilityId": "b50b7379df9a40ee", "scanner": "scanner-primary", "fingerprint": "89bcfa3b9ee007d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-510fd97af8eadff5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/compute-eia-poll-stats.ts:230"}, "properties": {"repobilityId": "9e847122faeae9fa", "scanner": "scanner-primary", "fingerprint": "510fd97af8eadff5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab333b3e353fc8b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-cursos-page.ts:460"}, "properties": {"repobilityId": "aa3088920ff1ad70", "scanner": "scanner-primary", "fingerprint": "ab333b3e353fc8b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2eb6e04751a1b631", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/publish-linkedin.ts:376"}, "properties": {"repobilityId": "4fdcbbd8416a66f2", "scanner": "scanner-primary", "fingerprint": "2eb6e04751a1b631", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce9fc8e91430002a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-social-html.ts:365"}, "properties": {"repobilityId": "dd459885bdf17c30", "scanner": "scanner-primary", "fingerprint": "ce9fc8e91430002a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-031cf7bd790b755a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/prep-manual-publish.ts:153"}, "properties": {"repobilityId": "f72d80f684bac226", "scanner": "scanner-primary", "fingerprint": "031cf7bd790b755a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-289a62580eadfb79", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-stage-status.ts:129"}, "properties": {"repobilityId": "4a23e31bbfbf4fcc", "scanner": "scanner-primary", "fingerprint": "289a62580eadfb79", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d9ee9d8de615a39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/render-erro-intencional.ts:750"}, "properties": {"repobilityId": "cfb017cb3e0595ca", "scanner": "scanner-primary", "fingerprint": "3d9ee9d8de615a39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e66a7b6a33dd36e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-monthly-cycle-dirs.ts:128"}, "properties": {"repobilityId": "e4ef1427800bb201", "scanner": "scanner-primary", "fingerprint": "e66a7b6a33dd36e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b87fb73c138b73f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reorder-destaques.ts:358"}, "properties": {"repobilityId": "0317246f572ba0b8", "scanner": "scanner-primary", "fingerprint": "6b87fb73c138b73f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d620072e045303a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/extract-destaques.ts:239"}, "properties": {"repobilityId": "c0d279f9c62cf529", "scanner": "scanner-primary", "fingerprint": "d620072e045303a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c27d5b69a75c351", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/capture-livros-promo.ts:193"}, "properties": {"repobilityId": "47fad9f074e72e05", "scanner": "scanner-primary", "fingerprint": "9c27d5b69a75c351", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-788a1b24ee400f6d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-invariants.ts:291"}, "properties": {"repobilityId": "1503aa92b456ff49", "scanner": "scanner-primary", "fingerprint": "788a1b24ee400f6d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d2131084bee50f80", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-intentional-errors.ts:145"}, "properties": {"repobilityId": "0773526ec9d828be", "scanner": "scanner-primary", "fingerprint": "d2131084bee50f80", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6746c9b7e6e1682c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pipeline-sentinel.ts:151"}, "properties": {"repobilityId": "5eb40f6454a0ec47", "scanner": "scanner-primary", "fingerprint": "6746c9b7e6e1682c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1330b77e0a175b53", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rebuild-stats.ts:147"}, "properties": {"repobilityId": "5a18aa2e19575c22", "scanner": "scanner-primary", "fingerprint": "1330b77e0a175b53", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-125e56fe5da746bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-numbers.ts:472"}, "properties": {"repobilityId": "975a1dcb13fc8517", "scanner": "scanner-primary", "fingerprint": "125e56fe5da746bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6da44226a554def", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-coupons.ts:82"}, "properties": {"repobilityId": "f54e4ec038dc90bc", "scanner": "scanner-primary", "fingerprint": "c6da44226a554def", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00b4299de8071db2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-humanized-output.ts:228"}, "properties": {"repobilityId": "595de37a1ecdf722", "scanner": "scanner-primary", "fingerprint": "00b4299de8071db2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85d5a8994de81bb2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-diaria-dashboard-data.ts:456"}, "properties": {"repobilityId": "9dc1f2cb0cfeeba7", "scanner": "scanner-primary", "fingerprint": "85d5a8994de81bb2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e40e1d21f1b6abab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inject-inbox-urls.ts:503"}, "properties": {"repobilityId": "604eea40e7214f2f", "scanner": "scanner-primary", "fingerprint": "e40e1d21f1b6abab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90eee1fb2ab53e77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/close-poll.ts:164"}, "properties": {"repobilityId": "634c3c6fa7c2dfc4", "scanner": "scanner-primary", "fingerprint": "90eee1fb2ab53e77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a246276de9f3f88", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/record-source-runs.ts:100"}, "properties": {"repobilityId": "474d23a26b978e8e", "scanner": "scanner-primary", "fingerprint": "9a246276de9f3f88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a6f10e104659152", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-lancamentos.ts:463"}, "properties": {"repobilityId": "1f93cc3219c8d151", "scanner": "scanner-primary", "fingerprint": "8a6f10e104659152", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-627cfc8ec64d2d70", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resolve-clarice-input.ts:88"}, "properties": {"repobilityId": "b625f6060c3a674f", "scanner": "scanner-primary", "fingerprint": "627cfc8ec64d2d70", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20e3dcf9190f19c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-link-ctr.ts:377"}, "properties": {"repobilityId": "868ebe13b573c51e", "scanner": "scanner-primary", "fingerprint": "20e3dcf9190f19c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bc214ba09008ee2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/crop-resize.ts:50"}, "properties": {"repobilityId": "aa41988b152eeb8c", "scanner": "scanner-primary", "fingerprint": "0bc214ba09008ee2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ce3a061e90f6198", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-livros-page.ts:358"}, "properties": {"repobilityId": "bfe1d3f198a9ebf3", "scanner": "scanner-primary", "fingerprint": "5ce3a061e90f6198", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e92ffcb23130643a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/add-valid-edition.ts:81"}, "properties": {"repobilityId": "bc510a84d1d873f8", "scanner": "scanner-primary", "fingerprint": "e92ffcb23130643a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-548bbb622ece1b31", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/insert-titulo-subtitulo.ts:260"}, "properties": {"repobilityId": "b76d23a1779a5e5b", "scanner": "scanner-primary", "fingerprint": "548bbb622ece1b31", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63e764579782aed0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inbox-drain.ts:652"}, "properties": {"repobilityId": "3715d17f4d8a2b5b", "scanner": "scanner-primary", "fingerprint": "63e764579782aed0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3bc9a70dda6e9c8c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-correct.ts:171"}, "properties": {"repobilityId": "51ec8965dc5c8faf", "scanner": "scanner-primary", "fingerprint": "3bc9a70dda6e9c8c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94e0181459bc32cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/measure-type-hint-divergence.ts:175"}, "properties": {"repobilityId": "9f9e772430607d8d", "scanner": "scanner-primary", "fingerprint": "94e0181459bc32cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1cd3a37d0fbe1f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-drop-c-to-b.ts:66"}, "properties": {"repobilityId": "6d5b7293bdabb0f0", "scanner": "scanner-primary", "fingerprint": "e1cd3a37d0fbe1f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac3c1d0d9ac7489d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fix-post-slug.ts:389"}, "properties": {"repobilityId": "7ce959b6e594f168", "scanner": "scanner-primary", "fingerprint": "ac3c1d0d9ac7489d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ba064e7ac2ef34f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/purge-leaderboard.ts:125"}, "properties": {"repobilityId": "d8614d6d80c24b62", "scanner": "scanner-primary", "fingerprint": "2ba064e7ac2ef34f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5908949b65780da0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eia-compose.ts:870"}, "properties": {"repobilityId": "9f00a4858e8ca823", "scanner": "scanner-primary", "fingerprint": "5908949b65780da0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91329ca78ca16c83", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-schedule-sends.ts:591"}, "properties": {"repobilityId": "87610962c74f04e7", "scanner": "scanner-primary", "fingerprint": "91329ca78ca16c83", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16f68e2da7775ea8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/monthly-preview-cloudflare.ts:211"}, "properties": {"repobilityId": "f1db1ff308d5ea01", "scanner": "scanner-primary", "fingerprint": "16f68e2da7775ea8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58cc51e65742d709", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/beehiiv-sync.ts:472"}, "properties": {"repobilityId": "120b1c518b1df82a", "scanner": "scanner-primary", "fingerprint": "58cc51e65742d709", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-858f82b9f3fa2ce4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-social-md.ts:267"}, "properties": {"repobilityId": "d33a5445318ed712", "scanner": "scanner-primary", "fingerprint": "858f82b9f3fa2ce4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c61a5928e0974f2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-audience.ts:431"}, "properties": {"repobilityId": "a2c62c26681fee0a", "scanner": "scanner-primary", "fingerprint": "c61a5928e0974f2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4275d7d9353f5e6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-report-to-drive.ts:133"}, "properties": {"repobilityId": "5d74e4cb6cbc6e4e", "scanner": "scanner-primary", "fingerprint": "4275d7d9353f5e6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e9c12d20858aa37", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-sitemap.ts:51"}, "properties": {"repobilityId": "ae4547a79c88c281", "scanner": "scanner-primary", "fingerprint": "1e9c12d20858aa37", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b82f355fb3a8a211", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/preflight-poll-dispatch.ts:243"}, "properties": {"repobilityId": "ebb3f785d9dbc02c", "scanner": "scanner-primary", "fingerprint": "b82f355fb3a8a211", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41e6641b6d3393fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-healthcheck.ts:73"}, "properties": {"repobilityId": "b43ca0f33f54f7e0", "scanner": "scanner-primary", "fingerprint": "41e6641b6d3393fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69c3c44472d023b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-brevo-wave.ts:73"}, "properties": {"repobilityId": "9670b46a2b97d9e8", "scanner": "scanner-primary", "fingerprint": "69c3c44472d023b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37f4a2a4075f91bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-poll-stats.ts:82"}, "properties": {"repobilityId": "8f60e7dfe75ac6f5", "scanner": "scanner-primary", "fingerprint": "37f4a2a4075f91bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f350ab44726f535", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/split-wave-brevo.ts:124"}, "properties": {"repobilityId": "5a3026a88d7f23dd", "scanner": "scanner-primary", "fingerprint": "0f350ab44726f535", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-face4ef13d523d1e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backup-beehiiv.ts:500"}, "properties": {"repobilityId": "34fa120e72f3fbf3", "scanner": "scanner-primary", "fingerprint": "face4ef13d523d1e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b42f282867fade91", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seo-pull.ts:170"}, "properties": {"repobilityId": "2f5152cbd14ca354", "scanner": "scanner-primary", "fingerprint": "b42f282867fade91", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2bc6df0a825e745f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-sends.ts:178"}, "properties": {"repobilityId": "bd9119546880d52d", "scanner": "scanner-primary", "fingerprint": "2bc6df0a825e745f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c11a81e04018aedc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-use-melhor.ts:171"}, "properties": {"repobilityId": "44987d108b6940b7", "scanner": "scanner-primary", "fingerprint": "c11a81e04018aedc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e2cc7efcd45fd96", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-worker-tokens.ts:114"}, "properties": {"repobilityId": "7ee678703e0b2de2", "scanner": "scanner-primary", "fingerprint": "7e2cc7efcd45fd96", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-768b81cfc339c166", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-monthly-draft.ts:91"}, "properties": {"repobilityId": "1816d86e40c86246", "scanner": "scanner-primary", "fingerprint": "768b81cfc339c166", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-290cfc9ad1bcc596", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-split-cells.ts:113"}, "properties": {"repobilityId": "8e800b968907bba6", "scanner": "scanner-primary", "fingerprint": "290cfc9ad1bcc596", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3dc58e6db5b5179a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-clarice-url-stability.ts:243"}, "properties": {"repobilityId": "61d35d7e7001fa36", "scanner": "scanner-primary", "fingerprint": "3dc58e6db5b5179a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9abc59e35cd04345", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/poll-generate-url.ts:60"}, "properties": {"repobilityId": "ab8d913b3d21096c", "scanner": "scanner-primary", "fingerprint": "9abc59e35cd04345", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af15619f349558a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-test-email-encoding.ts:199"}, "properties": {"repobilityId": "47c94a7e8c57b977", "scanner": "scanner-primary", "fingerprint": "af15619f349558a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7052eba88ceddda9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-mcp-clicks.ts:209"}, "properties": {"repobilityId": "cf044e2faf1c84c2", "scanner": "scanner-primary", "fingerprint": "7052eba88ceddda9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65ca77304844c866", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-leaderboard-top1.ts:216"}, "properties": {"repobilityId": "71fd72c769c3e79c", "scanner": "scanner-primary", "fingerprint": "65ca77304844c866", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bebe1c0f6c8a2266", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-gemini-config.ts:148"}, "properties": {"repobilityId": "11563e3ba3ac5ca4", "scanner": "scanner-primary", "fingerprint": "bebe1c0f6c8a2266", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aebf86edfd24b5dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-emails-mv.ts:364"}, "properties": {"repobilityId": "c0c9a9d7f5fee4db", "scanner": "scanner-primary", "fingerprint": "aebf86edfd24b5dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9dcd53553b756bdb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/load-carry-over.ts:297"}, "properties": {"repobilityId": "9b0d102d880d415f", "scanner": "scanner-primary", "fingerprint": "9dcd53553b756bdb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-96e01fe021d185fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-images-public.ts:611"}, "properties": {"repobilityId": "9d8c8676ee024fc0", "scanner": "scanner-primary", "fingerprint": "96e01fe021d185fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7da356ec40e28d87", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-import-waves.ts:201"}, "properties": {"repobilityId": "b40ab0501e15018c", "scanner": "scanner-primary", "fingerprint": "7da356ec40e28d87", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af2d2fd7b47c8008", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cloudflare-token.ts:159"}, "properties": {"repobilityId": "1a641fd0afdf7404", "scanner": "scanner-primary", "fingerprint": "af2d2fd7b47c8008", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cfd91d0d8c57980e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-test-vote.ts:85"}, "properties": {"repobilityId": "9ccde1961cdb505e", "scanner": "scanner-primary", "fingerprint": "cfd91d0d8c57980e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39376a9285e38f6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions.ts:303"}, "properties": {"repobilityId": "3e8de22ced06c879", "scanner": "scanner-primary", "fingerprint": "39376a9285e38f6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65b9d9dca93e860c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clarice-build-waves.ts:405"}, "properties": {"repobilityId": "cbafd1ae7df51be0", "scanner": "scanner-primary", "fingerprint": "65b9d9dca93e860c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9f04b55b80ad3e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-clarice-subscribers.ts:810"}, "properties": {"repobilityId": "5e660cb8e082dbe5", "scanner": "scanner-primary", "fingerprint": "f9f04b55b80ad3e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ff93c128c0df3340", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regen-invariants.ts:221"}, "properties": {"repobilityId": "556e9bcf0017531c", "scanner": "scanner-primary", "fingerprint": "ff93c128c0df3340", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed3729015132c7c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-stage2-invariants.ts:348"}, "properties": {"repobilityId": "bcb6d60be0cff5c0", "scanner": "scanner-primary", "fingerprint": "ed3729015132c7c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01825bd1004c3f5b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-monthly-posts.ts:241"}, "properties": {"repobilityId": "3dec262737dc1521", "scanner": "scanner-primary", "fingerprint": "01825bd1004c3f5b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-87916b003846bb00", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eia-log-used.ts:83"}, "properties": {"repobilityId": "f547dae40c6023ff", "scanner": "scanner-primary", "fingerprint": "87916b003846bb00", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1ee453ce78a090fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-social-md.ts:931"}, "properties": {"repobilityId": "f5b8f115553bc4c8", "scanner": "scanner-primary", "fingerprint": "1ee453ce78a090fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-188d1da1119adc6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-1-output.ts:78"}, "properties": {"repobilityId": "373095ef489842ff", "scanner": "scanner-primary", "fingerprint": "188d1da1119adc6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-affff2d59adf38a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-agent-md.ts:153"}, "properties": {"repobilityId": "dd2ba0fcaa136c07", "scanner": "scanner-primary", "fingerprint": "affff2d59adf38a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e69ca544d91d5919", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/oauth-setup.ts:116"}, "properties": {"repobilityId": "465914e49b166396", "scanner": "scanner-primary", "fingerprint": "e69ca544d91d5919", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e8ed6dcabe009e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/log-event.ts:115"}, "properties": {"repobilityId": "8a777654ef993dd5", "scanner": "scanner-primary", "fingerprint": "9e8ed6dcabe009e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-505c8dc60870dbbb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-dedup.ts:559"}, "properties": {"repobilityId": "0593b2c6569ab319", "scanner": "scanner-primary", "fingerprint": "505c8dc60870dbbb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f73b8d2c7830772", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-edition-signals.ts:900"}, "properties": {"repobilityId": "64bb5322d198f731", "scanner": "scanner-primary", "fingerprint": "3f73b8d2c7830772", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-584504d0d3fb700d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lint-newsletter-html.ts:352"}, "properties": {"repobilityId": "ca60174b70181d92", "scanner": "scanner-primary", "fingerprint": "584504d0d3fb700d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-946d601d1932d87d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark.ts:87"}, "properties": {"repobilityId": "b8f67451b9be482d", "scanner": "scanner-primary", "fingerprint": "946d601d1932d87d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-acf0066c13be4cc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-drive-push.ts:65"}, "properties": {"repobilityId": "06dffeb38bb3669d", "scanner": "scanner-primary", "fingerprint": "acf0066c13be4cc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-60f8817f2dfef2de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/stage-timing.ts:185"}, "properties": {"repobilityId": "c842842eda93f3d7", "scanner": "scanner-primary", "fingerprint": "60f8817f2dfef2de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f636f3bb0aadd98d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/merge-local-pending.ts:149"}, "properties": {"repobilityId": "33b1ce6876fc480a", "scanner": "scanner-primary", "fingerprint": "f636f3bb0aadd98d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a7b37df93283b5e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/refresh-past-editions-standalone.ts:62"}, "properties": {"repobilityId": "06085dd752f952c2", "scanner": "scanner-primary", "fingerprint": "8a7b37df93283b5e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf9a1b90351466b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-domains.ts:101"}, "properties": {"repobilityId": "cfc9acc38245bb2e", "scanner": "scanner-primary", "fingerprint": "bf9a1b90351466b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb3add65a0e5a3d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-highlight-source.ts:106"}, "properties": {"repobilityId": "b065a0ed3bc4a0bd", "scanner": "scanner-primary", "fingerprint": "bb3add65a0e5a3d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3aabb844b5d8d356", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/filter-subscriber-replies.ts:128"}, "properties": {"repobilityId": "f1ef8622587c462d", "scanner": "scanner-primary", "fingerprint": "3aabb844b5d8d356", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-804d1747c3cd56c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-intro-count.ts:197"}, "properties": {"repobilityId": "d7ef45d57dc50386", "scanner": "scanner-primary", "fingerprint": "804d1747c3cd56c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-586b61e215c7e86e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-stage-2-outputs.ts:85"}, "properties": {"repobilityId": "8f75efaf43945b22", "scanner": "scanner-primary", "fingerprint": "586b61e215c7e86e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e95f54e1bdbcf233", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upload-html-public.ts:448"}, "properties": {"repobilityId": "c5ea6b8b0757604d", "scanner": "scanner-primary", "fingerprint": "e95f54e1bdbcf233", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be0bbb5e0ade47a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/stitch-newsletter.ts:307"}, "properties": {"repobilityId": "2d5df3837871c823", "scanner": "scanner-primary", "fingerprint": "be0bbb5e0ade47a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-971dfe2d71ead52e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/lib/newsletter-parse.ts:290"}, "properties": {"repobilityId": "e8358943ef8eb482", "scanner": "scanner-primary", "fingerprint": "971dfe2d71ead52e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-242ec8e235ad80b4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/lib/agent-issue-validator.ts:650"}, "properties": {"repobilityId": "2cb5718c2b46bab5", "scanner": "scanner-primary", "fingerprint": "242ec8e235ad80b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e4e5daec8daae4e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/linkedin-cron/src/index.ts:411"}, "properties": {"repobilityId": "8f03f05bd375323e", "scanner": "scanner-primary", "fingerprint": "e4e5daec8daae4e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e028f18f6b0234ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/poll/src/index.ts:259"}, "properties": {"repobilityId": "27da022d0646ebbf", "scanner": "scanner-primary", "fingerprint": "e028f18f6b0234ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01655b06d1e844b9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/image-generate.ts:24"}, "properties": {"repobilityId": "ef8dbfb0ae7c30e4", "scanner": "scanner-primary", "fingerprint": "01655b06d1e844b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/image-generate.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-36e8f0116bf18c16", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/benchmark-e2e.ts:24"}, "properties": {"repobilityId": "9b5c011d7d855cbc", "scanner": "scanner-primary", "fingerprint": "36e8f0116bf18c16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark-e2e.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-83d62fe60e87a80f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/drive-sync.ts:32"}, "properties": {"repobilityId": "b5bb082dcb1d6cd9", "scanner": "scanner-primary", "fingerprint": "83d62fe60e87a80f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/drive-sync.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-3e05b4237997d31d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/check-pr-bugfix.ts:35"}, "properties": {"repobilityId": "3b894dc3b28114fa", "scanner": "scanner-primary", "fingerprint": "3e05b4237997d31d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check-pr-bugfix.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-0a00524baff36fe6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-cursos-page.ts:408"}, "properties": {"repobilityId": "45fe8e94fea728e2", "scanner": "scanner-primary", "fingerprint": "0a00524baff36fe6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-cursos-page.ts"}, "region": {"startLine": 408}}}]}, {"ruleId": "scanner-84c08c5bda53731e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/bug-heatmap.ts:20"}, "properties": {"repobilityId": "2fd904cebdc242f3", "scanner": "scanner-primary", "fingerprint": "84c08c5bda53731e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bug-heatmap.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-7f7743598e35841d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/build-livros-page.ts:306"}, "properties": {"repobilityId": "4425d83ee6aeca5f", "scanner": "scanner-primary", "fingerprint": "7f7743598e35841d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-livros-page.ts"}, "region": {"startLine": 306}}}]}, {"ruleId": "scanner-c8d71eb638f1c77c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/purge-leaderboard.ts:42"}, "properties": {"repobilityId": "7f4ac57163413930", "scanner": "scanner-primary", "fingerprint": "c8d71eb638f1c77c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/purge-leaderboard.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-ad7fb95068a4a051", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eia-compose.ts:44"}, "properties": {"repobilityId": "130c1a8be6bbf9e9", "scanner": "scanner-primary", "fingerprint": "ad7fb95068a4a051", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eia-compose.ts"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-53967a1b26b58f70", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/regen-invariants.ts:30"}, "properties": {"repobilityId": "ecf283fb797aaee4", "scanner": "scanner-primary", "fingerprint": "53967a1b26b58f70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/regen-invariants.ts"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-5ff550c5aabcf997", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/oauth-setup.ts:70"}, "properties": {"repobilityId": "15b169d1aa138020", "scanner": "scanner-primary", "fingerprint": "5ff550c5aabcf997", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/oauth-setup.ts"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-64deff2d4c407caf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/oauth-setup.ts:32"}, "properties": {"repobilityId": "d2ddf1a6318795aa", "scanner": "scanner-primary", "fingerprint": "64deff2d4c407caf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/oauth-setup.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-e11bc2b50577e6a0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/benchmark.ts:32"}, "properties": {"repobilityId": "44c54712cdebb022", "scanner": "scanner-primary", "fingerprint": "e11bc2b50577e6a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-adaf93965cc1fdcd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/finalize-stage1.ts:36"}, "properties": {"repobilityId": "6071950897d19963", "scanner": "scanner-primary", "fingerprint": "adaf93965cc1fdcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/finalize-stage1.ts"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-eb4c4427ec3ae372", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/prewarm-verify-cache.ts:27"}, "properties": {"repobilityId": "18266458d6fe7955", "scanner": "scanner-primary", "fingerprint": "eb4c4427ec3ae372", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/prewarm-verify-cache.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-d127f89e85e3c940", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/overnight-statusline.ts:42"}, "properties": {"repobilityId": "e747169afa3f7be0", "scanner": "scanner-primary", "fingerprint": "d127f89e85e3c940", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/overnight-statusline.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-39a1e2869faaf955", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/poll-kv.ts:15"}, "properties": {"repobilityId": "b42bc98c1dde4658", "scanner": "scanner-primary", "fingerprint": "39a1e2869faaf955", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/poll-kv.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-158e657e68757da6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/run-tsx.ts:13"}, "properties": {"repobilityId": "5e3812359e306c55", "scanner": "scanner-primary", "fingerprint": "158e657e68757da6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/run-tsx.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-cab080746f44ba0c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/mcp-guard.ts:31"}, "properties": {"repobilityId": "c245a7bd5978721f", "scanner": "scanner-primary", "fingerprint": "cab080746f44ba0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/mcp-guard.ts"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-bcaec96051409463", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-0.ts:10"}, "properties": {"repobilityId": "33e36e2e595c540e", "scanner": "scanner-primary", "fingerprint": "bcaec96051409463", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/invariant-checks/stage-0.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-7c45d96ef8e98d8d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/lib/invariant-checks/stage-2.ts:12"}, "properties": {"repobilityId": "de3ab8a0809415ad", "scanner": "scanner-primary", "fingerprint": "7c45d96ef8e98d8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lib/invariant-checks/stage-2.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-a4229e06d968327a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workers/livros/public/index.html:412"}, "properties": {"repobilityId": "26438895920c185c", "scanner": "scanner-primary", "fingerprint": "a4229e06d968327a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/livros/public/index.html"}, "region": {"startLine": 412}}}]}, {"ruleId": "scanner-c2100837d26d7705", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in workers/draft/src/index.ts:58"}, "properties": {"repobilityId": "9e76ce693c296376", "scanner": "scanner-primary", "fingerprint": "c2100837d26d7705", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/draft/src/index.ts"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-166596b8de22af69", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workers/cursos/public/index.html:472"}, "properties": {"repobilityId": "64076eed0b1a6ce6", "scanner": "scanner-primary", "fingerprint": "166596b8de22af69", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/cursos/public/index.html"}, "region": {"startLine": 472}}}]}, {"ruleId": "scanner-a32d9c7d4a91055d", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in workers/poll/src/index.ts:2017"}, "properties": {"repobilityId": "7cfbfa529aa34f71", "scanner": "scanner-primary", "fingerprint": "a32d9c7d4a91055d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/poll/src/index.ts"}, "region": {"startLine": 2017}}}]}, {"ruleId": "scanner-dd323bbdeac7da2a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f32820d83acfb3d9", "scanner": "scanner-primary", "fingerprint": "dd323bbdeac7da2a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-bug-heatmap.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-d05c6f41f6306f80", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "51394e21b2a60479", "scanner": "scanner-primary", "fingerprint": "d05c6f41f6306f80", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-bug-heatmap.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0930060eb1a8e9c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7241cd60a0cd0c11", "scanner": "scanner-primary", "fingerprint": "a0930060eb1a8e9c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-e2e.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-cf04169dc9d16e31", "level": "note", "message": {"text": "Very large file: test/render-erro-intencional.test.ts (1462 lines)"}, "properties": {"repobilityId": "451e06dff872553e", "scanner": "scanner-primary", "fingerprint": "cf04169dc9d16e31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-53383ed69152b479", "level": "note", "message": {"text": "Very large file: test/brevo-dashboard-fase2.test.ts (1333 lines)"}, "properties": {"repobilityId": "e4bde3702451c121", "scanner": "scanner-primary", "fingerprint": "53383ed69152b479", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-19b91f8f23544b15", "level": "note", "message": {"text": "Very large file: test/render-newsletter-html.test.ts (1898 lines)"}, "properties": {"repobilityId": "6f299082faa6156d", "scanner": "scanner-primary", "fingerprint": "19b91f8f23544b15", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca320bee65c3585a", "level": "note", "message": {"text": "Very large file: test/check-invariants-stage.test.ts (1431 lines)"}, "properties": {"repobilityId": "a5002e14b42c75da", "scanner": "scanner-primary", "fingerprint": "ca320bee65c3585a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c6dccabc2d97ff2", "level": "note", "message": {"text": "Very large file: test/lint-newsletter-md.test.ts (1886 lines)"}, "properties": {"repobilityId": "1fa93b983f55bf9b", "scanner": "scanner-primary", "fingerprint": "7c6dccabc2d97ff2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fcc3d10d74c33c59", "level": "note", "message": {"text": "Very large file: test/categorize.test.ts (2628 lines)"}, "properties": {"repobilityId": "13097ba5c3d1b226", "scanner": "scanner-primary", "fingerprint": "fcc3d10d74c33c59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4bd62c55b75b1d2f", "level": "note", "message": {"text": "Very large file: scripts/categorize.ts (1342 lines)"}, "properties": {"repobilityId": "40579d68caa8ddef", "scanner": "scanner-primary", "fingerprint": "4bd62c55b75b1d2f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c399e1e74fb910a", "level": "note", "message": {"text": "Very large file: scripts/dedup.ts (1278 lines)"}, "properties": {"repobilityId": "dc396cab7a3c67af", "scanner": "scanner-primary", "fingerprint": "5c399e1e74fb910a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80d4d84aa0518ffe", "level": "note", "message": {"text": "Very large file: workers/brevo-dashboard/src/index.ts (2043 lines)"}, "properties": {"repobilityId": "fd2c3f1a840781e3", "scanner": "scanner-primary", "fingerprint": "80d4d84aa0518ffe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f13f15561215916b", "level": "note", "message": {"text": "Very large file: workers/linkedin-cron/test/index.test.ts (3428 lines)"}, "properties": {"repobilityId": "295a29bb87154214", "scanner": "scanner-primary", "fingerprint": "f13f15561215916b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c25c47137795fa3", "level": "note", "message": {"text": "Very large file: workers/linkedin-cron/src/index.ts (1418 lines)"}, "properties": {"repobilityId": "272b3c4d2add3ac1", "scanner": "scanner-primary", "fingerprint": "7c25c47137795fa3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a4163a2a586a084d", "level": "note", "message": {"text": "Very large file: workers/poll/src/index.ts (2137 lines)"}, "properties": {"repobilityId": "c04752da4e9d3d2d", "scanner": "scanner-primary", "fingerprint": "a4163a2a586a084d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a354f9371eb1f664", "level": "note", "message": {"text": "90 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "a354f9371eb1f664", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "0fab2908f84859ec", "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": "1ec5ad0ac354d4d5", "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": "7f32a62076d33b7c", "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": "747ced60b128c903", "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": "9d4990d4d12eca51", "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": "47d677da7c52974c", "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": "062da16c57e3e6ca", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ecb0d2c55ed6875d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "properties": {"repobilityId": "d8bae33a6d517bf0", "scanner": "scanner-primary", "fingerprint": "ecb0d2c55ed6875d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87e26b52be1f029b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-monthly.md"}, "properties": {"repobilityId": "91cd0eb8ed497ab5", "scanner": "scanner-primary", "fingerprint": "87e26b52be1f029b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/scorer-monthly.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9707475f99f3bd4a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/beehiiv-clicks-enricher.md"}, "properties": {"repobilityId": "45fd68e783cfa12b", "scanner": "scanner-primary", "fingerprint": "9707475f99f3bd4a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/beehiiv-clicks-enricher.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b46a53528d27e171", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/research-reviewer.md"}, "properties": {"repobilityId": "d5391ff14081e476", "scanner": "scanner-primary", "fingerprint": "b46a53528d27e171", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/research-reviewer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2fcb6e5ed16b9cf2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer.md"}, "properties": {"repobilityId": "9f2dd09f58cff84e", "scanner": "scanner-primary", "fingerprint": "2fcb6e5ed16b9cf2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/scorer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ce56fc68ee00be5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/discovery-searcher.md"}, "properties": {"repobilityId": "af472fbdd3c5ed80", "scanner": "scanner-primary", "fingerprint": "7ce56fc68ee00be5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/discovery-searcher.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70db6df66ca28661", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/source-researcher.md"}, "properties": {"repobilityId": "5f338578cd2a02df", "scanner": "scanner-primary", "fingerprint": "70db6df66ca28661", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/source-researcher.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-715a3655889f03c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-chunk.md"}, "properties": {"repobilityId": "8d23aced17694529", "scanner": "scanner-primary", "fingerprint": "715a3655889f03c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/scorer-chunk.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f8868a380e25971c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/scorer-select.md"}, "properties": {"repobilityId": "010b702d71279181", "scanner": "scanner-primary", "fingerprint": "f8868a380e25971c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/scorer-select.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f97dbd395a4aa590", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-refresh-dedup/SKILL.md"}, "properties": {"repobilityId": "91b9ab6ee10c0881", "scanner": "scanner-primary", "fingerprint": "f97dbd395a4aa590", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-refresh-dedup/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ee822fbdb928f64", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-remover-votos-pixel/SKILL.md"}, "properties": {"repobilityId": "960497faae7a078d", "scanner": "scanner-primary", "fingerprint": "4ee822fbdb928f64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-remover-votos-pixel/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bfea91020caf5a6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-source-health/SKILL.md"}, "properties": {"repobilityId": "50f1d045f34a0cf4", "scanner": "scanner-primary", "fingerprint": "5bfea91020caf5a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-source-health/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0fc65c07f9d952dd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-mes-erros/SKILL.md"}, "properties": {"repobilityId": "f0842957fbf5d3cc", "scanner": "scanner-primary", "fingerprint": "0fc65c07f9d952dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-mes-erros/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d31d057610dfc58b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-3-imagens/SKILL.md"}, "properties": {"repobilityId": "826e49a32bf75d66", "scanner": "scanner-primary", "fingerprint": "d31d057610dfc58b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-3-imagens/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5478fb7dd71b6ede", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-inbox/SKILL.md"}, "properties": {"repobilityId": "3e8f3221a802bd84", "scanner": "scanner-primary", "fingerprint": "5478fb7dd71b6ede", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-inbox/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8e6fa2a0cabf21b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/diaria-log/SKILL.md"}, "properties": {"repobilityId": "ff73c731b2df252e", "scanner": "scanner-primary", "fingerprint": "d8e6fa2a0cabf21b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/diaria-log/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2460670215e2854f", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/validate-lancamentos.test.ts:774"}, "properties": {"repobilityId": "ee8410323e9b9067", "scanner": "scanner-primary", "fingerprint": "2460670215e2854f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdbc626aca73b605", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/social-published-store-race.test.ts:85"}, "properties": {"repobilityId": "21d9d5629b624dc2", "scanner": "scanner-primary", "fingerprint": "fdbc626aca73b605", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4562e7a8fa3e1c3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/analyze-h4.test.ts:83"}, "properties": {"repobilityId": "0961f5b66501f0e1", "scanner": "scanner-primary", "fingerprint": "4562e7a8fa3e1c3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ab6e5f80e8afe02", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/design-tokens.test.ts:81"}, "properties": {"repobilityId": "9a635410a2f53fa5", "scanner": "scanner-primary", "fingerprint": "1ab6e5f80e8afe02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67aa61c8d76c7b9f", "level": "note", "message": {"text": "Legacy-named symbol `sentDateOld` in test/brevo-umbrella-2275-2273-2282.test.ts:180"}, "properties": {"repobilityId": "4e753c266eb36a16", "scanner": "scanner-primary", "fingerprint": "67aa61c8d76c7b9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1214f6be5e6113c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/brevo-umbrella-2275-2273-2282.test.ts:351"}, "properties": {"repobilityId": "c90e44674ca066c8", "scanner": "scanner-primary", "fingerprint": "1214f6be5e6113c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf4e1b9c2afda38e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/brevo-umbrella-2275-2273-2282.test.ts:108"}, "properties": {"repobilityId": "eb6cca228421fdc3", "scanner": "scanner-primary", "fingerprint": "cf4e1b9c2afda38e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d05e97c6c9d9e9d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/url-body-cache.test.ts:94"}, "properties": {"repobilityId": "33dcc2255a636dad", "scanner": "scanner-primary", "fingerprint": "d05e97c6c9d9e9d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2be66bd880439303", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/publish-monthly-mock-fetch.test.ts:10"}, "properties": {"repobilityId": "db99afa56a4d8f5e", "scanner": "scanner-primary", "fingerprint": "2be66bd880439303", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4c9751f344efc4e", "level": "note", "message": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in test/monthly-paths.test.ts:23"}, "properties": {"repobilityId": "a70265432992a383", "scanner": "scanner-primary", "fingerprint": "e4c9751f344efc4e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b3bc1a2a0f1cb53d", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/monthly-paths.test.ts:183"}, "properties": {"repobilityId": "d387043945bfe84e", "scanner": "scanner-primary", "fingerprint": "b3bc1a2a0f1cb53d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31025dad8a73f8c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-v2.test.ts:533"}, "properties": {"repobilityId": "e6180253599b5093", "scanner": "scanner-primary", "fingerprint": "31025dad8a73f8c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8a52611b90dd300", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-ds-drift.test.ts:163"}, "properties": {"repobilityId": "59e8a0cab30e2256", "scanner": "scanner-primary", "fingerprint": "f8a52611b90dd300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c65e98735a6b3334", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/worker-poll-brand.test.ts:151"}, "properties": {"repobilityId": "ace9bcdb0e06b8bc", "scanner": "scanner-primary", "fingerprint": "c65e98735a6b3334", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c05176f1919d9776", "level": "note", "message": {"text": "Legacy-named symbol `p_old` in test/beehiiv-sync-needs-clicks.test.ts:46"}, "properties": {"repobilityId": "81b3711ed2ad1cc3", "scanner": "scanner-primary", "fingerprint": "c05176f1919d9776", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-09e3673ffbf1c820", "level": "none", "message": {"text": "Commented-code block (16 lines) in test/use-melhor-sources.test.ts:179"}, "properties": {"repobilityId": "b2d72f61cbaf7de4", "scanner": "scanner-primary", "fingerprint": "09e3673ffbf1c820", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b24984606d8ec253", "level": "none", "message": {"text": "Commented-code block (8 lines) in test/use-melhor-curation.test.ts:613"}, "properties": {"repobilityId": "aed81782c8aee556", "scanner": "scanner-primary", "fingerprint": "b24984606d8ec253", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-450e47b65a3dcd03", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/beehiiv-timestamp.test.ts:119"}, "properties": {"repobilityId": "523800c40505d7f9", "scanner": "scanner-primary", "fingerprint": "450e47b65a3dcd03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eb1c07ee99e602a", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/sources-rss-fixes.test.ts:108"}, "properties": {"repobilityId": "3690b88dec83dabb", "scanner": "scanner-primary", "fingerprint": "3eb1c07ee99e602a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7db4768b1915df2", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/intentional-error-none.test.ts:365"}, "properties": {"repobilityId": "07ca06fa0e4d5bc4", "scanner": "scanner-primary", "fingerprint": "e7db4768b1915df2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-941ac04cf21e2ba0", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/poll-leaderboard-year-url.test.ts:59"}, "properties": {"repobilityId": "6e79250aac4b6854", "scanner": "scanner-primary", "fingerprint": "941ac04cf21e2ba0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67508549e28adc56", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-leaderboard-year-url.test.ts:98"}, "properties": {"repobilityId": "29bc683ceceae3d1", "scanner": "scanner-primary", "fingerprint": "67508549e28adc56", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdd3d5d421a5dd17", "level": "none", "message": {"text": "Commented-code block (19 lines) in test/orchestrator-prompt.test.ts:123"}, "properties": {"repobilityId": "0093011c8453ef42", "scanner": "scanner-primary", "fingerprint": "cdd3d5d421a5dd17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1feba89c3a4303d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/merge-clarice-integration.test.ts:277"}, "properties": {"repobilityId": "fafc74f66ac96090", "scanner": "scanner-primary", "fingerprint": "1feba89c3a4303d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ac80974bd82cd9a", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/check-cloudflare-token.test.ts:191"}, "properties": {"repobilityId": "8b1bd36b20da2a48", "scanner": "scanner-primary", "fingerprint": "9ac80974bd82cd9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7526da481014420", "level": "note", "message": {"text": "Legacy-named symbol `md5Old` in test/capture-livros-promo.test.ts:9"}, "properties": {"repobilityId": "9e342de92753c3b3", "scanner": "scanner-primary", "fingerprint": "a7526da481014420", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-50bc7a188224de01", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-fase2.test.ts:1093"}, "properties": {"repobilityId": "d2e055e4f16f9309", "scanner": "scanner-primary", "fingerprint": "50bc7a188224de01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3712e2e07801ee2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/eia-compose.test.ts:712"}, "properties": {"repobilityId": "bca515084b989ecd", "scanner": "scanner-primary", "fingerprint": "3712e2e07801ee2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91d23572545b48a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/analyze-scorer-impact.test.ts:143"}, "properties": {"repobilityId": "feaea1b6eae70c08", "scanner": "scanner-primary", "fingerprint": "91d23572545b48a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33830d87338ae5ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/poll-snapshot-2123.test.ts:351"}, "properties": {"repobilityId": "35d7b74b7c5e9e55", "scanner": "scanner-primary", "fingerprint": "33830d87338ae5ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ca731319cfdd97e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-snapshot-2123.test.ts:269"}, "properties": {"repobilityId": "3a371bf6461a3e8c", "scanner": "scanner-primary", "fingerprint": "0ca731319cfdd97e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79b99d0ebb02be13", "level": "note", "message": {"text": "Legacy-named symbol `post_old` in test/refresh-dedup.test.ts:251"}, "properties": {"repobilityId": "face13126ac2c8b2", "scanner": "scanner-primary", "fingerprint": "79b99d0ebb02be13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-74e55c9693974781", "level": "none", "message": {"text": "Commented-code block (8 lines) in test/brevo-dashboard-render.test.ts:122"}, "properties": {"repobilityId": "887fa69d9e44488d", "scanner": "scanner-primary", "fingerprint": "74e55c9693974781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e1efc072e28f57b", "level": "note", "message": {"text": "Legacy-named symbol `nLegacy` in test/render-newsletter-html.test.ts:639"}, "properties": {"repobilityId": "10c58a1e93b9af8f", "scanner": "scanner-primary", "fingerprint": "2e1efc072e28f57b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-18f399b7f8b3e8e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/render-newsletter-html.test.ts:249"}, "properties": {"repobilityId": "57f8e054a523d3ef", "scanner": "scanner-primary", "fingerprint": "18f399b7f8b3e8e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-142849fa2b3ed380", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/stage-1-validator.test.ts:20"}, "properties": {"repobilityId": "80cb3c977c08c4be", "scanner": "scanner-primary", "fingerprint": "142849fa2b3ed380", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38d0bb1c292f8d81", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-stats-counter-2223.test.ts:50"}, "properties": {"repobilityId": "baa08266eab7ce6f", "scanner": "scanner-primary", "fingerprint": "38d0bb1c292f8d81", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-01a51e11956ed043", "level": "note", "message": {"text": "Legacy-named symbol `fmOld` in test/intentional-errors.test.ts:317"}, "properties": {"repobilityId": "e64e3570ab53111f", "scanner": "scanner-primary", "fingerprint": "01a51e11956ed043", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-61342fac5e3165e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/poll-hardening-2188-2189-2190-2191.test.ts:352"}, "properties": {"repobilityId": "76e49eec3cf2a131", "scanner": "scanner-primary", "fingerprint": "61342fac5e3165e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97a5f935d1215d60", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-hardening-2188-2189-2190-2191.test.ts:58"}, "properties": {"repobilityId": "604d9db03998cc39", "scanner": "scanner-primary", "fingerprint": "97a5f935d1215d60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2674328d7236c09e", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/agent-issue-validator.test.ts:844"}, "properties": {"repobilityId": "66acf0ecde2a7bdf", "scanner": "scanner-primary", "fingerprint": "2674328d7236c09e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b3cf2621751a663", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/agent-issue-validator.test.ts:616"}, "properties": {"repobilityId": "4d6fe4dc557252b2", "scanner": "scanner-primary", "fingerprint": "7b3cf2621751a663", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-77b389a72dfa3bbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/split-articles-for-scoring.test.ts:161"}, "properties": {"repobilityId": "e7b11cffc934d3b3", "scanner": "scanner-primary", "fingerprint": "77b389a72dfa3bbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c61d00d9412ba2e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/beehiiv-sync-needs-update.test.ts:41"}, "properties": {"repobilityId": "c0734c97aea1d578", "scanner": "scanner-primary", "fingerprint": "c61d00d9412ba2e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-463ac7a292c7b9d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/clarice-import-sends.test.ts:80"}, "properties": {"repobilityId": "5c7f087fd55ecdba", "scanner": "scanner-primary", "fingerprint": "463ac7a292c7b9d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c449aa0699e5cd6b", "level": "none", "message": {"text": "Commented-code block (8 lines) in test/clarice-apply.test.ts:92"}, "properties": {"repobilityId": "1b2a67d6b4f2878d", "scanner": "scanner-primary", "fingerprint": "c449aa0699e5cd6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eeb07accf63fcf7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/inline-link.test.ts:88"}, "properties": {"repobilityId": "99e89922bf62d405", "scanner": "scanner-primary", "fingerprint": "eeb07accf63fcf7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13ed8b342ccd1332", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/overnight-statusline.test.ts:293"}, "properties": {"repobilityId": "bc7349e1b0094c1a", "scanner": "scanner-primary", "fingerprint": "13ed8b342ccd1332", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7f8f80b8dc5bb0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/finalize-stage1.test.ts:735"}, "properties": {"repobilityId": "5984199f3608acf8", "scanner": "scanner-primary", "fingerprint": "d7f8f80b8dc5bb0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-857c09c5284803ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-links-ctr.test.ts:214"}, "properties": {"repobilityId": "adb89d322d877dd4", "scanner": "scanner-primary", "fingerprint": "857c09c5284803ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f971211c7a78f2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/check-invariants-stage.test.ts:1392"}, "properties": {"repobilityId": "d2f0d2308d0876ba", "scanner": "scanner-primary", "fingerprint": "6f971211c7a78f2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44b78adf1ce2c2c7", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/build-diaria-dashboard-data.test.ts:36"}, "properties": {"repobilityId": "2df1b5d43e4f388a", "scanner": "scanner-primary", "fingerprint": "44b78adf1ce2c2c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1104ea822ec2185", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/clarice-build-edition-sends.test.ts:172"}, "properties": {"repobilityId": "654ec811ebf5f28c", "scanner": "scanner-primary", "fingerprint": "c1104ea822ec2185", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aeac2804a2e470bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/lint-newsletter-md.test.ts:206"}, "properties": {"repobilityId": "febebdf024254806", "scanner": "scanner-primary", "fingerprint": "aeac2804a2e470bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-763e8ea6efb7e2d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/validate-gemini-config.test.ts:80"}, "properties": {"repobilityId": "04c7df89acd9b46c", "scanner": "scanner-primary", "fingerprint": "763e8ea6efb7e2d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acba7e9ebd67a2a1", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/backup-beehiiv.test.ts:166"}, "properties": {"repobilityId": "ca844e685f59dd40", "scanner": "scanner-primary", "fingerprint": "acba7e9ebd67a2a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a550d33d12277811", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/poll-vote-dedup-2187.test.ts:64"}, "properties": {"repobilityId": "53364c433ea3afc7", "scanner": "scanner-primary", "fingerprint": "a550d33d12277811", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-da5f317d707dbe65", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/upload-images-public-target.test.ts:134"}, "properties": {"repobilityId": "9bda0ad74159ea54", "scanner": "scanner-primary", "fingerprint": "da5f317d707dbe65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-830dcf73f42cb353", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/lint-social-md.test.ts:1025"}, "properties": {"repobilityId": "7646dad33658214f", "scanner": "scanner-primary", "fingerprint": "830dcf73f42cb353", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4513e79721cb977", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/update-audience-decay.test.ts:122"}, "properties": {"repobilityId": "594d2625b73bd9a3", "scanner": "scanner-primary", "fingerprint": "e4513e79721cb977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1193fb66b152df7", "level": "none", "message": {"text": "Commented-code block (9 lines) in test/publish-linkedin.test.ts:615"}, "properties": {"repobilityId": "2b27649ca657ec19", "scanner": "scanner-primary", "fingerprint": "e1193fb66b152df7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e60c1bc2964bed94", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/dedup-inbox-title.test.ts:70"}, "properties": {"repobilityId": "d91aa9966806e592", "scanner": "scanner-primary", "fingerprint": "e60c1bc2964bed94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d83f7e235a10a688", "level": "note", "message": {"text": "Legacy-named symbol `sentDateOld` in test/brevo-dashboard-ratelimit.test.ts:304"}, "properties": {"repobilityId": "4f712ce997723111", "scanner": "scanner-primary", "fingerprint": "d83f7e235a10a688", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b27d5aed12194ba4", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/brevo-dashboard-ratelimit.test.ts:139"}, "properties": {"repobilityId": "f749d4193b18a7b4", "scanner": "scanner-primary", "fingerprint": "b27d5aed12194ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c033188ec4bd3d6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/email-design-white-1943-1946.test.ts:90"}, "properties": {"repobilityId": "c0cca589c77e8a59", "scanner": "scanner-primary", "fingerprint": "c033188ec4bd3d6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02ae096ffd663309", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lint-test-email.ts:174"}, "properties": {"repobilityId": "68b2da127c67aa23", "scanner": "scanner-primary", "fingerprint": "02ae096ffd663309", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5992bc66a70b8120", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/verify-accessibility.ts:93"}, "properties": {"repobilityId": "d24cde618aa68d29", "scanner": "scanner-primary", "fingerprint": "5992bc66a70b8120", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a33c58197825629a", "level": "note", "message": {"text": "Legacy-named symbol `rootLegacy` in scripts/verify-facebook-posts.ts:45"}, "properties": {"repobilityId": "8f26113ecb424eb4", "scanner": "scanner-primary", "fingerprint": "a33c58197825629a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-29983fcee2a96831", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/verify-facebook-posts.ts:97"}, "properties": {"repobilityId": "949f3d67d03ed564", "scanner": "scanner-primary", "fingerprint": "29983fcee2a96831", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f72bb7f7eaaae27f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/verify-facebook-posts.ts:107"}, "properties": {"repobilityId": "119b87ed4e8894b8", "scanner": "scanner-primary", "fingerprint": "f72bb7f7eaaae27f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-188b8353ed3d89be", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backfill-score-by-month.ts:135"}, "properties": {"repobilityId": "9ce1f4f2ede686c6", "scanner": "scanner-primary", "fingerprint": "188b8353ed3d89be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d09d76d42d15918", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backfill-score-by-month.ts:81"}, "properties": {"repobilityId": "e89f43b8521a5101", "scanner": "scanner-primary", "fingerprint": "4d09d76d42d15918", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-918f7f057ac1c4ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/image-generate.ts:41"}, "properties": {"repobilityId": "7b1b9191aa9509a8", "scanner": "scanner-primary", "fingerprint": "918f7f057ac1c4ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-010e74e5999e2c8a", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/lint-test-email-structure.ts:59"}, "properties": {"repobilityId": "3bb4e3da3e540de2", "scanner": "scanner-primary", "fingerprint": "010e74e5999e2c8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8200e1002da1309e", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/sync-coverage-line.ts:347"}, "properties": {"repobilityId": "5083af5ca1c8f7f8", "scanner": "scanner-primary", "fingerprint": "8200e1002da1309e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-411dd962551056c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-a-rebalance.ts:92"}, "properties": {"repobilityId": "49096e327af94c8a", "scanner": "scanner-primary", "fingerprint": "411dd962551056c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-89f43c3337d2d180", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lint-test-email-image-freshness.ts:102"}, "properties": {"repobilityId": "075f7567aba53af4", "scanner": "scanner-primary", "fingerprint": "89f43c3337d2d180", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fecb7dae1cf17a91", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/categorize.ts:83"}, "properties": {"repobilityId": "d9de32db54e15757", "scanner": "scanner-primary", "fingerprint": "fecb7dae1cf17a91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4b8942539841108", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/benchmark-e2e.ts:186"}, "properties": {"repobilityId": "820422889fba9810", "scanner": "scanner-primary", "fingerprint": "c4b8942539841108", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5610fa38c37f95b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/fetch-rss.ts:65"}, "properties": {"repobilityId": "d724a2aca402a81c", "scanner": "scanner-primary", "fingerprint": "d5610fa38c37f95b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f6782c6277730c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/publish-facebook.ts:93"}, "properties": {"repobilityId": "7d24c7b98bd5451f", "scanner": "scanner-primary", "fingerprint": "9f6782c6277730c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f6f375d371b54fa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/publish-facebook.ts:185"}, "properties": {"repobilityId": "bfeb6a76a5f361c4", "scanner": "scanner-primary", "fingerprint": "0f6f375d371b54fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a5be9c5964a72987", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/update-stage-status.ts:254"}, "properties": {"repobilityId": "9d8481716ccc5c7a", "scanner": "scanner-primary", "fingerprint": "a5be9c5964a72987", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f646f5ed8462caf4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/singularize-md-sections.ts:83"}, "properties": {"repobilityId": "fb2bf716a7cc82db", "scanner": "scanner-primary", "fingerprint": "f646f5ed8462caf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55986d08e7807d4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/cloudflare-image.js:9"}, "properties": {"repobilityId": "41478fcdabdd47d8", "scanner": "scanner-primary", "fingerprint": "55986d08e7807d4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82b93be7a5e31ece", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gemini-image.js:8"}, "properties": {"repobilityId": "6ae706a5d0c4408a", "scanner": "scanner-primary", "fingerprint": "82b93be7a5e31ece", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89b714f670d27656", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/drive-sync.ts:109"}, "properties": {"repobilityId": "caa92e23917049e3", "scanner": "scanner-primary", "fingerprint": "89b714f670d27656", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922fab3a7a74aa8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/monthly-click-sections.ts:56"}, "properties": {"repobilityId": "b02d6383a0862a98", "scanner": "scanner-primary", "fingerprint": "922fab3a7a74aa8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-846e1ccad0bd8926", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check-worker-cors.ts:46"}, "properties": {"repobilityId": "40c264753a90de9e", "scanner": "scanner-primary", "fingerprint": "846e1ccad0bd8926", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1761d5c5b22b0292", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/match-prompts-to-destaques.ts:71"}, "properties": {"repobilityId": "84a332288bfb0624", "scanner": "scanner-primary", "fingerprint": "1761d5c5b22b0292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f4619719944525b", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/verify-dates.ts:229"}, "properties": {"repobilityId": "a29f2d9640e31ec2", "scanner": "scanner-primary", "fingerprint": "6f4619719944525b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b06b7f75b6c17d7", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/check-pr-bugfix.ts:178"}, "properties": {"repobilityId": "f60d82c1ab6e89bc", "scanner": "scanner-primary", "fingerprint": "4b06b7f75b6c17d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bca95bf1c596def7", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/openai-image.js:8"}, "properties": {"repobilityId": "37e911b539484063", "scanner": "scanner-primary", "fingerprint": "bca95bf1c596def7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5ba2bbdb53a05f2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/openai-image.js:141"}, "properties": {"repobilityId": "d2711cf3b3f3095f", "scanner": "scanner-primary", "fingerprint": "e5ba2bbdb53a05f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-173464a1e0f8f67b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/comfyui-run.js:72"}, "properties": {"repobilityId": "3df55d0ccb0cd10d", "scanner": "scanner-primary", "fingerprint": "173464a1e0f8f67b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ed87d1e1833a52b", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/split-articles-for-scoring.ts:198"}, "properties": {"repobilityId": "a7eac75b43acb875", "scanner": "scanner-primary", "fingerprint": "6ed87d1e1833a52b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5669a6e43a22589", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/verify-stage-4-dispatch.ts:382"}, "properties": {"repobilityId": "14d28dd0f25491da", "scanner": "scanner-primary", "fingerprint": "e5669a6e43a22589", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85f4e06a77c6a34b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/collect-monthly.ts:205"}, "properties": {"repobilityId": "0d3a2427b09326f7", "scanner": "scanner-primary", "fingerprint": "85f4e06a77c6a34b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05f2770f0eb74e9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/compute-eia-poll-stats.ts:72"}, "properties": {"repobilityId": "35278ad8c3d8c1c9", "scanner": "scanner-primary", "fingerprint": "05f2770f0eb74e9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9145095141479429", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-websearch-batch.ts:268"}, "properties": {"repobilityId": "82ab3fe34280da0a", "scanner": "scanner-primary", "fingerprint": "9145095141479429", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-26d512c9af509173", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-beehiiv-poll-stats.ts:147"}, "properties": {"repobilityId": "32d6ce798f2b9448", "scanner": "scanner-primary", "fingerprint": "26d512c9af509173", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31d551fe95c8121c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/normalize-newsletter.ts:150"}, "properties": {"repobilityId": "feddf83d0daf6ee0", "scanner": "scanner-primary", "fingerprint": "31d551fe95c8121c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c159bd6cf1c4288d", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check-staleness.ts:55"}, "properties": {"repobilityId": "1c5e3bb75013fd78", "scanner": "scanner-primary", "fingerprint": "c159bd6cf1c4288d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c078517c6010759", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/publish-linkedin.ts:54"}, "properties": {"repobilityId": "89a2968b8f651e5f", "scanner": "scanner-primary", "fingerprint": "6c078517c6010759", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e734bb4c47bf9b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/render-erro-intencional.ts:55"}, "properties": {"repobilityId": "3bcd8a2704357db2", "scanner": "scanner-primary", "fingerprint": "4e734bb4c47bf9b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-686a6f261ab76b24", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/merge-scored-chunks.ts:256"}, "properties": {"repobilityId": "6f1493e974d3cb4f", "scanner": "scanner-primary", "fingerprint": "686a6f261ab76b24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c88ada6fef023dc8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/clarice-build-edition-sends.ts:113"}, "properties": {"repobilityId": "5ecf42bca57457cb", "scanner": "scanner-primary", "fingerprint": "c88ada6fef023dc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d5c670c429493ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/reorder-destaques.ts:128"}, "properties": {"repobilityId": "5888d43712d424ba", "scanner": "scanner-primary", "fingerprint": "9d5c670c429493ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6171b7c23047291c", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/extract-destaques.ts:76"}, "properties": {"repobilityId": "a8023712d27e1f53", "scanner": "scanner-primary", "fingerprint": "6171b7c23047291c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2791cec0494e0b4", "level": "note", "message": {"text": "Legacy-named symbol `md5Old` in scripts/capture-livros-promo.ts:92"}, "properties": {"repobilityId": "e073d1cd06926dc0", "scanner": "scanner-primary", "fingerprint": "e2791cec0494e0b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d73fdbd1e83ea72e", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/dedup.ts:284"}, "properties": {"repobilityId": "b310d0450845fd18", "scanner": "scanner-primary", "fingerprint": "d73fdbd1e83ea72e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fdd2ef1ac468cf2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/reconcile-intentional-errors.ts:95"}, "properties": {"repobilityId": "70bcef1f0733a0ce", "scanner": "scanner-primary", "fingerprint": "8fdd2ef1ac468cf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86ef6be8cdf26c00", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/enrich-inbox-articles.ts:392"}, "properties": {"repobilityId": "c9aeef7556df8230", "scanner": "scanner-primary", "fingerprint": "86ef6be8cdf26c00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f5b22a41e239a28", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/analyze-h4.ts:518"}, "properties": {"repobilityId": "94daa13e2503c4a6", "scanner": "scanner-primary", "fingerprint": "8f5b22a41e239a28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e6409635549bb7c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/rebuild-stats.ts:109"}, "properties": {"repobilityId": "99fae3b3108f258f", "scanner": "scanner-primary", "fingerprint": "9e6409635549bb7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-43ec8be951224881", "level": "none", "message": {"text": "Commented-code block (11 lines) in scripts/lint-social-numbers.ts:82"}, "properties": {"repobilityId": "ba5446b67593d97b", "scanner": "scanner-primary", "fingerprint": "43ec8be951224881", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-daf5bf3c8393e9ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lint-humanized-output.ts:61"}, "properties": {"repobilityId": "0ed004e2f2d95dfb", "scanner": "scanner-primary", "fingerprint": "daf5bf3c8393e9ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa32d1348bdfd90b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/inject-inbox-urls.ts:456"}, "properties": {"repobilityId": "23cd965683ef5ad4", "scanner": "scanner-primary", "fingerprint": "aa32d1348bdfd90b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f7355b7780307ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/close-poll.ts:70"}, "properties": {"repobilityId": "57506791b4e93274", "scanner": "scanner-primary", "fingerprint": "5f7355b7780307ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-571e71b92cdb06c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validate-lancamentos.ts:89"}, "properties": {"repobilityId": "3a55527f21d5f0de", "scanner": "scanner-primary", "fingerprint": "571e71b92cdb06c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-079a4a96fd4df2c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build-link-ctr.ts:140"}, "properties": {"repobilityId": "779cbd51a4fa1314", "scanner": "scanner-primary", "fingerprint": "079a4a96fd4df2c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c5ca7ad2bcc9b50", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/inbox-drain.ts:559"}, "properties": {"repobilityId": "ee70a4c913c1b744", "scanner": "scanner-primary", "fingerprint": "0c5ca7ad2bcc9b50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79f7fab9d774ad6f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/clarice-drop-c-to-b.ts:47"}, "properties": {"repobilityId": "d0213e4e8b5472a1", "scanner": "scanner-primary", "fingerprint": "79f7fab9d774ad6f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd6a37fa2cfa536a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/eia-compose.ts:179"}, "properties": {"repobilityId": "8aad062df54c2700", "scanner": "scanner-primary", "fingerprint": "cd6a37fa2cfa536a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8193280bed79a85a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/eia-compose.ts:303"}, "properties": {"repobilityId": "f78e96c8a331326c", "scanner": "scanner-primary", "fingerprint": "8193280bed79a85a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2961d54bd399c09e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/clarice-schedule-sends.ts:577"}, "properties": {"repobilityId": "63aad9d5a8382285", "scanner": "scanner-primary", "fingerprint": "2961d54bd399c09e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c9c9240bcaa2305", "level": "note", "message": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/monthly-preview-cloudflare.ts:45"}, "properties": {"repobilityId": "8aec112d96f3dcdc", "scanner": "scanner-primary", "fingerprint": "4c9c9240bcaa2305", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-38fee3eac00870f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/beehiiv-sync.ts:118"}, "properties": {"repobilityId": "e4701e5049a5165a", "scanner": "scanner-primary", "fingerprint": "38fee3eac00870f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e1f8968f281ee577", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/merge-social-md.ts:216"}, "properties": {"repobilityId": "a435190e118970dd", "scanner": "scanner-primary", "fingerprint": "e1f8968f281ee577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5daf3db1815ba3d9", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/render-categorized-md.ts:560"}, "properties": {"repobilityId": "e52e031302532d93", "scanner": "scanner-primary", "fingerprint": "5daf3db1815ba3d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13ffd42ac10b1039", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/select-eia-edition.ts:48"}, "properties": {"repobilityId": "c56b8830bbad208d", "scanner": "scanner-primary", "fingerprint": "13ffd42ac10b1039", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1951774401ffe02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/inspect-brevo-wave.ts:37"}, "properties": {"repobilityId": "009a8c19bcc0c658", "scanner": "scanner-primary", "fingerprint": "c1951774401ffe02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-591b3f9fc92a3d6f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/split-wave-brevo.ts:34"}, "properties": {"repobilityId": "bd3aeb39d1fa4a08", "scanner": "scanner-primary", "fingerprint": "591b3f9fc92a3d6f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7774ac5e63a72300", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/backup-beehiiv.ts:436"}, "properties": {"repobilityId": "2dd19173f07d19d8", "scanner": "scanner-primary", "fingerprint": "7774ac5e63a72300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d29be1582aa31552", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/backup-beehiiv.ts:233"}, "properties": {"repobilityId": "658c0b32dc4d7c2e", "scanner": "scanner-primary", "fingerprint": "d29be1582aa31552", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e317a32230dbe622", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/send-edition-report.ts:609"}, "properties": {"repobilityId": "531e00e4084c8797", "scanner": "scanner-primary", "fingerprint": "e317a32230dbe622", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0e5be53565ea133", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/generate-worker-tokens.ts:102"}, "properties": {"repobilityId": "66ae399a282a53a7", "scanner": "scanner-primary", "fingerprint": "b0e5be53565ea133", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-348ac34c7434d01f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/topic-cluster.ts:322"}, "properties": {"repobilityId": "79076dff9e365d75", "scanner": "scanner-primary", "fingerprint": "348ac34c7434d01f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-717a466548ca7c62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/google-auth.ts:211"}, "properties": {"repobilityId": "9d43af7956c37655", "scanner": "scanner-primary", "fingerprint": "717a466548ca7c62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9adbea47d2276919", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check-highlight-themes.ts:63"}, "properties": {"repobilityId": "fedde2520bf10842", "scanner": "scanner-primary", "fingerprint": "9adbea47d2276919", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09fd88fb6bf24243", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/apply-gate-edits.ts:124"}, "properties": {"repobilityId": "eaa0a39d745feae9", "scanner": "scanner-primary", "fingerprint": "09fd88fb6bf24243", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e123de9971b809b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/fetch-leaderboard-top1.ts:220"}, "properties": {"repobilityId": "48a280d929cc944a", "scanner": "scanner-primary", "fingerprint": "5e123de9971b809b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53001da31e5e9e6c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/upload-images-public.ts:203"}, "properties": {"repobilityId": "f5ab275205a3ca71", "scanner": "scanner-primary", "fingerprint": "53001da31e5e9e6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdd1cb5665a24700", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check-cloudflare-token.ts:31"}, "properties": {"repobilityId": "79f0fd425857b11c", "scanner": "scanner-primary", "fingerprint": "cdd1cb5665a24700", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ad79d5c4865adab", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/refresh-past-editions.ts:473"}, "properties": {"repobilityId": "9585ff85a5c1c3fa", "scanner": "scanner-primary", "fingerprint": "3ad79d5c4865adab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddf1050edb265e3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/merge-clarice-subscribers.ts:299"}, "properties": {"repobilityId": "49abff33d9729687", "scanner": "scanner-primary", "fingerprint": "ddf1050edb265e3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5f3d4fa14dadefa", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/fetch-monthly-posts.ts:105"}, "properties": {"repobilityId": "28d9e71b16caf6ff", "scanner": "scanner-primary", "fingerprint": "d5f3d4fa14dadefa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8e697f9f4ba55aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-monthly-posts.ts:65"}, "properties": {"repobilityId": "42ad2c5743d83fb5", "scanner": "scanner-primary", "fingerprint": "d8e697f9f4ba55aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46ed704d1020edfe", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/eia-log-used.ts:72"}, "properties": {"repobilityId": "cb616f63b73b5789", "scanner": "scanner-primary", "fingerprint": "46ed704d1020edfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c45f129ddf6f6e4", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/lint-social-md.ts:182"}, "properties": {"repobilityId": "f43949e1be1e0ad8", "scanner": "scanner-primary", "fingerprint": "4c45f129ddf6f6e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3e8da2c6ba65b97", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/oauth-setup.ts:78"}, "properties": {"repobilityId": "63a4638700e793da", "scanner": "scanner-primary", "fingerprint": "a3e8da2c6ba65b97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fd95c1288913088", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/refresh-dedup.ts:446"}, "properties": {"repobilityId": "ed50dd018cc9c9f3", "scanner": "scanner-primary", "fingerprint": "7fd95c1288913088", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4f1debf481a4d46", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/refresh-dedup.ts:112"}, "properties": {"repobilityId": "06669e7e8f3dddc4", "scanner": "scanner-primary", "fingerprint": "b4f1debf481a4d46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ee090dec9d5d384", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/collect-edition-signals.ts:191"}, "properties": {"repobilityId": "7110e9320dfa82ca", "scanner": "scanner-primary", "fingerprint": "7ee090dec9d5d384", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57c4bce141fc2de6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/benchmark.ts:21"}, "properties": {"repobilityId": "6d6b3c95496d7c9e", "scanner": "scanner-primary", "fingerprint": "57c4bce141fc2de6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc83c79ac5e686fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/finalize-stage1.ts:191"}, "properties": {"repobilityId": "e3442c845a28f95d", "scanner": "scanner-primary", "fingerprint": "cc83c79ac5e686fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22fb1372b6103599", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/stage-timing.ts:43"}, "properties": {"repobilityId": "9a6b9c46884d748d", "scanner": "scanner-primary", "fingerprint": "22fb1372b6103599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e468157114e55b1d", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/merge-local-pending.ts:119"}, "properties": {"repobilityId": "fca31b08665bf625", "scanner": "scanner-primary", "fingerprint": "e468157114e55b1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f5187aba5566dd1", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/sync-intro-count.ts:78"}, "properties": {"repobilityId": "fe5861b093b60325", "scanner": "scanner-primary", "fingerprint": "0f5187aba5566dd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d8554e397185c90", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/upload-html-public.ts:431"}, "properties": {"repobilityId": "4e36f1ca7850d5d1", "scanner": "scanner-primary", "fingerprint": "5d8554e397185c90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e501da3d45b50e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/upload-html-public.ts:11"}, "properties": {"repobilityId": "b842300e831bc2b5", "scanner": "scanner-primary", "fingerprint": "b3e501da3d45b50e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b9f8299f74c1c08", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/stitch-newsletter.ts:121"}, "properties": {"repobilityId": "22e1a47469df722c", "scanner": "scanner-primary", "fingerprint": "5b9f8299f74c1c08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfee4e27fe2ad69b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/clean-summary.ts:155"}, "properties": {"repobilityId": "058d815cf4d2e9b2", "scanner": "scanner-primary", "fingerprint": "dfee4e27fe2ad69b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05ce27e546ca5613", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/lib/newsletter-render-html.ts:31"}, "properties": {"repobilityId": "f90992a0ae0403e9", "scanner": "scanner-primary", "fingerprint": "05ce27e546ca5613", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b65f3352fec8b9df", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/drive-helpers.ts:16"}, "properties": {"repobilityId": "2d9096cbbdc8d117", "scanner": "scanner-primary", "fingerprint": "b65f3352fec8b9df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adf4205a8a7ebbe3", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/beehiiv-cover-upload.ts:141"}, "properties": {"repobilityId": "3a7206ac6e1354ae", "scanner": "scanner-primary", "fingerprint": "adf4205a8a7ebbe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77b70630f2312891", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/beehiiv-cover-upload.ts:257"}, "properties": {"repobilityId": "735e90d10283be5d", "scanner": "scanner-primary", "fingerprint": "77b70630f2312891", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e37ab071c5e8273", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/atomic-write.ts:95"}, "properties": {"repobilityId": "dcc706fa3483a77d", "scanner": "scanner-primary", "fingerprint": "3e37ab071c5e8273", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b74566f4aa8b3155", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/lib/newsletter-count.ts:61"}, "properties": {"repobilityId": "77bc7e7512405e35", "scanner": "scanner-primary", "fingerprint": "b74566f4aa8b3155", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-813519d1e95daf92", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/audience-affinity.ts:183"}, "properties": {"repobilityId": "1d5cfabb67dcc830", "scanner": "scanner-primary", "fingerprint": "813519d1e95daf92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94ebc2d96e4cffdb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/doh-fetch.ts:15"}, "properties": {"repobilityId": "e5dfc3c020fba6ff", "scanner": "scanner-primary", "fingerprint": "94ebc2d96e4cffdb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fcccc6ae658cf4b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/monthly-render.ts:261"}, "properties": {"repobilityId": "4dd26dc60f0b7206", "scanner": "scanner-primary", "fingerprint": "fcccc6ae658cf4b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b169c9f1c06616f", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/lib/poll-kv.ts:149"}, "properties": {"repobilityId": "ebe6aac2599aa73a", "scanner": "scanner-primary", "fingerprint": "5b169c9f1c06616f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e49f271a86addfb6", "level": "none", "message": {"text": "Commented-code block (16 lines) in scripts/lib/launch-vs-news.ts:211"}, "properties": {"repobilityId": "bec3f5a06ae3a8e8", "scanner": "scanner-primary", "fingerprint": "e49f271a86addfb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10e00bd0d437e59f", "level": "none", "message": {"text": "Commented-code block (12 lines) in scripts/lib/newsletter-parse.ts:177"}, "properties": {"repobilityId": "af81f08843a89406", "scanner": "scanner-primary", "fingerprint": "10e00bd0d437e59f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ee2fd6830eaa835", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/find-current-edition.ts:61"}, "properties": {"repobilityId": "3e5253fb034059a4", "scanner": "scanner-primary", "fingerprint": "1ee2fd6830eaa835", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f69c7ff026d7e32c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/agent-issue-validator.ts:345"}, "properties": {"repobilityId": "2636e71e6f0c2018", "scanner": "scanner-primary", "fingerprint": "f69c7ff026d7e32c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c80ed97b03d994a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/measure-highlights.ts:66"}, "properties": {"repobilityId": "6dd4568b659c8d51", "scanner": "scanner-primary", "fingerprint": "c80ed97b03d994a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c89c9b76589d204", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/url-utils.ts:93"}, "properties": {"repobilityId": "052ed772d7a060a6", "scanner": "scanner-primary", "fingerprint": "0c89c9b76589d204", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abe8e96745e9a833", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/mcp-guard.ts:25"}, "properties": {"repobilityId": "0ff7ece5dc273fc1", "scanner": "scanner-primary", "fingerprint": "abe8e96745e9a833", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4344350bbd79cc5", "level": "note", "message": {"text": "Legacy-named symbol `monthlyWorkerKeyLegacy` in scripts/lib/monthly-paths.ts:184"}, "properties": {"repobilityId": "13b374866b98294e", "scanner": "scanner-primary", "fingerprint": "e4344350bbd79cc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d59cf6c27e0fc0a0", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/lib/section-naming.ts:115"}, "properties": {"repobilityId": "6fcff8f44340127f", "scanner": "scanner-primary", "fingerprint": "d59cf6c27e0fc0a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d72f93a0287f6ffc", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/lib/official-domains.ts:65"}, "properties": {"repobilityId": "2cb52966eb480e81", "scanner": "scanner-primary", "fingerprint": "d72f93a0287f6ffc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e645ab2d2066d5ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/brevo-client.ts:105"}, "properties": {"repobilityId": "ae81a0e336fa454c", "scanner": "scanner-primary", "fingerprint": "e645ab2d2066d5ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46c5fd9dd6411852", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/lib/use-melhor-sources.ts:223"}, "properties": {"repobilityId": "b79ca918d1b5bbe8", "scanner": "scanner-primary", "fingerprint": "46c5fd9dd6411852", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9dd77579b655bab2", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/lib/invariant-checks/stage-4.ts:414"}, "properties": {"repobilityId": "3e0ba17caae7f613", "scanner": "scanner-primary", "fingerprint": "9dd77579b655bab2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e71aac0e9405e13", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/lib/invariant-checks/stage-5.ts:14"}, "properties": {"repobilityId": "68b9d5bf18eff5ef", "scanner": "scanner-primary", "fingerprint": "0e71aac0e9405e13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d244429a61553d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/callout-placement.ts:41"}, "properties": {"repobilityId": "8f46d9621cadae66", "scanner": "scanner-primary", "fingerprint": "3d244429a61553d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1792640cf1974636", "level": "note", "message": {"text": "Legacy-named symbol `pesquisasLegacy` in scripts/lib/lint-checks/url-bucket.ts:299"}, "properties": {"repobilityId": "998409d6383fd0a6", "scanner": "scanner-primary", "fingerprint": "1792640cf1974636", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f738ff4b7b765122", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/url-bucket.ts:64"}, "properties": {"repobilityId": "fbeb3041df4ffd0d", "scanner": "scanner-primary", "fingerprint": "f738ff4b7b765122", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37e1afa28596a712", "level": "note", "message": {"text": "Legacy-named symbol `hasGabaritoLegacy` in scripts/lib/lint-checks/eai-section.ts:50"}, "properties": {"repobilityId": "1b30a3fe81884dff", "scanner": "scanner-primary", "fingerprint": "37e1afa28596a712", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5879f33435ad2aca", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/lib/lint-checks/section-item-format.ts:39"}, "properties": {"repobilityId": "01a01c9acd1df426", "scanner": "scanner-primary", "fingerprint": "5879f33435ad2aca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c090da1b94bd5863", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/intentional-error.ts:96"}, "properties": {"repobilityId": "0920461b207023d2", "scanner": "scanner-primary", "fingerprint": "c090da1b94bd5863", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a1cafe495882b70", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/lib/lint-checks/relative-time.ts:41"}, "properties": {"repobilityId": "eac560c0106c03ba", "scanner": "scanner-primary", "fingerprint": "7a1cafe495882b70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff9a1bc8faca3a53", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/brevo-dashboard/src/index.ts:271"}, "properties": {"repobilityId": "fef7d51685befb79", "scanner": "scanner-primary", "fingerprint": "ff9a1bc8faca3a53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d2f46b68d4259af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/brevo-dashboard/src/index.ts:267"}, "properties": {"repobilityId": "f4fe03ce869ec677", "scanner": "scanner-primary", "fingerprint": "4d2f46b68d4259af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4b258be23d41ae8", "level": "none", "message": {"text": "Commented-code block (8 lines) in workers/draft/src/index.ts:60"}, "properties": {"repobilityId": "aa1c43252469df1f", "scanner": "scanner-primary", "fingerprint": "c4b258be23d41ae8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fb8b253e47e2e02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/draft/src/index.ts:176"}, "properties": {"repobilityId": "c4faa98715841343", "scanner": "scanner-primary", "fingerprint": "7fb8b253e47e2e02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0cf71ee0af5c2963", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/diaria-dashboard/src/index.ts:375"}, "properties": {"repobilityId": "f6fd6591fc9eff21", "scanner": "scanner-primary", "fingerprint": "0cf71ee0af5c2963", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dcc092406cb442b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/linkedin-cron/test/index.test.ts:57"}, "properties": {"repobilityId": "ae14ccb28bc8b6e0", "scanner": "scanner-primary", "fingerprint": "dcc092406cb442b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f6352dd29a12117", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/test/index.test.ts:125"}, "properties": {"repobilityId": "d1f4036adcd4dcca", "scanner": "scanner-primary", "fingerprint": "6f6352dd29a12117", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7d51552a9f5c62fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/linkedin-cron/src/index.ts:336"}, "properties": {"repobilityId": "6ee50e3ea8dbae85", "scanner": "scanner-primary", "fingerprint": "7d51552a9f5c62fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a070e77e576910f4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/linkedin-cron/src/index.ts:269"}, "properties": {"repobilityId": "a5c08526b75135dd", "scanner": "scanner-primary", "fingerprint": "a070e77e576910f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bdf7c9f29d98d970", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/vote-dedup.ts:140"}, "properties": {"repobilityId": "9b7e28c182ea5bfe", "scanner": "scanner-primary", "fingerprint": "bdf7c9f29d98d970", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f1557b6c3c5c0e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in workers/poll/src/index.ts:234"}, "properties": {"repobilityId": "82c6938a428390c0", "scanner": "scanner-primary", "fingerprint": "6f1557b6c3c5c0e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbb9a19f128b2f45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/index.ts:676"}, "properties": {"repobilityId": "dfe9c787aaf9c16e", "scanner": "scanner-primary", "fingerprint": "fbb9a19f128b2f45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-627a956f02b0b86b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/poll/src/stats-counter.ts:80"}, "properties": {"repobilityId": "c2153233f129f4fd", "scanner": "scanner-primary", "fingerprint": "627a956f02b0b86b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5012f45b317442fa", "level": "none", "message": {"text": "Commented-code block (11 lines) in .claude/hooks/pr-create-review.mjs:6"}, "properties": {"repobilityId": "b6853fcd1e134deb", "scanner": "scanner-primary", "fingerprint": "5012f45b317442fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51dbf90b6ad9e4e9", "level": "note", "message": {"text": "28 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "b01aa43f6ad2a3c8", "scanner": "scanner-primary", "fingerprint": "51dbf90b6ad9e4e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-f76b6396c14bb275", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/images/generations (scripts/openai-image.js:68)"}, "properties": {"repobilityId": "cd5ce70f55a41ec1", "scanner": "scanner-primary", "fingerprint": "f76b6396c14bb275", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0eaf2bc209f65f6", "level": "error", "message": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-a-rebalance.ts:92)"}, "properties": {"repobilityId": "bee822b6a9aa7282", "scanner": "scanner-primary", "fingerprint": "a0eaf2bc209f65f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71d3ab0398e35856", "level": "error", "message": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-drop-c-to-b.ts:47)"}, "properties": {"repobilityId": "1ae7a3ca8a52ce9a", "scanner": "scanner-primary", "fingerprint": "71d3ab0398e35856", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-43025c6735f0683d", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(model)}:generateContent?key=${apiKey} (scripts/eia-compose.ts:591)"}, "properties": {"repobilityId": "ea01eed0c71d5bcb", "scanner": "scanner-primary", "fingerprint": "43025c6735f0683d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c6762f7507755c5", "level": "error", "message": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/split-wave-brevo.ts:34)"}, "properties": {"repobilityId": "a00ae1143c357db8", "scanner": "scanner-primary", "fingerprint": "3c6762f7507755c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-75ea53e4d342a52d", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=${apiKey} (scripts/topic-cluster.ts:68)"}, "properties": {"repobilityId": "b07a12c4dba77a8a", "scanner": "scanner-primary", "fingerprint": "75ea53e4d342a52d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b70c46ba90a993d4", "level": "error", "message": {"text": "Dangling fetch: GET https://api.brevo.com/v3${path} (scripts/clarice-build-waves.ts:198)"}, "properties": {"repobilityId": "0b8b4042a53b9e4d", "scanner": "scanner-primary", "fingerprint": "b70c46ba90a993d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-387df343ff1cb42c", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (scripts/oauth-setup.ts:78)"}, "properties": {"repobilityId": "f44e762fffd311da", "scanner": "scanner-primary", "fingerprint": "387df343ff1cb42c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ff3b9762a3bb11f", "level": "error", "message": {"text": "Dangling fetch: GET https://draft.diaria.workers.dev/{edition} (scripts/upload-html-public.ts:11)"}, "properties": {"repobilityId": "60632dd0f02b5bfc", "scanner": "scanner-primary", "fingerprint": "7ff3b9762a3bb11f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cfe867b7df347a98", "level": "error", "message": {"text": "Dangling fetch: GET https://api.brevo.com${path} (workers/brevo-dashboard/src/index.ts:267)"}, "properties": {"repobilityId": "7700aa95713fb1cc", "scanner": "scanner-primary", "fingerprint": "cfe867b7df347a98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f4fddc6a2b82b7e", "level": "error", "message": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2339)"}, "properties": {"repobilityId": "017479e055a40005", "scanner": "scanner-primary", "fingerprint": "2f4fddc6a2b82b7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f988dd6eede49989", "level": "error", "message": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/test/index.test.ts:2797)"}, "properties": {"repobilityId": "446cf9d490742c2c", "scanner": "scanner-primary", "fingerprint": "f988dd6eede49989", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffcac0c7bea30b38", "level": "error", "message": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:269)"}, "properties": {"repobilityId": "1d5f249719af619d", "scanner": "scanner-primary", "fingerprint": "ffcac0c7bea30b38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-994d6e329faee91d", "level": "error", "message": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:402)"}, "properties": {"repobilityId": "f310043deed9a2bb", "scanner": "scanner-primary", "fingerprint": "994d6e329faee91d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f426ea8ff05aaad4", "level": "error", "message": {"text": "Dangling fetch: GET /claim (workers/linkedin-cron/src/index.ts:403)"}, "properties": {"repobilityId": "a90c6bbf21d00096", "scanner": "scanner-primary", "fingerprint": "f426ea8ff05aaad4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8af37236b52d6693", "level": "error", "message": {"text": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:668)"}, "properties": {"repobilityId": "260ab7538586aa82", "scanner": "scanner-primary", "fingerprint": "8af37236b52d6693", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-403f4753500d6a5a", "level": "error", "message": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:843)"}, "properties": {"repobilityId": "de7b7fa923066bab", "scanner": "scanner-primary", "fingerprint": "403f4753500d6a5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d46918b8b5719c77", "level": "error", "message": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:969)"}, "properties": {"repobilityId": "befad511c80d4103", "scanner": "scanner-primary", "fingerprint": "d46918b8b5719c77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5a79e7524e590fb", "level": "error", "message": {"text": "Dangling fetch: GET https://do/status (workers/linkedin-cron/src/index.ts:999)"}, "properties": {"repobilityId": "8dd24451e915e9e3", "scanner": "scanner-primary", "fingerprint": "c5a79e7524e590fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ab03e7bd4ea86cd", "level": "error", "message": {"text": "Dangling fetch: POST https://do/claim (workers/linkedin-cron/src/index.ts:1022)"}, "properties": {"repobilityId": "715f12a8a7572995", "scanner": "scanner-primary", "fingerprint": "7ab03e7bd4ea86cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-442e0f69e691edea", "level": "error", "message": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1049)"}, "properties": {"repobilityId": "e14a7942905817a7", "scanner": "scanner-primary", "fingerprint": "442e0f69e691edea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a82afb5c02c135c", "level": "error", "message": {"text": "Dangling fetch: POST https://do/status-set-fired (workers/linkedin-cron/src/index.ts:1123)"}, "properties": {"repobilityId": "3e338c4d6325b7f3", "scanner": "scanner-primary", "fingerprint": "3a82afb5c02c135c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf6a03c2a110d53c", "level": "error", "message": {"text": "Dangling fetch: POST https://do/cancel (workers/linkedin-cron/src/index.ts:1143)"}, "properties": {"repobilityId": "ffe521344cca1cf9", "scanner": "scanner-primary", "fingerprint": "cf6a03c2a110d53c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8977deed9beeb7e2", "level": "error", "message": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1169)"}, "properties": {"repobilityId": "d7ad8d48a4227821", "scanner": "scanner-primary", "fingerprint": "8977deed9beeb7e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e99b6073edab5ccf", "level": "error", "message": {"text": "Dangling fetch: POST https://do/release-claim (workers/linkedin-cron/src/index.ts:1181)"}, "properties": {"repobilityId": "85d4ee913a49197f", "scanner": "scanner-primary", "fingerprint": "e99b6073edab5ccf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3cf093fbc93be3e0", "level": "error", "message": {"text": "Dangling fetch: POST https://do/arm (workers/linkedin-cron/src/index.ts:1314)"}, "properties": {"repobilityId": "ecbd9bdbede36ddf", "scanner": "scanner-primary", "fingerprint": "3cf093fbc93be3e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8cd9a6a3aa7f47ee", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:337)"}, "properties": {"repobilityId": "e96fd609f2d0eaf7", "scanner": "scanner-primary", "fingerprint": "8cd9a6a3aa7f47ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac8ff2574883677d", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/vote-dedup (workers/poll/src/index.ts:346)"}, "properties": {"repobilityId": "7d8684775552c802", "scanner": "scanner-primary", "fingerprint": "ac8ff2574883677d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-231989e476c2acaa", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:584)"}, "properties": {"repobilityId": "ddbdbff3a7f23c14", "scanner": "scanner-primary", "fingerprint": "231989e476c2acaa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-613379a9ba14651e", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/confirm (workers/poll/src/index.ts:588)"}, "properties": {"repobilityId": "bbb5134b9b47a94e", "scanner": "scanner-primary", "fingerprint": "613379a9ba14651e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9f241312a723181f", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/increment (workers/poll/src/index.ts:676)"}, "properties": {"repobilityId": "1d6d452a3712c4a5", "scanner": "scanner-primary", "fingerprint": "9f241312a723181f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d01b4885bcd1b179", "level": "error", "message": {"text": "Dangling fetch: GET https://internal/stats (workers/poll/src/index.ts:1006)"}, "properties": {"repobilityId": "2065e207bce61ce3", "scanner": "scanner-primary", "fingerprint": "d01b4885bcd1b179", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-071d0323dac46ea3", "level": "error", "message": {"text": "Dangling fetch: POST https://internal/adjust-correct (workers/poll/src/index.ts:1716)"}, "properties": {"repobilityId": "92ae1e5bb7988321", "scanner": "scanner-primary", "fingerprint": "071d0323dac46ea3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19a1a46befe3d6a6", "level": "note", "message": {"text": "Unused endpoint: DELETE "}, "properties": {"repobilityId": "880954f68b4d412d", "scanner": "scanner-primary", "fingerprint": "19a1a46befe3d6a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}