{"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-0f09707cf8b712fd", "name": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/base/BaseAgent.ts:228", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/base/BaseAgent.ts:228"}, "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-9fc7fb941de6c3a0", "name": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/prompts/examples.ts:36", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/prompts/examples.ts:36"}, "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-3a77863ac5924030", "name": "Stray `console.log` in TS/JS \u2014 scripts/review-errors.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-errors.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd5be68f70202773", "name": "Stray `console.log` in TS/JS \u2014 scripts/quick-sf-count.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-sf-count.js:6"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3e4b2e438af282c", "name": "Stray `console.log` in TS/JS \u2014 scripts/deep-check-pending-vs-master.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deep-check-pending-vs-master.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e57a3ac268488712", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-field-mapping-reference.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-field-mapping-reference.js:55"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e1d5c0ad1c837fb", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90202fb55a7df175", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-creation-requests.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-creation-requests.js:84"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31b2b707c0b26760", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-attribute-matcher-certifications.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-attribute-matcher-certifications.js:5"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b67e90f657afe8a", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-sf-sync-against-existing.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-sf-sync-against-existing.js:6"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c9734460a66c23a", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-picklists-individually-to-sf.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-picklists-individually-to-sf.js:60"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c16f720172348db", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-picklist-sync-status.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-picklist-sync-status.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2750dd1ddaa36f03", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-cert-job-timestamps.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cert-job-timestamps.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be385373512d1a4b", "name": "Stray `console.log` in TS/JS \u2014 scripts/push-all-picklists-to-salesforce.js:114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/push-all-picklists-to-salesforce.js: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-165b158b76896e00", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-size-class-rounding.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-size-class-rounding.js:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95c950838971ab31", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-pending-attributes.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-pending-attributes.js:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00cfe482a923d2de", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-sf.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-sf.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5afc5c8d3d532d1c", "name": "Stray `console.log` in TS/JS \u2014 scripts/dry-run-reconciliation.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dry-run-reconciliation.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a708dd361b6bf41d", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-debug-logger.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-debug-logger.ts:52"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4c32edb2b38889c", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-type-name-validity.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-type-name-validity.js: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-16a37941f8f473cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/bulk-reject-pending-syncs.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bulk-reject-pending-syncs.js:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa3419f144b098be", "name": "Stray `console.log` in TS/JS \u2014 scripts/daily-job-stats.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/daily-job-stats.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d68fba25de6e4fa", "name": "Stray `console.log` in TS/JS \u2014 scripts/clean-categories-file.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clean-categories-file.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-855f0fe56f6cceac", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-category-filters-to-salesforce.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-category-filters-to-salesforce.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5be3d5258335a08c", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-website-filter-reference.js:353", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-website-filter-reference.js:353"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da6ea844c7322ba9", "name": "Stray `console.log` in TS/JS \u2014 scripts/quick-job-status.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-job-status.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b7b0f578c595e7e", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-picklist-sync.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-picklist-sync.js:84"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cead138c6a842e8", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-claude-review.js:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-claude-review.js:181"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4079273c3c74b166", "name": "Stray `console.log` in TS/JS \u2014 scripts/verification-api-accuracy-audit.js:376", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verification-api-accuracy-audit.js: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-d96031baffff42de", "name": "Stray `console.log` in TS/JS \u2014 scripts/ai-performance-dashboard.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ai-performance-dashboard.js:86"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-132397cc50b9adaf", "name": "Stray `console.log` in TS/JS \u2014 scripts/quick-status.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-status.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-117f4a9cb7b7511c", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-ai-performance.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-ai-performance.js:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-24cd4a793f37f697", "name": "Stray `console.log` in TS/JS \u2014 scripts/retrigger-pending-requests.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/retrigger-pending-requests.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8101512e7d92e883", "name": "Stray `console.log` in TS/JS \u2014 scripts/inspect-rejected-sync.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-rejected-sync.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-303f42878692ba24", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-style-crossref.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-style-crossref.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41689468152547a4", "name": "Stray `console.log` in TS/JS \u2014 scripts/add-universal-accessory-type.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/add-universal-accessory-type.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b16b2cd95cdb069d", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-response-deadlines.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-response-deadlines.js:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a3fbb3e25eee03fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-size-classes.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-size-classes.js:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01fc20a8bfd1d713", "name": "Stray `console.log` in TS/JS \u2014 scripts/transform-category-filter-attributes.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/transform-category-filter-attributes.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8cbbfb99fe56bdd", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication.js:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-762001b984cc53b8", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-picklist-fields.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-picklist-fields.js:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f728f0c421456c4c", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-match-count.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-match-count.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b0981d7b42c90307", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-final-review-stage.js:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-final-review-stage.js:177"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a72b714b1bd4b27", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-picklists-from-production.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-picklists-from-production.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdca3b17d39d5da1", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-hardcoded-from-picklists.js:237", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-hardcoded-from-picklists.js:237"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-990c270b36535cef", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-both-collections.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-both-collections.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9ebaf7576f72879", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-picklist-syncs.js:189", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-picklist-syncs.js:189"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d04e69e21979cf7", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-system-alignment.js:245", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-system-alignment.js:245"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b8e278775aceae51", "name": "Stray `console.log` in TS/JS \u2014 scripts/snapshot-batch-quality.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/snapshot-batch-quality.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c8ec5b706433ca6", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-comprehensive-title-schemas.js:469", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-comprehensive-title-schemas.js:469"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1891b7698d0cbaf3", "name": "Stray `console.log` in TS/JS \u2014 scripts/reverify-titles.js:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reverify-titles.js:146"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fe532be0c0d80b4", "name": "Stray `console.log` in TS/JS \u2014 scripts/show-detailed-analytics.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-detailed-analytics.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca137430921a6f32", "name": "Stray `console.log` in TS/JS \u2014 scripts/verification-flow-audit.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verification-flow-audit.js:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3caa5f286cf0b18c", "name": "Stray `console.log` in TS/JS \u2014 scripts/show-session-analytics.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-session-analytics.js:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16e7d142b59a4fd8", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-attribute-catalog.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-attribute-catalog.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bff9ffa4deb8faa5", "name": "Stray `console.log` in TS/JS \u2014 scripts/show-failed-jobs.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-failed-jobs.js:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b29e55b502e6d1e0", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-missing-ids-comprehensive.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-missing-ids-comprehensive.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea2fd4056c375323", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-status-values.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-status-values.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c9e9698d2f5cecb1", "name": "TODO/FIXME marker in shipping code \u2014 scripts/detect-and-retry-stale-requests.js:89", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/detect-and-retry-stale-requests.js:89"}, "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-d41ad2af4df80ae7", "name": "Stray `console.log` in TS/JS \u2014 scripts/detect-and-retry-stale-requests.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/detect-and-retry-stale-requests.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cb43872ba03d89b", "name": "Stray `console.log` in TS/JS \u2014 scripts/view-quality-trends.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/view-quality-trends.js:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-21bbbea373570a0f", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-rejected-sync.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-rejected-sync.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90446054ce3da47f", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-report.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-report.js:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bcd3cddfcd78263e", "name": "Stray `console.log` in TS/JS \u2014 scripts/regenerate-hardcoded-lists.js:105", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regenerate-hardcoded-lists.js:105"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e688d9c8efe6849", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master-attributes.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master-attributes.js:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45572803df01430b", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-all-picklists-to-salesforce.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-all-picklists-to-salesforce.js:39"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a919b957dec5f8bb", "name": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-matched-creation-requests.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-matched-creation-requests.js:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c9d14968d8af525", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication-test.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication-test.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f0df43f35d43368", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-recent-titles.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-recent-titles.js:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea79f3abc513937c", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-certifications-match.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-certifications-match.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6db2e31663b7adc2", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-schema-reference.js:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-schema-reference.js: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-bbdfb2a030a568e1", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-rejected-sync-ids.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-rejected-sync-ids.js:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e6be1887a8a7be8", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-types-preserved.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-types-preserved.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab00d290a928e725", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-declared-vs-implemented.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-declared-vs-implemented.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92473bd3f0826919", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-recent-jobs.js:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-recent-jobs.js:100"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcdf497e4d68ef16", "name": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-picklists-with-salesforce.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-picklists-with-salesforce.js: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-6482eefe0acc59bf", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-confirm.js:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-confirm.js:99"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06a8ebadf8f2daa1", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-creation-request-statuses.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-creation-request-statuses.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e6de6468862e97b", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-batch.js:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-batch.js: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-d065a02fe8a5a282", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-fulfilled-attributes.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-fulfilled-attributes.js:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e3572148d5fc44e", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-style-curation-templates.js:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-style-curation-templates.js: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-c75805f4975c6828", "name": "Stray `console.log` in TS/JS \u2014 scripts/clear-stuck-jobs.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clear-stuck-jobs.js:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d22427efb3be6ebc", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-request-vs-sync-mismatch.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-request-vs-sync-mismatch.js:5"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f4e602a4a667682", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-duplicates.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-duplicates.js:6"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4641a376cf58ae67", "name": "Stray `console.log` in TS/JS \u2014 scripts/reject-syncs.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reject-syncs.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e20cf20417848fc9", "name": "Stray `console.log` in TS/JS \u2014 scripts/approve-attribute-matches.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-attribute-matches.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b34427bffa79ce0", "name": "Stray `console.log` in TS/JS \u2014 scripts/get-category-distribution.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/get-category-distribution.js:7"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0a3edfd6a352ad4", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-title-generation.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-title-generation.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1f34d87c19111d9", "name": "Stray `console.log` in TS/JS \u2014 scripts/show-unrequested-sf-items.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-unrequested-sf-items.js:5"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c807980240d61d3d", "name": "Stray `console.log` in TS/JS \u2014 scripts/resend-failed-webhooks.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resend-failed-webhooks.js:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6ed23a1bb46da9e", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-title-system.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-title-system.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b52336ca8f1bdf32", "name": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-certifications-requests.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-certifications-requests.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6745ac55e0de711d", "name": "Stray `console.log` in TS/JS \u2014 scripts/resend-pending-creation-requests.js:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resend-pending-creation-requests.js: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-2b751aceaa9f4b82", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze-finish-quality.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-finish-quality.js:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d39659cd544abc25", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-styles-to-salesforce.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-styles-to-salesforce.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd847f299f8fd80a", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-ai-vs-raw.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-ai-vs-raw.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3c09ba2cd6c93049", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-db-status.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-db-status.js:8"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1e1b11d00eaa742", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-hardcoded-sync.js:528", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-hardcoded-sync.js:528"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42ca9a5727ad3b31", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-job-data.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-job-data.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e49c88d5b4ffb350", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-universal-accessory-logic.js:105", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-universal-accessory-logic.js:105"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e324a89e6ee60a79", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/comprehensive-batch-monitor.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/comprehensive-batch-monitor.js:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a8de3a5c22c84fe5", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:432", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:432"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f7e2807b0e69919", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-fetch-results.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-fetch-results.js:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18f2ce2afb191c7f", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-cross-contamination.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-cross-contamination.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-284e61fbc3276212", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-semantic-combinations.js:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-semantic-combinations.js: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-4aa471eec27b58a5", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-execute.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-execute.js:78"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9dcf27d97356eb1", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-quality-audit.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-quality-audit.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fcf21e8a7c1ee9b", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-sf-vs-repo-categories.js:287", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-sf-vs-repo-categories.js: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-9e78672db6839de3", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/inspect-job-structure.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/inspect-job-structure.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b37a73a9782a7fe", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-latest-batch.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-latest-batch.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65a4a12c9ee2877e", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reject-pending-syncs.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reject-pending-syncs.js:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b8a01a6640cb343", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/pre-fix-validation.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/pre-fix-validation.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9423aa87f79ae14", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/watch-appliance-completions.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/watch-appliance-completions.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b5568674a6ba8c2", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-query.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-query.js:7"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a04e8f23d220721", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-post-fix-results.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-post-fix-results.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07ce6fae9ea51219", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/post-fix-validation.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/post-fix-validation.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d0300fcc98aa92a6", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-audit.js:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-audit.js:161"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a14947350713d11c", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-options.js:390", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-options.js:390"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27a11eb1105eebbb", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-before-after-fix.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-before-after-fix.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f5861878a64256a", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-keyword-coverage.js:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-keyword-coverage.js:173"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8fffd542483b00f5", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-appliance-features.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-appliance-features.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d580d7ac94e8cec3", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-attribute-contamination.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-attribute-contamination.js: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-f64c26220e5daf39", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-pending-vs-existing.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-pending-vs-existing.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f637f99c22efb96d", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-comprehensive-logger.js:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-comprehensive-logger.js:109"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06db52dec77b5332", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-last25.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-last25.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-269aaf14176ff395", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-7-problem-jobs.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-7-problem-jobs.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48e0dd64e56e4547", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-batch-monitor.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-batch-monitor.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1ddf3f1e3ac4c76", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f01374128e6b2b48", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/investigate-blank-jobs.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/investigate-blank-jobs.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b6be798aa9a5e6e", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/get-correct-job-ids.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/get-correct-job-ids.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0adc7338a18b7657", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-not-found-types.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-not-found-types.js:26"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1672f1e130397b1f", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/analyze-sf-50-calls.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/analyze-sf-50-calls.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e2e693edc0fba11", "name": "Stray `console.log` in TS/JS \u2014 scripts/golden-harness/run-harness.js:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/golden-harness/run-harness.js: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-d71d6d7ccc7675dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/select-golden-set.js:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/select-golden-set.js:155"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8759fcedffab1241", "name": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-accuracy.js:214", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-accuracy.js:214"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b81b7080b315459e", "name": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-waste.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-waste.js:122"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-607373029f4b9b6a", "name": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-gaps.js:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-gaps.js:146"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cc0d9a174fb28aa", "name": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/lib/common.js:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/lib/common.js:109"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10fa07d600d8e35d", "name": "Stray `console.log` in TS/JS \u2014 src/__tests__/manual/attribute-request-flow.demo.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/__tests__/manual/attribute-request-flow.demo.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf3b9015989eae61", "name": "Stray `console.log` in TS/JS \u2014 src/config/lookups.ts:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/config/lookups.ts:76"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-514a4223660e6ad2", "name": "Stray `console.log` in TS/JS \u2014 src/config/category-config.ts:307", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/config/category-config.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-4788864ce46c7692", "name": "Stray `console.log` in TS/JS \u2014 src/picklist-master/07-category-filter-attributes/lookups.ts:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/picklist-master/07-category-filter-attributes/lookups.ts:76"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6048167b335e488b", "name": "TODO/FIXME marker in shipping code \u2014 src/scripts/sync-picklists.ts:212", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/scripts/sync-picklists.ts:212"}, "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-29f7641c959b3d82", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/test-failed-match-logger.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/test-failed-match-logger.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3017474290f6e71d", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/test-verification-with-logging.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/test-verification-with-logging.ts:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-723dcd79631bc5cd", "name": "TODO/FIXME marker in shipping code \u2014 src/controllers/salesforce-async-verification.controller.ts:239", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/controllers/salesforce-async-verification.controller.ts:239"}, "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-86778594c93e2052", "name": "TODO/FIXME marker in shipping code \u2014 src/controllers/webhook.controller.ts:164", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/controllers/webhook.controller.ts:164"}, "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-46e61e77d077fadd", "name": "TODO/FIXME marker in shipping code \u2014 src/services/salesforce-verification.service.ts:277", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/salesforce-verification.service.ts:277"}, "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-00857a20ea03e4db", "name": "TODO/FIXME marker in shipping code \u2014 src/services/dual-ai-verification.service.ts:93", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/dual-ai-verification.service.ts:93"}, "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-1884679e7c6c67d5", "name": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/orchestrator.service.ts:832", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/orchestrator.service.ts:832"}, "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-f08f6d96fbb8a05d", "name": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/error-detector.service.ts:311", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/error-detector.service.ts:311"}, "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-8c0d98268f741ce3", "name": "Insecure pattern 'node_child_process' in scripts/sync-picklists-from-production.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sync-picklists-from-production.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0740853f4a93002e", "name": "Insecure pattern 'exec_used' in src/services/picklist-matcher.service.ts:1966", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/services/picklist-matcher.service.ts:1966"}, "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-e2d3206ffaffb834", "name": "Insecure pattern 'node_child_process' in src/services/picklist-matcher.service.ts:1962", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/services/picklist-matcher.service.ts:1962"}, "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-d076e8240b0c9880", "name": "Insecure pattern 'node_child_process' in src/services/self-healing/comprehensive-fix-applicator.service.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/services/self-healing/comprehensive-fix-applicator.service.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6670f32b5bd9075", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9803a825337e2e7a", "name": "Very large file: archive/dead-code-2026-04-22/title-schema-by-category-OLD-BACKUP.ts (6791 lines)", "shortDescription": {"text": "Very large file: archive/dead-code-2026-04-22/title-schema-by-category-OLD-BACKUP.ts (6791 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-64879a54ff2eaa7a", "name": "Very large file: src/config/title-schema-by-category.ts (7291 lines)", "shortDescription": {"text": "Very large file: src/config/title-schema-by-category.ts (7291 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-5eb14db4281e9063", "name": "Very large file: src/controllers/picklist.controller.ts (1441 lines)", "shortDescription": {"text": "Very large file: src/controllers/picklist.controller.ts (1441 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-bf436cd866ca0dc8", "name": "Very large file: src/services/picklist-matcher.service.ts (1989 lines)", "shortDescription": {"text": "Very large file: src/services/picklist-matcher.service.ts (1989 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-008a2a2e25e58e7c", "name": "Very large file: src/services/seo-title-generator.service.ts (1431 lines)", "shortDescription": {"text": "Very large file: src/services/seo-title-generator.service.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-ee7af7a4c50cf0bf", "name": "Very large file: src/services/response-builder.service.ts (1351 lines)", "shortDescription": {"text": "Very large file: src/services/response-builder.service.ts (1351 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-9ecba70ee2fe2755", "name": "Very large file: src/services/research.service.ts (2251 lines)", "shortDescription": {"text": "Very large file: src/services/research.service.ts (2251 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-dd216c4a43fd60a2", "name": "Very large file: src/services/dual-ai-verification.service.ts (15450 lines)", "shortDescription": {"text": "Very large file: src/services/dual-ai-verification.service.ts (15450 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-6f38b9dd217b6078", "name": "Very large file: src/services/pipelines/non-appliance-pipeline.ts (1265 lines)", "shortDescription": {"text": "Very large file: src/services/pipelines/non-appliance-pipeline.ts (1265 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "23 test file(s) for 309 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 4030 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 38 placeholder/mock markers across 20 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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-b2e735f9afee83d8", "name": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/schema.ts:30", "shortDescription": {"text": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/schema.ts:30"}, "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-5c91e7b11d510f6c", "name": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/orchestrator/VerificationOrchestrator.ts:37", "shortDescription": {"text": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/orchestrator/VerificationOrchestrator.ts:378"}, "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-61dfc760f2870d4d", "name": "Legacy-named symbol `Brand_Legacy` in scripts/test-debug-logger.ts:22", "shortDescription": {"text": "Legacy-named symbol `Brand_Legacy` in scripts/test-debug-logger.ts:22"}, "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-d8debcfcb43d0482", "name": "Legacy-named symbol `Category_Legacy` in scripts/verify-batch.js:147", "shortDescription": {"text": "Legacy-named symbol `Category_Legacy` in scripts/verify-batch.js:147"}, "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-f4b7b45ba1ca88e9", "name": "Legacy-named symbol `daysOld` in scripts/resend-pending-creation-requests.js:144", "shortDescription": {"text": "Legacy-named symbol `daysOld` in scripts/resend-pending-creation-requests.js:144"}, "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-10f78f2fdb4ede01", "name": "Legacy-named symbol `Product_Title_Legacy` in scripts/validate-ai-vs-raw.js:40", "shortDescription": {"text": "Legacy-named symbol `Product_Title_Legacy` in scripts/validate-ai-vs-raw.js:40"}, "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-321ee55b185631da", "name": "Legacy-named symbol `Brand_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:11", "shortDescription": {"text": "Legacy-named symbol `Brand_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:11"}, "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-53a73bebd85e5c05", "name": "Legacy-named symbol `Product_Title_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-options.js:65", "shortDescription": {"text": "Legacy-named symbol `Product_Title_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-options.js:65"}, "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-0d78713d10ec6276", "name": "Legacy-named symbol `wasInOld` in scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:163", "shortDescription": {"text": "Legacy-named symbol `wasInOld` in scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:163"}, "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-8cbae95720895bd4", "name": "Legacy-named symbol `Model_Number_Legacy` in scripts/archive/february-2026-debug/analyze-sf-50-calls.js:59", "shortDescription": {"text": "Legacy-named symbol `Model_Number_Legacy` in scripts/archive/february-2026-debug/analyze-sf-50-calls.js:59"}, "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-3b962fd7b6f58075", "name": "Legacy-named symbol `Brand_Legacy` in src/types/salesforce.types.ts:62", "shortDescription": {"text": "Legacy-named symbol `Brand_Legacy` in src/types/salesforce.types.ts:62"}, "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-fe5e841e17614c4c", "name": "Commented-code block (5 lines) in src/types/salesforce.types.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in src/types/salesforce.types.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0144fdd326e3feac", "name": "Legacy-named symbol `Brand_Legacy` in src/config/audit-prompt.ts:87", "shortDescription": {"text": "Legacy-named symbol `Brand_Legacy` in src/config/audit-prompt.ts:87"}, "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-3d760499cc3825cc", "name": "Commented-code block (5 lines) in src/config/category-aliases.ts:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/config/category-aliases.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-d9a215e29bd0e7f7", "name": "Commented-code block (5 lines) in src/utils/html-generator.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/html-generator.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-93648b329134e1d2", "name": "Commented-code block (5 lines) in src/controllers/salesforce-async-verification.controller.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in src/controllers/salesforce-async-verification.controller.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-6f8e61a231b9399a", "name": "Commented-code block (5 lines) in src/controllers/picklist.controller.ts:565", "shortDescription": {"text": "Commented-code block (5 lines) in src/controllers/picklist.controller.ts:565"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2e26c80fc17cffa", "name": "Commented-code block (5 lines) in src/services/picklist-matcher.service.ts:194", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/picklist-matcher.service.ts:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6c321824e8475df", "name": "Commented-code block (5 lines) in src/services/seo-title-generator.service.ts:240", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/seo-title-generator.service.ts:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16de7962847ecad7", "name": "Legacy-named symbol `normalizedOld` in src/services/response-comparison.service.ts:170", "shortDescription": {"text": "Legacy-named symbol `normalizedOld` in src/services/response-comparison.service.ts:170"}, "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-3c445fd34ef0cfeb", "name": "Commented-code block (5 lines) in src/services/research.service.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/research.service.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-d34b43f41bf31f61", "name": "Commented-code block (7 lines) in src/services/webhook.service.ts:84", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/webhook.service.ts:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53579b4880801064", "name": "Commented-code block (5 lines) in src/services/tracking.service.ts:261", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/tracking.service.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-f14cefea381f0d53", "name": "Legacy-named symbol `_Legacy` in src/services/dual-ai-verification.service.ts:282", "shortDescription": {"text": "Legacy-named symbol `_Legacy` in src/services/dual-ai-verification.service.ts:282"}, "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-a1999889315cc0cc", "name": "Commented-code block (5 lines) in src/services/dual-ai-verification.service.ts:544", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/dual-ai-verification.service.ts:544"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d30f886e1f63493b", "name": "Commented-code block (13 lines) in src/services/self-healing/orchestrator.service.ts:854", "shortDescription": {"text": "Commented-code block (13 lines) in src/services/self-healing/orchestrator.service.ts:854"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef06f0c52da6406c", "name": "Legacy-named symbol `Product_Title_Legacy` in src/services/pipelines/non-appliance-pipeline.ts:103", "shortDescription": {"text": "Legacy-named symbol `Product_Title_Legacy` in src/services/pipelines/non-appliance-pipeline.ts:103"}, "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-c7188dfa8ed1bd71", "name": "Commented-code block (13 lines) in src/services/pipelines/non-appliance-pipeline.ts:696", "shortDescription": {"text": "Commented-code block (13 lines) in src/services/pipelines/non-appliance-pipeline.ts:696"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a88fa7ff7218af5", "name": "Commented-code block (7 lines) in src/services/pipelines/appliance-pipeline.ts:38", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/pipelines/appliance-pipeline.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fc6012fa1329acd", "name": "Legacy-named symbol `Brand_Legacy` in src/services/audit/audit-review.service.ts:116", "shortDescription": {"text": "Legacy-named symbol `Brand_Legacy` in src/services/audit/audit-review.service.ts:116"}, "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-2293706d3453c3a3", "name": "Unused endpoint: POST /trigger", "shortDescription": {"text": "Unused endpoint: POST /trigger"}, "fullDescription": {"text": "`examples/INTEGRATION-EXAMPLE.ts` declares `POST /trigger` 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}}, {"id": "scanner-c64e49d86f45d905", "name": "Unused endpoint: USE /api/self-healing", "shortDescription": {"text": "Unused endpoint: USE /api/self-healing"}, "fullDescription": {"text": "`examples/INTEGRATION-EXAMPLE.ts` declares `USE /api/self-healing` 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}}, {"id": "scanner-76889df7c8e240c5", "name": "Unused endpoint: USE /api/", "shortDescription": {"text": "Unused endpoint: USE /api/"}, "fullDescription": {"text": "`src/app.ts` declares `USE /api/` 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}}, {"id": "scanner-d504b80adc9409ec", "name": "Unused endpoint: GET /dashboard", "shortDescription": {"text": "Unused endpoint: GET /dashboard"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /dashboard` 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}}, {"id": "scanner-4c4d06b87ea984dc", "name": "Unused endpoint: GET /performance", "shortDescription": {"text": "Unused endpoint: GET /performance"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /performance` 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}}, {"id": "scanner-5e0f160e74fc290a", "name": "Unused endpoint: GET /ai-providers", "shortDescription": {"text": "Unused endpoint: GET /ai-providers"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /ai-providers` 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}}, {"id": "scanner-eaf88833229f8f1c", "name": "Unused endpoint: GET /consensus", "shortDescription": {"text": "Unused endpoint: GET /consensus"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /consensus` 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}}, {"id": "scanner-9260174de75b32ba", "name": "Unused endpoint: GET /categories", "shortDescription": {"text": "Unused endpoint: GET /categories"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /categories` 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}}, {"id": "scanner-01c0e6ca7f504cf5", "name": "Unused endpoint: GET /brands", "shortDescription": {"text": "Unused endpoint: GET /brands"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /brands` 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}}, {"id": "scanner-cd4763e6e0fcaa39", "name": "Unused endpoint: GET /issues", "shortDescription": {"text": "Unused endpoint: GET /issues"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /issues` 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}}, {"id": "scanner-64809b790b48b9ed", "name": "Unused endpoint: GET /disagreements", "shortDescription": {"text": "Unused endpoint: GET /disagreements"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /disagreements` 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}}, {"id": "scanner-2c940bad5d5155b4", "name": "Unused endpoint: GET /timeseries", "shortDescription": {"text": "Unused endpoint: GET /timeseries"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /timeseries` 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}}, {"id": "scanner-80bd7ba0b62c523e", "name": "Unused endpoint: GET /failures", "shortDescription": {"text": "Unused endpoint: GET /failures"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /failures` 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}}, {"id": "scanner-0477341a3ca0d127", "name": "Unused endpoint: GET /low-confidence", "shortDescription": {"text": "Unused endpoint: GET /low-confidence"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /low-confidence` 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}}, {"id": "scanner-d16e4fa529c520e9", "name": "Unused endpoint: GET /search", "shortDescription": {"text": "Unused endpoint: GET /search"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /search` 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}}, {"id": "scanner-979e75896a4221af", "name": "Unused endpoint: GET /tracking/:trackingId", "shortDescription": {"text": "Unused endpoint: GET /tracking/:trackingId"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /tracking/:trackingId` 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}}, {"id": "scanner-529b5de4022633e5", "name": "Unused endpoint: GET /session/:sessionId", "shortDescription": {"text": "Unused endpoint: GET /session/:sessionId"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /session/:sessionId` 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}}, {"id": "scanner-8ab9cfd79040b6d0", "name": "Unused endpoint: GET /catalog/:catalogId", "shortDescription": {"text": "Unused endpoint: GET /catalog/:catalogId"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /catalog/:catalogId` 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}}, {"id": "scanner-e686634beeea0bb8", "name": "Unused endpoint: GET /export", "shortDescription": {"text": "Unused endpoint: GET /export"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /export` 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}}, {"id": "scanner-67db81ff589a2912", "name": "Unused endpoint: GET /alerts", "shortDescription": {"text": "Unused endpoint: GET /alerts"}, "fullDescription": {"text": "`src/routes/analytics.routes.ts` declares `GET /alerts` 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}}, {"id": "scanner-d0db19de9b4f8ff1", "name": "Unused endpoint: POST /salesforce", "shortDescription": {"text": "Unused endpoint: POST /salesforce"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `POST /salesforce` 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}}, {"id": "scanner-34f64dd9c4d126f3", "name": "Unused endpoint: GET /salesforce/status/:jobId", "shortDescription": {"text": "Unused endpoint: GET /salesforce/status/:jobId"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `GET /salesforce/status/:jobId` 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}}, {"id": "scanner-fbf770a81f019552", "name": "Unused endpoint: GET /salesforce/queue/stats", "shortDescription": {"text": "Unused endpoint: GET /salesforce/queue/stats"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `GET /salesforce/queue/stats` 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}}, {"id": "scanner-1b7c8a249fd6b210", "name": "Unused endpoint: POST /salesforce/audit", "shortDescription": {"text": "Unused endpoint: POST /salesforce/audit"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `POST /salesforce/audit` 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}}, {"id": "scanner-da5ea9f82a74be82", "name": "Unused endpoint: GET /salesforce/audit/status/:auditId", "shortDescription": {"text": "Unused endpoint: GET /salesforce/audit/status/:auditId"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `GET /salesforce/audit/status/:auditId` 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}}, {"id": "scanner-3d895631964d071a", "name": "Unused endpoint: POST /salesforce/model-check", "shortDescription": {"text": "Unused endpoint: POST /salesforce/model-check"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `POST /salesforce/model-check` 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}}, {"id": "scanner-4e1d837ea0ce9084", "name": "Unused endpoint: POST /salesforce/acknowledge/:jobId", "shortDescription": {"text": "Unused endpoint: POST /salesforce/acknowledge/:jobId"}, "fullDescription": {"text": "`src/routes/salesforce-async-verification.routes.ts` declares `POST /salesforce/acknowledge/:jobId` 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}}, {"id": "scanner-e8e40b31cd0a27b6", "name": "Unused endpoint: GET /trends/by-field", "shortDescription": {"text": "Unused endpoint: GET /trends/by-field"}, "fullDescription": {"text": "`src/routes/response-quality.routes.ts` declares `GET /trends/by-field` 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}}, {"id": "scanner-680af537bf0580f8", "name": "Unused endpoint: GET /trends/by-category", "shortDescription": {"text": "Unused endpoint: GET /trends/by-category"}, "fullDescription": {"text": "`src/routes/response-quality.routes.ts` declares `GET /trends/by-category` 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}}, {"id": "scanner-e1b7bee247ffc801", "name": "Unused endpoint: GET /summary", "shortDescription": {"text": "Unused endpoint: GET /summary"}, "fullDescription": {"text": "`src/routes/response-quality.routes.ts` declares `GET /summary` 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}}, {"id": "scanner-1f77f6f75187981c", "name": "Unused endpoint: GET /recommendations", "shortDescription": {"text": "Unused endpoint: GET /recommendations"}, "fullDescription": {"text": "`src/routes/response-quality.routes.ts` declares `GET /recommendations` 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}}, {"id": "scanner-cd8dc4599ec52a08", "name": "Unused endpoint: GET /stats", "shortDescription": {"text": "Unused endpoint: GET /stats"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /stats` 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}}, {"id": "scanner-545327c76a6e16f0", "name": "Unused endpoint: GET /styles", "shortDescription": {"text": "Unused endpoint: GET /styles"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /styles` 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}}, {"id": "scanner-e3d92f17d10fe78b", "name": "Unused endpoint: GET /attributes", "shortDescription": {"text": "Unused endpoint: GET /attributes"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /attributes` 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}}, {"id": "scanner-9630d39f953a327c", "name": "Unused endpoint: GET /types", "shortDescription": {"text": "Unused endpoint: GET /types"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /types` 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}}, {"id": "scanner-be399b1017cbee52", "name": "Unused endpoint: GET /departments", "shortDescription": {"text": "Unused endpoint: GET /departments"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /departments` 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}}, {"id": "scanner-65d583e531dc44a0", "name": "Unused endpoint: GET /families", "shortDescription": {"text": "Unused endpoint: GET /families"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /families` 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}}, {"id": "scanner-1a6c1f2bdec3b862", "name": "Unused endpoint: GET /brands/:id", "shortDescription": {"text": "Unused endpoint: GET /brands/:id"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /brands/:id` 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}}, {"id": "scanner-723f0fa6abf23823", "name": "Unused endpoint: GET /categories/:id", "shortDescription": {"text": "Unused endpoint: GET /categories/:id"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /categories/:id` 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}}, {"id": "scanner-569dbff1cc352ba3", "name": "Unused endpoint: POST /brands", "shortDescription": {"text": "Unused endpoint: POST /brands"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /brands` 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}}, {"id": "scanner-1033c7a1d3884505", "name": "Unused endpoint: POST /categories", "shortDescription": {"text": "Unused endpoint: POST /categories"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /categories` 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}}, {"id": "scanner-f3752613d4620eb7", "name": "Unused endpoint: POST /styles", "shortDescription": {"text": "Unused endpoint: POST /styles"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /styles` 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}}, {"id": "scanner-b8884df3208e7408", "name": "Unused endpoint: POST /attributes", "shortDescription": {"text": "Unused endpoint: POST /attributes"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /attributes` 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}}, {"id": "scanner-fa413208496243a5", "name": "Unused endpoint: POST /sync", "shortDescription": {"text": "Unused endpoint: POST /sync"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /sync` 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}}, {"id": "scanner-8bb2320a8eae602d", "name": "Unused endpoint: GET /sync/pending", "shortDescription": {"text": "Unused endpoint: GET /sync/pending"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /sync/pending` 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}}, {"id": "scanner-092c418a758945ac", "name": "Unused endpoint: GET /sync/pending/:pendingId", "shortDescription": {"text": "Unused endpoint: GET /sync/pending/:pendingId"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /sync/pending/:pendingId` 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}}, {"id": "scanner-3e1bce4b96ae279c", "name": "Unused endpoint: POST /sync/pending/:pendingId/approve", "shortDescription": {"text": "Unused endpoint: POST /sync/pending/:pendingId/approve"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /sync/pending/:pendingId/approve` 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}}, {"id": "scanner-747c3b04a75a4902", "name": "Unused endpoint: POST /sync/pending/:pendingId/reject", "shortDescription": {"text": "Unused endpoint: POST /sync/pending/:pendingId/reject"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /sync/pending/:pendingId/reject` 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}}, {"id": "scanner-a86b172965257cc2", "name": "Unused endpoint: POST /sync/pending/:pendingId/update-attribute-ids", "shortDescription": {"text": "Unused endpoint: POST /sync/pending/:pendingId/update-attribute-ids"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `POST /sync/pending/:pendingId/update-attribute-ids` 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}}, {"id": "scanner-1ba94f547788ce59", "name": "Unused endpoint: GET /sync/logs", "shortDescription": {"text": "Unused endpoint: GET /sync/logs"}, "fullDescription": {"text": "`src/routes/picklist.routes.ts` declares `GET /sync/logs` 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/21545"}, "properties": {"repository": "topmcon/Catalog-Verification-API", "repoUrl": "https://github.com/topmcon/Catalog-Verification-API", "branch": "main"}, "results": [{"ruleId": "scanner-0f09707cf8b712fd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/base/BaseAgent.ts:228"}, "properties": {"repobilityId": "7559ef26a74c55c7", "scanner": "scanner-primary", "fingerprint": "0f09707cf8b712fd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9fc7fb941de6c3a0", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/prompts/examples.ts:36"}, "properties": {"repobilityId": "298de9ecc0ec9a89", "scanner": "scanner-primary", "fingerprint": "9fc7fb941de6c3a0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3a77863ac5924030", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/review-errors.js:25"}, "properties": {"repobilityId": "78bf4862d08c6acb", "scanner": "scanner-primary", "fingerprint": "3a77863ac5924030", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd5be68f70202773", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-sf-count.js:6"}, "properties": {"repobilityId": "e326ae448cbffaa3", "scanner": "scanner-primary", "fingerprint": "fd5be68f70202773", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3e4b2e438af282c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/deep-check-pending-vs-master.js:27"}, "properties": {"repobilityId": "0487211f885eedc4", "scanner": "scanner-primary", "fingerprint": "d3e4b2e438af282c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e57a3ac268488712", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-field-mapping-reference.js:55"}, "properties": {"repobilityId": "2f08c83b0c70fa3c", "scanner": "scanner-primary", "fingerprint": "e57a3ac268488712", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e1d5c0ad1c837fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master.js:17"}, "properties": {"repobilityId": "5175a2e97fcef03b", "scanner": "scanner-primary", "fingerprint": "3e1d5c0ad1c837fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90202fb55a7df175", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-creation-requests.js:84"}, "properties": {"repobilityId": "8114faacf87c1600", "scanner": "scanner-primary", "fingerprint": "90202fb55a7df175", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-31b2b707c0b26760", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-attribute-matcher-certifications.js:5"}, "properties": {"repobilityId": "ebcde1342dbc2003", "scanner": "scanner-primary", "fingerprint": "31b2b707c0b26760", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b67e90f657afe8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-sf-sync-against-existing.js:6"}, "properties": {"repobilityId": "243e7f3a03b157a2", "scanner": "scanner-primary", "fingerprint": "4b67e90f657afe8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c9734460a66c23a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-picklists-individually-to-sf.js:60"}, "properties": {"repobilityId": "71cf971e47f58ee3", "scanner": "scanner-primary", "fingerprint": "1c9734460a66c23a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4c16f720172348db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-picklist-sync-status.js:29"}, "properties": {"repobilityId": "2398ab8176772ce8", "scanner": "scanner-primary", "fingerprint": "4c16f720172348db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2750dd1ddaa36f03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-cert-job-timestamps.js:16"}, "properties": {"repobilityId": "57b30855272f483d", "scanner": "scanner-primary", "fingerprint": "2750dd1ddaa36f03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be385373512d1a4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/push-all-picklists-to-salesforce.js:114"}, "properties": {"repobilityId": "3f6752d78101b5de", "scanner": "scanner-primary", "fingerprint": "be385373512d1a4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-165b158b76896e00", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-size-class-rounding.js:19"}, "properties": {"repobilityId": "24916e72242be019", "scanner": "scanner-primary", "fingerprint": "165b158b76896e00", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95c950838971ab31", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-pending-attributes.js:32"}, "properties": {"repobilityId": "ebfcfaadf8443bbb", "scanner": "scanner-primary", "fingerprint": "95c950838971ab31", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00cfe482a923d2de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-sf.js:28"}, "properties": {"repobilityId": "4dbcfbd4f685ff41", "scanner": "scanner-primary", "fingerprint": "00cfe482a923d2de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5afc5c8d3d532d1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dry-run-reconciliation.js:37"}, "properties": {"repobilityId": "fea17c77262bba16", "scanner": "scanner-primary", "fingerprint": "5afc5c8d3d532d1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a708dd361b6bf41d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-debug-logger.ts:52"}, "properties": {"repobilityId": "088495691e2c2401", "scanner": "scanner-primary", "fingerprint": "a708dd361b6bf41d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4c32edb2b38889c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-type-name-validity.js:65"}, "properties": {"repobilityId": "e77a4ccc88427217", "scanner": "scanner-primary", "fingerprint": "e4c32edb2b38889c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16a37941f8f473cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/bulk-reject-pending-syncs.js:31"}, "properties": {"repobilityId": "8ab1dd0b2bcd920b", "scanner": "scanner-primary", "fingerprint": "16a37941f8f473cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa3419f144b098be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/daily-job-stats.js:17"}, "properties": {"repobilityId": "00c41d8fd62c2ea9", "scanner": "scanner-primary", "fingerprint": "aa3419f144b098be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d68fba25de6e4fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clean-categories-file.js:13"}, "properties": {"repobilityId": "982639fa8add31d2", "scanner": "scanner-primary", "fingerprint": "1d68fba25de6e4fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-855f0fe56f6cceac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-category-filters-to-salesforce.js:18"}, "properties": {"repobilityId": "5c69375093122c9a", "scanner": "scanner-primary", "fingerprint": "855f0fe56f6cceac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5be3d5258335a08c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-website-filter-reference.js:353"}, "properties": {"repobilityId": "54f1a57e8251c436", "scanner": "scanner-primary", "fingerprint": "5be3d5258335a08c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da6ea844c7322ba9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-job-status.js:23"}, "properties": {"repobilityId": "010a82be2cbf729e", "scanner": "scanner-primary", "fingerprint": "da6ea844c7322ba9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b7b0f578c595e7e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-picklist-sync.js:84"}, "properties": {"repobilityId": "cce16558a9d93d62", "scanner": "scanner-primary", "fingerprint": "3b7b0f578c595e7e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cead138c6a842e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-claude-review.js:181"}, "properties": {"repobilityId": "3ed49c1f7b9d14d3", "scanner": "scanner-primary", "fingerprint": "5cead138c6a842e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4079273c3c74b166", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verification-api-accuracy-audit.js:376"}, "properties": {"repobilityId": "d792f74742205103", "scanner": "scanner-primary", "fingerprint": "4079273c3c74b166", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d96031baffff42de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ai-performance-dashboard.js:86"}, "properties": {"repobilityId": "eda9ed2cc480e0d2", "scanner": "scanner-primary", "fingerprint": "d96031baffff42de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-132397cc50b9adaf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quick-status.js:18"}, "properties": {"repobilityId": "e6062bf12b92eff8", "scanner": "scanner-primary", "fingerprint": "132397cc50b9adaf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-117f4a9cb7b7511c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-ai-performance.js:71"}, "properties": {"repobilityId": "8fd44e991d8349d8", "scanner": "scanner-primary", "fingerprint": "117f4a9cb7b7511c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-24cd4a793f37f697", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/retrigger-pending-requests.js:46"}, "properties": {"repobilityId": "d3510e330f6c64ab", "scanner": "scanner-primary", "fingerprint": "24cd4a793f37f697", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8101512e7d92e883", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/inspect-rejected-sync.js:27"}, "properties": {"repobilityId": "7583e667f0ac4ea2", "scanner": "scanner-primary", "fingerprint": "8101512e7d92e883", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-303f42878692ba24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-style-crossref.js:27"}, "properties": {"repobilityId": "412c416c2f6078a7", "scanner": "scanner-primary", "fingerprint": "303f42878692ba24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41689468152547a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/add-universal-accessory-type.js:21"}, "properties": {"repobilityId": "9b6ba56869931855", "scanner": "scanner-primary", "fingerprint": "41689468152547a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b16b2cd95cdb069d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-response-deadlines.js:40"}, "properties": {"repobilityId": "126797bfbd05b3ff", "scanner": "scanner-primary", "fingerprint": "b16b2cd95cdb069d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a3fbb3e25eee03fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-size-classes.js:32"}, "properties": {"repobilityId": "a62692d795f3096b", "scanner": "scanner-primary", "fingerprint": "a3fbb3e25eee03fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01fc20a8bfd1d713", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/transform-category-filter-attributes.js:35"}, "properties": {"repobilityId": "0b3dc3b3e5055f38", "scanner": "scanner-primary", "fingerprint": "01fc20a8bfd1d713", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8cbbfb99fe56bdd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication.js:22"}, "properties": {"repobilityId": "b3078c71965ee63b", "scanner": "scanner-primary", "fingerprint": "d8cbbfb99fe56bdd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-762001b984cc53b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-picklist-fields.js:43"}, "properties": {"repobilityId": "71589203d2fee8ed", "scanner": "scanner-primary", "fingerprint": "762001b984cc53b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f728f0c421456c4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-match-count.js:15"}, "properties": {"repobilityId": "59d93d4e0a932bef", "scanner": "scanner-primary", "fingerprint": "f728f0c421456c4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b0981d7b42c90307", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-final-review-stage.js:177"}, "properties": {"repobilityId": "aca89c3304c8d14a", "scanner": "scanner-primary", "fingerprint": "b0981d7b42c90307", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a72b714b1bd4b27", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-picklists-from-production.js:27"}, "properties": {"repobilityId": "2062840bb05ef699", "scanner": "scanner-primary", "fingerprint": "9a72b714b1bd4b27", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cdca3b17d39d5da1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-hardcoded-from-picklists.js:237"}, "properties": {"repobilityId": "db984a672d0a39e5", "scanner": "scanner-primary", "fingerprint": "cdca3b17d39d5da1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-990c270b36535cef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-both-collections.js:16"}, "properties": {"repobilityId": "e771d2714d23c11b", "scanner": "scanner-primary", "fingerprint": "990c270b36535cef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9ebaf7576f72879", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-picklist-syncs.js:189"}, "properties": {"repobilityId": "b5c663ab2052fa2b", "scanner": "scanner-primary", "fingerprint": "d9ebaf7576f72879", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d04e69e21979cf7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-system-alignment.js:245"}, "properties": {"repobilityId": "84284d06e377994c", "scanner": "scanner-primary", "fingerprint": "3d04e69e21979cf7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8e278775aceae51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/snapshot-batch-quality.js:56"}, "properties": {"repobilityId": "76df8241560d0b66", "scanner": "scanner-primary", "fingerprint": "b8e278775aceae51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c8ec5b706433ca6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-comprehensive-title-schemas.js:469"}, "properties": {"repobilityId": "57f0955d4f65cf28", "scanner": "scanner-primary", "fingerprint": "6c8ec5b706433ca6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1891b7698d0cbaf3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reverify-titles.js:146"}, "properties": {"repobilityId": "ad85259458022532", "scanner": "scanner-primary", "fingerprint": "1891b7698d0cbaf3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fe532be0c0d80b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-detailed-analytics.js:9"}, "properties": {"repobilityId": "cc3eb24546b38c94", "scanner": "scanner-primary", "fingerprint": "9fe532be0c0d80b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca137430921a6f32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verification-flow-audit.js:62"}, "properties": {"repobilityId": "5ce3c7d5ca928c90", "scanner": "scanner-primary", "fingerprint": "ca137430921a6f32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3caa5f286cf0b18c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-session-analytics.js:62"}, "properties": {"repobilityId": "4febbb8004de9028", "scanner": "scanner-primary", "fingerprint": "3caa5f286cf0b18c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16e7d142b59a4fd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-attribute-catalog.js:37"}, "properties": {"repobilityId": "4e0bab8181ecdd6e", "scanner": "scanner-primary", "fingerprint": "16e7d142b59a4fd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bff9ffa4deb8faa5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-failed-jobs.js:32"}, "properties": {"repobilityId": "a6a04693aa84c486", "scanner": "scanner-primary", "fingerprint": "bff9ffa4deb8faa5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b29e55b502e6d1e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-missing-ids-comprehensive.js:20"}, "properties": {"repobilityId": "16a8f5b2e5ac820d", "scanner": "scanner-primary", "fingerprint": "b29e55b502e6d1e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea2fd4056c375323", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-status-values.js:16"}, "properties": {"repobilityId": "351a4096ad7d21b5", "scanner": "scanner-primary", "fingerprint": "ea2fd4056c375323", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c9e9698d2f5cecb1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/detect-and-retry-stale-requests.js:89"}, "properties": {"repobilityId": "10922f8b796e4c6f", "scanner": "scanner-primary", "fingerprint": "c9e9698d2f5cecb1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d41ad2af4df80ae7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/detect-and-retry-stale-requests.js:36"}, "properties": {"repobilityId": "d5bd05263fed2ef2", "scanner": "scanner-primary", "fingerprint": "d41ad2af4df80ae7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cb43872ba03d89b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/view-quality-trends.js:62"}, "properties": {"repobilityId": "48ab3327f95ea633", "scanner": "scanner-primary", "fingerprint": "5cb43872ba03d89b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21bbbea373570a0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-rejected-sync.js:15"}, "properties": {"repobilityId": "3aa5911c9a28c87e", "scanner": "scanner-primary", "fingerprint": "21bbbea373570a0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90446054ce3da47f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-report.js:62"}, "properties": {"repobilityId": "8f238c6a142e86c3", "scanner": "scanner-primary", "fingerprint": "90446054ce3da47f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcd3cddfcd78263e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/regenerate-hardcoded-lists.js:105"}, "properties": {"repobilityId": "dc5e504fabf3f711", "scanner": "scanner-primary", "fingerprint": "bcd3cddfcd78263e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e688d9c8efe6849", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-pending-vs-master-attributes.js:22"}, "properties": {"repobilityId": "d998b55e44c34e93", "scanner": "scanner-primary", "fingerprint": "2e688d9c8efe6849", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45572803df01430b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-all-picklists-to-salesforce.js:39"}, "properties": {"repobilityId": "9a3ea427640cd374", "scanner": "scanner-primary", "fingerprint": "45572803df01430b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a919b957dec5f8bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-matched-creation-requests.js:61"}, "properties": {"repobilityId": "1c77d785f5241666", "scanner": "scanner-primary", "fingerprint": "a919b957dec5f8bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c9d14968d8af525", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-deduplication-test.js:13"}, "properties": {"repobilityId": "396c88dc4d01d186", "scanner": "scanner-primary", "fingerprint": "0c9d14968d8af525", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f0df43f35d43368", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-recent-titles.js:40"}, "properties": {"repobilityId": "e9f7920bc480057b", "scanner": "scanner-primary", "fingerprint": "8f0df43f35d43368", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea79f3abc513937c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-certifications-match.js:10"}, "properties": {"repobilityId": "840634ff0d6c3950", "scanner": "scanner-primary", "fingerprint": "ea79f3abc513937c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6db2e31663b7adc2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-schema-reference.js:164"}, "properties": {"repobilityId": "3c64f2e5e0a97329", "scanner": "scanner-primary", "fingerprint": "6db2e31663b7adc2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bbdfb2a030a568e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-rejected-sync-ids.js:44"}, "properties": {"repobilityId": "41eac14e60fb8333", "scanner": "scanner-primary", "fingerprint": "bbdfb2a030a568e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e6be1887a8a7be8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-types-preserved.js:9"}, "properties": {"repobilityId": "76a3b85ce2e1e0d9", "scanner": "scanner-primary", "fingerprint": "8e6be1887a8a7be8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab00d290a928e725", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-declared-vs-implemented.js:11"}, "properties": {"repobilityId": "9a3544257b6e83e7", "scanner": "scanner-primary", "fingerprint": "ab00d290a928e725", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92473bd3f0826919", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-recent-jobs.js:100"}, "properties": {"repobilityId": "dedd5127fdeef1bd", "scanner": "scanner-primary", "fingerprint": "92473bd3f0826919", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fcdf497e4d68ef16", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reconcile-picklists-with-salesforce.js:73"}, "properties": {"repobilityId": "7d7febbdb5c1112f", "scanner": "scanner-primary", "fingerprint": "fcdf497e4d68ef16", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6482eefe0acc59bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-confirm.js:99"}, "properties": {"repobilityId": "49155bed802a3351", "scanner": "scanner-primary", "fingerprint": "6482eefe0acc59bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06a8ebadf8f2daa1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-creation-request-statuses.js:25"}, "properties": {"repobilityId": "0179c1378142e8aa", "scanner": "scanner-primary", "fingerprint": "06a8ebadf8f2daa1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e6de6468862e97b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-batch.js:224"}, "properties": {"repobilityId": "2692f02b65c0bf7a", "scanner": "scanner-primary", "fingerprint": "3e6de6468862e97b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d065a02fe8a5a282", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-fulfilled-attributes.js:49"}, "properties": {"repobilityId": "fd642c77922d471f", "scanner": "scanner-primary", "fingerprint": "d065a02fe8a5a282", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e3572148d5fc44e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-style-curation-templates.js:223"}, "properties": {"repobilityId": "0a80995285a380ce", "scanner": "scanner-primary", "fingerprint": "6e3572148d5fc44e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c75805f4975c6828", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/clear-stuck-jobs.js:14"}, "properties": {"repobilityId": "a9553d5ebfca781e", "scanner": "scanner-primary", "fingerprint": "c75805f4975c6828", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d22427efb3be6ebc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-request-vs-sync-mismatch.js:5"}, "properties": {"repobilityId": "4bb1da1683127d4e", "scanner": "scanner-primary", "fingerprint": "d22427efb3be6ebc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f4e602a4a667682", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-sf-duplicates.js:6"}, "properties": {"repobilityId": "0a1a7eec66baf133", "scanner": "scanner-primary", "fingerprint": "0f4e602a4a667682", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4641a376cf58ae67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reject-syncs.js:15"}, "properties": {"repobilityId": "5b14690971225386", "scanner": "scanner-primary", "fingerprint": "4641a376cf58ae67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e20cf20417848fc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-attribute-matches.js:18"}, "properties": {"repobilityId": "62a9fdbb3c3e16dd", "scanner": "scanner-primary", "fingerprint": "e20cf20417848fc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b34427bffa79ce0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/get-category-distribution.js:7"}, "properties": {"repobilityId": "a95448bd9b13a1ed", "scanner": "scanner-primary", "fingerprint": "7b34427bffa79ce0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f0a3edfd6a352ad4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-title-generation.js:34"}, "properties": {"repobilityId": "0cb8d1599f4260f4", "scanner": "scanner-primary", "fingerprint": "f0a3edfd6a352ad4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1f34d87c19111d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/show-unrequested-sf-items.js:5"}, "properties": {"repobilityId": "ff4f74dceb51f259", "scanner": "scanner-primary", "fingerprint": "e1f34d87c19111d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c807980240d61d3d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resend-failed-webhooks.js:41"}, "properties": {"repobilityId": "50fa8618af610314", "scanner": "scanner-primary", "fingerprint": "c807980240d61d3d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6ed23a1bb46da9e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-title-system.js:10"}, "properties": {"repobilityId": "76f313e6e11606c0", "scanner": "scanner-primary", "fingerprint": "e6ed23a1bb46da9e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b52336ca8f1bdf32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fulfill-certifications-requests.js:10"}, "properties": {"repobilityId": "e7e72bed89decaea", "scanner": "scanner-primary", "fingerprint": "b52336ca8f1bdf32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6745ac55e0de711d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/resend-pending-creation-requests.js:111"}, "properties": {"repobilityId": "97f8f989bbe00060", "scanner": "scanner-primary", "fingerprint": "6745ac55e0de711d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b751aceaa9f4b82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze-finish-quality.js:57"}, "properties": {"repobilityId": "5187770ac0517816", "scanner": "scanner-primary", "fingerprint": "2b751aceaa9f4b82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d39659cd544abc25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-styles-to-salesforce.js:18"}, "properties": {"repobilityId": "e68ab342b6f88151", "scanner": "scanner-primary", "fingerprint": "d39659cd544abc25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd847f299f8fd80a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-ai-vs-raw.js:15"}, "properties": {"repobilityId": "ee3804c8f6929e9e", "scanner": "scanner-primary", "fingerprint": "fd847f299f8fd80a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c09ba2cd6c93049", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-db-status.js:8"}, "properties": {"repobilityId": "0e5e76f04e27fe20", "scanner": "scanner-primary", "fingerprint": "3c09ba2cd6c93049", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1e1b11d00eaa742", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-hardcoded-sync.js:528"}, "properties": {"repobilityId": "388563af3aeceb60", "scanner": "scanner-primary", "fingerprint": "f1e1b11d00eaa742", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-42ca9a5727ad3b31", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-job-data.js:15"}, "properties": {"repobilityId": "285af96d633d13ca", "scanner": "scanner-primary", "fingerprint": "42ca9a5727ad3b31", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e49c88d5b4ffb350", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-universal-accessory-logic.js:105"}, "properties": {"repobilityId": "f32ddb3b7c1ad331", "scanner": "scanner-primary", "fingerprint": "e49c88d5b4ffb350", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e324a89e6ee60a79", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/comprehensive-batch-monitor.js:31"}, "properties": {"repobilityId": "1895f43daf69a09d", "scanner": "scanner-primary", "fingerprint": "e324a89e6ee60a79", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a8de3a5c22c84fe5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:432"}, "properties": {"repobilityId": "1c048a7e5aafa040", "scanner": "scanner-primary", "fingerprint": "a8de3a5c22c84fe5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f7e2807b0e69919", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-fetch-results.js:19"}, "properties": {"repobilityId": "29fefa422cdbfa89", "scanner": "scanner-primary", "fingerprint": "4f7e2807b0e69919", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-18f2ce2afb191c7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-cross-contamination.js:36"}, "properties": {"repobilityId": "0c07d35b3c41563d", "scanner": "scanner-primary", "fingerprint": "18f2ce2afb191c7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-284e61fbc3276212", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-semantic-combinations.js:209"}, "properties": {"repobilityId": "dbdbc4ca6c0ddfae", "scanner": "scanner-primary", "fingerprint": "284e61fbc3276212", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4aa471eec27b58a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-execute.js:78"}, "properties": {"repobilityId": "fbab591875e92ae9", "scanner": "scanner-primary", "fingerprint": "4aa471eec27b58a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9dcf27d97356eb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-quality-audit.js:12"}, "properties": {"repobilityId": "52ae5115f971ea48", "scanner": "scanner-primary", "fingerprint": "f9dcf27d97356eb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fcf21e8a7c1ee9b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-sf-vs-repo-categories.js:287"}, "properties": {"repobilityId": "baf989037c33398a", "scanner": "scanner-primary", "fingerprint": "9fcf21e8a7c1ee9b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e78672db6839de3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/inspect-job-structure.js:13"}, "properties": {"repobilityId": "939df3110166f011", "scanner": "scanner-primary", "fingerprint": "9e78672db6839de3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b37a73a9782a7fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-latest-batch.js:13"}, "properties": {"repobilityId": "773ba4f597792893", "scanner": "scanner-primary", "fingerprint": "4b37a73a9782a7fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65a4a12c9ee2877e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reject-pending-syncs.js:57"}, "properties": {"repobilityId": "a585e080d15c3f3d", "scanner": "scanner-primary", "fingerprint": "65a4a12c9ee2877e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b8a01a6640cb343", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/pre-fix-validation.js:11"}, "properties": {"repobilityId": "e1b22b56e5196da5", "scanner": "scanner-primary", "fingerprint": "7b8a01a6640cb343", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9423aa87f79ae14", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/watch-appliance-completions.js:18"}, "properties": {"repobilityId": "abf22547f9a5f69f", "scanner": "scanner-primary", "fingerprint": "d9423aa87f79ae14", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1b5568674a6ba8c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-query.js:7"}, "properties": {"repobilityId": "c042e3b1f825bb57", "scanner": "scanner-primary", "fingerprint": "1b5568674a6ba8c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a04e8f23d220721", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-post-fix-results.js:25"}, "properties": {"repobilityId": "8d66b234feb4b991", "scanner": "scanner-primary", "fingerprint": "5a04e8f23d220721", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07ce6fae9ea51219", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/post-fix-validation.js:10"}, "properties": {"repobilityId": "0972b54bfda43d5a", "scanner": "scanner-primary", "fingerprint": "07ce6fae9ea51219", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0300fcc98aa92a6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-audit.js:161"}, "properties": {"repobilityId": "b40fbe950c1d91a6", "scanner": "scanner-primary", "fingerprint": "d0300fcc98aa92a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a14947350713d11c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/test-confirmation-pass-options.js:390"}, "properties": {"repobilityId": "bf02012c27368544", "scanner": "scanner-primary", "fingerprint": "a14947350713d11c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27a11eb1105eebbb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-before-after-fix.js:24"}, "properties": {"repobilityId": "a016c983fb4883aa", "scanner": "scanner-primary", "fingerprint": "27a11eb1105eebbb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f5861878a64256a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-type-keyword-coverage.js:173"}, "properties": {"repobilityId": "519f50f0e1174c5d", "scanner": "scanner-primary", "fingerprint": "0f5861878a64256a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8fffd542483b00f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/monitor-appliance-features.js:36"}, "properties": {"repobilityId": "7183d6c603c103f9", "scanner": "scanner-primary", "fingerprint": "8fffd542483b00f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d580d7ac94e8cec3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-attribute-contamination.js:83"}, "properties": {"repobilityId": "30208c1191e88f4b", "scanner": "scanner-primary", "fingerprint": "d580d7ac94e8cec3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f64c26220e5daf39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-pending-vs-existing.js:16"}, "properties": {"repobilityId": "1caf76dc8a3e7fdc", "scanner": "scanner-primary", "fingerprint": "f64c26220e5daf39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f637f99c22efb96d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-comprehensive-logger.js:109"}, "properties": {"repobilityId": "cd354577414594b7", "scanner": "scanner-primary", "fingerprint": "f637f99c22efb96d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06db52dec77b5332", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/batch-reverify-last25.js:20"}, "properties": {"repobilityId": "b3d7fb70cc79d48f", "scanner": "scanner-primary", "fingerprint": "06db52dec77b5332", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-269aaf14176ff395", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/debug-7-problem-jobs.js:20"}, "properties": {"repobilityId": "b19c7877ef4bded7", "scanner": "scanner-primary", "fingerprint": "269aaf14176ff395", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-48e0dd64e56e4547", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/live-batch-monitor.js:20"}, "properties": {"repobilityId": "33102c9f25b941b0", "scanner": "scanner-primary", "fingerprint": "48e0dd64e56e4547", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1ddf3f1e3ac4c76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:36"}, "properties": {"repobilityId": "4b0eb9e829cfed7c", "scanner": "scanner-primary", "fingerprint": "a1ddf3f1e3ac4c76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f01374128e6b2b48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/investigate-blank-jobs.js:16"}, "properties": {"repobilityId": "c392c26c4a8edd22", "scanner": "scanner-primary", "fingerprint": "f01374128e6b2b48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b6be798aa9a5e6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/get-correct-job-ids.js:29"}, "properties": {"repobilityId": "64d9212b39c452d7", "scanner": "scanner-primary", "fingerprint": "5b6be798aa9a5e6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0adc7338a18b7657", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/audit-not-found-types.js:26"}, "properties": {"repobilityId": "08dcc4e15bf3427a", "scanner": "scanner-primary", "fingerprint": "0adc7338a18b7657", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1672f1e130397b1f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/february-2026-debug/analyze-sf-50-calls.js:18"}, "properties": {"repobilityId": "60551e1794edcb92", "scanner": "scanner-primary", "fingerprint": "1672f1e130397b1f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e2e693edc0fba11", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/golden-harness/run-harness.js:66"}, "properties": {"repobilityId": "e8931665a1d38bdb", "scanner": "scanner-primary", "fingerprint": "7e2e693edc0fba11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d71d6d7ccc7675dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/select-golden-set.js:155"}, "properties": {"repobilityId": "d92eaa0102bb30d6", "scanner": "scanner-primary", "fingerprint": "d71d6d7ccc7675dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8759fcedffab1241", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-accuracy.js:214"}, "properties": {"repobilityId": "efd5908cb9ab9482", "scanner": "scanner-primary", "fingerprint": "8759fcedffab1241", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b81b7080b315459e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-waste.js:122"}, "properties": {"repobilityId": "3f1b8a40b1b7f016", "scanner": "scanner-primary", "fingerprint": "b81b7080b315459e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-607373029f4b9b6a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/scan-gaps.js:146"}, "properties": {"repobilityId": "1c48069a43de6d76", "scanner": "scanner-primary", "fingerprint": "607373029f4b9b6a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0cc0d9a174fb28aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/platform-audit/lib/common.js:109"}, "properties": {"repobilityId": "2f393cbe0bd80818", "scanner": "scanner-primary", "fingerprint": "0cc0d9a174fb28aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-10fa07d600d8e35d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/__tests__/manual/attribute-request-flow.demo.ts:19"}, "properties": {"repobilityId": "01e3f699e2377966", "scanner": "scanner-primary", "fingerprint": "10fa07d600d8e35d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf3b9015989eae61", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/config/lookups.ts:76"}, "properties": {"repobilityId": "5902ce6118921125", "scanner": "scanner-primary", "fingerprint": "bf3b9015989eae61", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-514a4223660e6ad2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/config/category-config.ts:307"}, "properties": {"repobilityId": "f4885be70e5ccf3c", "scanner": "scanner-primary", "fingerprint": "514a4223660e6ad2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4788864ce46c7692", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/picklist-master/07-category-filter-attributes/lookups.ts:76"}, "properties": {"repobilityId": "fcb7f96dce218d05", "scanner": "scanner-primary", "fingerprint": "4788864ce46c7692", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6048167b335e488b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/scripts/sync-picklists.ts:212"}, "properties": {"repobilityId": "bfd9cbef29eacc89", "scanner": "scanner-primary", "fingerprint": "6048167b335e488b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-29f7641c959b3d82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/test-failed-match-logger.ts:19"}, "properties": {"repobilityId": "cc3f4eb58af86a3c", "scanner": "scanner-primary", "fingerprint": "29f7641c959b3d82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3017474290f6e71d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/test-verification-with-logging.ts:30"}, "properties": {"repobilityId": "97885ff63709e0d3", "scanner": "scanner-primary", "fingerprint": "3017474290f6e71d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-723dcd79631bc5cd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/controllers/salesforce-async-verification.controller.ts:239"}, "properties": {"repobilityId": "161afe588f8b92bb", "scanner": "scanner-primary", "fingerprint": "723dcd79631bc5cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-86778594c93e2052", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/controllers/webhook.controller.ts:164"}, "properties": {"repobilityId": "8fbf7fb8efb98a28", "scanner": "scanner-primary", "fingerprint": "86778594c93e2052", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-46e61e77d077fadd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/salesforce-verification.service.ts:277"}, "properties": {"repobilityId": "5c5bae2748bdde55", "scanner": "scanner-primary", "fingerprint": "46e61e77d077fadd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-00857a20ea03e4db", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/dual-ai-verification.service.ts:93"}, "properties": {"repobilityId": "2160ccf9870049a9", "scanner": "scanner-primary", "fingerprint": "00857a20ea03e4db", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1884679e7c6c67d5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/orchestrator.service.ts:832"}, "properties": {"repobilityId": "0f2d493221a831b3", "scanner": "scanner-primary", "fingerprint": "1884679e7c6c67d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f08f6d96fbb8a05d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/self-healing/error-detector.service.ts:311"}, "properties": {"repobilityId": "42c14fe616bb0f21", "scanner": "scanner-primary", "fingerprint": "f08f6d96fbb8a05d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8c0d98268f741ce3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sync-picklists-from-production.js:9"}, "properties": {"repobilityId": "cdbca188e741dea1", "scanner": "scanner-primary", "fingerprint": "8c0d98268f741ce3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sync-picklists-from-production.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-0740853f4a93002e", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/services/picklist-matcher.service.ts:1966"}, "properties": {"repobilityId": "503e2b3627e8f60f", "scanner": "scanner-primary", "fingerprint": "0740853f4a93002e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/services/picklist-matcher.service.ts"}, "region": {"startLine": 1966}}}]}, {"ruleId": "scanner-e2d3206ffaffb834", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/services/picklist-matcher.service.ts:1962"}, "properties": {"repobilityId": "e2b6e3d21435685e", "scanner": "scanner-primary", "fingerprint": "e2d3206ffaffb834", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/services/picklist-matcher.service.ts"}, "region": {"startLine": 1962}}}]}, {"ruleId": "scanner-d076e8240b0c9880", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/services/self-healing/comprehensive-fix-applicator.service.ts:4"}, "properties": {"repobilityId": "d0e8efc84e7431d4", "scanner": "scanner-primary", "fingerprint": "d076e8240b0c9880", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/services/self-healing/comprehensive-fix-applicator.service.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-e6670f32b5bd9075", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1f37420fcbc4160e", "scanner": "scanner-primary", "fingerprint": "e6670f32b5bd9075", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-cd.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-e6670f32b5bd9075", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2da2b5dc0d69cebc", "scanner": "scanner-primary", "fingerprint": "e6670f32b5bd9075", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-cd.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-9803a825337e2e7a", "level": "note", "message": {"text": "Very large file: archive/dead-code-2026-04-22/title-schema-by-category-OLD-BACKUP.ts (6791 lines)"}, "properties": {"repobilityId": "8eb3cdf02772110b", "scanner": "scanner-primary", "fingerprint": "9803a825337e2e7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-64879a54ff2eaa7a", "level": "note", "message": {"text": "Very large file: src/config/title-schema-by-category.ts (7291 lines)"}, "properties": {"repobilityId": "cec5159a488a85b6", "scanner": "scanner-primary", "fingerprint": "64879a54ff2eaa7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5eb14db4281e9063", "level": "note", "message": {"text": "Very large file: src/controllers/picklist.controller.ts (1441 lines)"}, "properties": {"repobilityId": "37d175b161ac7e63", "scanner": "scanner-primary", "fingerprint": "5eb14db4281e9063", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bf436cd866ca0dc8", "level": "note", "message": {"text": "Very large file: src/services/picklist-matcher.service.ts (1989 lines)"}, "properties": {"repobilityId": "8ef15d13fa376540", "scanner": "scanner-primary", "fingerprint": "bf436cd866ca0dc8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-008a2a2e25e58e7c", "level": "note", "message": {"text": "Very large file: src/services/seo-title-generator.service.ts (1431 lines)"}, "properties": {"repobilityId": "959a36651c001b7b", "scanner": "scanner-primary", "fingerprint": "008a2a2e25e58e7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ee7af7a4c50cf0bf", "level": "note", "message": {"text": "Very large file: src/services/response-builder.service.ts (1351 lines)"}, "properties": {"repobilityId": "15ac269a54fd41e9", "scanner": "scanner-primary", "fingerprint": "ee7af7a4c50cf0bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ecba70ee2fe2755", "level": "note", "message": {"text": "Very large file: src/services/research.service.ts (2251 lines)"}, "properties": {"repobilityId": "a62e596fff76bb68", "scanner": "scanner-primary", "fingerprint": "9ecba70ee2fe2755", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dd216c4a43fd60a2", "level": "note", "message": {"text": "Very large file: src/services/dual-ai-verification.service.ts (15450 lines)"}, "properties": {"repobilityId": "9366cd47896ed156", "scanner": "scanner-primary", "fingerprint": "dd216c4a43fd60a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6f38b9dd217b6078", "level": "note", "message": {"text": "Very large file: src/services/pipelines/non-appliance-pipeline.ts (1265 lines)"}, "properties": {"repobilityId": "78bf734ced566edf", "scanner": "scanner-primary", "fingerprint": "6f38b9dd217b6078", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5e736e93b709c948", "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": "5578637c4202241e", "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": "b251cf8d07cc4dd3", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "8e406bb1daf5b303", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "181727a027af0cf0", "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": "be98fcace1632819", "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": "4012d36d5a8dfcd0", "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": "83cd26215ce29401", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-b2e735f9afee83d8", "level": "note", "message": {"text": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/CategoryClassifierAgent/schema.ts:30"}, "properties": {"repobilityId": "26601c3f44f9536a", "scanner": "scanner-primary", "fingerprint": "b2e735f9afee83d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5c91e7b11d510f6c", "level": "note", "message": {"text": "Legacy-named symbol `Category_Legacy` in archive/dead-code-2026-04-22/agents/orchestrator/VerificationOrchestrator.ts:378"}, "properties": {"repobilityId": "3e5a4ff48592c1be", "scanner": "scanner-primary", "fingerprint": "5c91e7b11d510f6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-61dfc760f2870d4d", "level": "note", "message": {"text": "Legacy-named symbol `Brand_Legacy` in scripts/test-debug-logger.ts:22"}, "properties": {"repobilityId": "4eeb203bbea7610c", "scanner": "scanner-primary", "fingerprint": "61dfc760f2870d4d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d8debcfcb43d0482", "level": "note", "message": {"text": "Legacy-named symbol `Category_Legacy` in scripts/verify-batch.js:147"}, "properties": {"repobilityId": "538d38df1335af93", "scanner": "scanner-primary", "fingerprint": "d8debcfcb43d0482", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f4b7b45ba1ca88e9", "level": "note", "message": {"text": "Legacy-named symbol `daysOld` in scripts/resend-pending-creation-requests.js:144"}, "properties": {"repobilityId": "301823803680baaf", "scanner": "scanner-primary", "fingerprint": "f4b7b45ba1ca88e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-10f78f2fdb4ede01", "level": "note", "message": {"text": "Legacy-named symbol `Product_Title_Legacy` in scripts/validate-ai-vs-raw.js:40"}, "properties": {"repobilityId": "7a22cecd98723731", "scanner": "scanner-primary", "fingerprint": "10f78f2fdb4ede01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-321ee55b185631da", "level": "note", "message": {"text": "Legacy-named symbol `Brand_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-v2.js:11"}, "properties": {"repobilityId": "997c619c73569a91", "scanner": "scanner-primary", "fingerprint": "321ee55b185631da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-53a73bebd85e5c05", "level": "note", "message": {"text": "Legacy-named symbol `Product_Title_Legacy` in scripts/archive/february-2026-debug/test-confirmation-pass-options.js:65"}, "properties": {"repobilityId": "1af9f888569e3c1a", "scanner": "scanner-primary", "fingerprint": "53a73bebd85e5c05", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d78713d10ec6276", "level": "note", "message": {"text": "Legacy-named symbol `wasInOld` in scripts/archive/february-2026-debug/compare-old-vs-new-50-calls.js:163"}, "properties": {"repobilityId": "d059f069bd7f55bc", "scanner": "scanner-primary", "fingerprint": "0d78713d10ec6276", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8cbae95720895bd4", "level": "note", "message": {"text": "Legacy-named symbol `Model_Number_Legacy` in scripts/archive/february-2026-debug/analyze-sf-50-calls.js:59"}, "properties": {"repobilityId": "83620d811ac103c4", "scanner": "scanner-primary", "fingerprint": "8cbae95720895bd4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3b962fd7b6f58075", "level": "note", "message": {"text": "Legacy-named symbol `Brand_Legacy` in src/types/salesforce.types.ts:62"}, "properties": {"repobilityId": "6124b54d36031b85", "scanner": "scanner-primary", "fingerprint": "3b962fd7b6f58075", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fe5e841e17614c4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/types/salesforce.types.ts:32"}, "properties": {"repobilityId": "ef939dddbc958a01", "scanner": "scanner-primary", "fingerprint": "fe5e841e17614c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0144fdd326e3feac", "level": "note", "message": {"text": "Legacy-named symbol `Brand_Legacy` in src/config/audit-prompt.ts:87"}, "properties": {"repobilityId": "cb341fbb46d5e928", "scanner": "scanner-primary", "fingerprint": "0144fdd326e3feac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3d760499cc3825cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/config/category-aliases.ts:76"}, "properties": {"repobilityId": "33575169ce049928", "scanner": "scanner-primary", "fingerprint": "3d760499cc3825cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9a215e29bd0e7f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/html-generator.ts:80"}, "properties": {"repobilityId": "14fa89f8cc47a6a5", "scanner": "scanner-primary", "fingerprint": "d9a215e29bd0e7f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93648b329134e1d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/controllers/salesforce-async-verification.controller.ts:41"}, "properties": {"repobilityId": "13e61b70ebb8042c", "scanner": "scanner-primary", "fingerprint": "93648b329134e1d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f8e61a231b9399a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/controllers/picklist.controller.ts:565"}, "properties": {"repobilityId": "88a38fd5dc4b7e4c", "scanner": "scanner-primary", "fingerprint": "6f8e61a231b9399a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2e26c80fc17cffa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/picklist-matcher.service.ts:194"}, "properties": {"repobilityId": "412b7b7b863eee55", "scanner": "scanner-primary", "fingerprint": "f2e26c80fc17cffa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6c321824e8475df", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/seo-title-generator.service.ts:240"}, "properties": {"repobilityId": "f2b7debdd6d6d98f", "scanner": "scanner-primary", "fingerprint": "a6c321824e8475df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16de7962847ecad7", "level": "note", "message": {"text": "Legacy-named symbol `normalizedOld` in src/services/response-comparison.service.ts:170"}, "properties": {"repobilityId": "8a28bc168e1f14c5", "scanner": "scanner-primary", "fingerprint": "16de7962847ecad7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3c445fd34ef0cfeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/research.service.ts:36"}, "properties": {"repobilityId": "9a01520f2b58df16", "scanner": "scanner-primary", "fingerprint": "3c445fd34ef0cfeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d34b43f41bf31f61", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/webhook.service.ts:84"}, "properties": {"repobilityId": "b8cf0831ddf18e1f", "scanner": "scanner-primary", "fingerprint": "d34b43f41bf31f61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53579b4880801064", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/tracking.service.ts:261"}, "properties": {"repobilityId": "d6dbb0f42b8ef218", "scanner": "scanner-primary", "fingerprint": "53579b4880801064", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f14cefea381f0d53", "level": "note", "message": {"text": "Legacy-named symbol `_Legacy` in src/services/dual-ai-verification.service.ts:282"}, "properties": {"repobilityId": "3c8ff70632a7d860", "scanner": "scanner-primary", "fingerprint": "f14cefea381f0d53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a1999889315cc0cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/dual-ai-verification.service.ts:544"}, "properties": {"repobilityId": "6685e46c01a2f32b", "scanner": "scanner-primary", "fingerprint": "a1999889315cc0cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d30f886e1f63493b", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/services/self-healing/orchestrator.service.ts:854"}, "properties": {"repobilityId": "6007f95144c7187a", "scanner": "scanner-primary", "fingerprint": "d30f886e1f63493b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef06f0c52da6406c", "level": "note", "message": {"text": "Legacy-named symbol `Product_Title_Legacy` in src/services/pipelines/non-appliance-pipeline.ts:103"}, "properties": {"repobilityId": "ce25a92a936c3a77", "scanner": "scanner-primary", "fingerprint": "ef06f0c52da6406c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c7188dfa8ed1bd71", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/services/pipelines/non-appliance-pipeline.ts:696"}, "properties": {"repobilityId": "720c5fd49b783d15", "scanner": "scanner-primary", "fingerprint": "c7188dfa8ed1bd71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a88fa7ff7218af5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/pipelines/appliance-pipeline.ts:38"}, "properties": {"repobilityId": "1e02fc6602cd3672", "scanner": "scanner-primary", "fingerprint": "7a88fa7ff7218af5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fc6012fa1329acd", "level": "note", "message": {"text": "Legacy-named symbol `Brand_Legacy` in src/services/audit/audit-review.service.ts:116"}, "properties": {"repobilityId": "d4183999842a1393", "scanner": "scanner-primary", "fingerprint": "7fc6012fa1329acd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2293706d3453c3a3", "level": "note", "message": {"text": "Unused endpoint: POST /trigger"}, "properties": {"repobilityId": "23c67d2bc436c7e9", "scanner": "scanner-primary", "fingerprint": "2293706d3453c3a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c64e49d86f45d905", "level": "note", "message": {"text": "Unused endpoint: USE /api/self-healing"}, "properties": {"repobilityId": "3be552be25dc934d", "scanner": "scanner-primary", "fingerprint": "c64e49d86f45d905", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76889df7c8e240c5", "level": "note", "message": {"text": "Unused endpoint: USE /api/"}, "properties": {"repobilityId": "c2555d4c1a0fb6c3", "scanner": "scanner-primary", "fingerprint": "76889df7c8e240c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d504b80adc9409ec", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard"}, "properties": {"repobilityId": "3e1bb8ade43b3315", "scanner": "scanner-primary", "fingerprint": "d504b80adc9409ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c4d06b87ea984dc", "level": "note", "message": {"text": "Unused endpoint: GET /performance"}, "properties": {"repobilityId": "6d51461563facff8", "scanner": "scanner-primary", "fingerprint": "4c4d06b87ea984dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5e0f160e74fc290a", "level": "note", "message": {"text": "Unused endpoint: GET /ai-providers"}, "properties": {"repobilityId": "9322d38ce18a5921", "scanner": "scanner-primary", "fingerprint": "5e0f160e74fc290a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eaf88833229f8f1c", "level": "note", "message": {"text": "Unused endpoint: GET /consensus"}, "properties": {"repobilityId": "8ea791ef81c52131", "scanner": "scanner-primary", "fingerprint": "eaf88833229f8f1c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9260174de75b32ba", "level": "note", "message": {"text": "Unused endpoint: GET /categories"}, "properties": {"repobilityId": "ba68a68f3dc742fb", "scanner": "scanner-primary", "fingerprint": "9260174de75b32ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-01c0e6ca7f504cf5", "level": "note", "message": {"text": "Unused endpoint: GET /brands"}, "properties": {"repobilityId": "72059e21541dad95", "scanner": "scanner-primary", "fingerprint": "01c0e6ca7f504cf5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd4763e6e0fcaa39", "level": "note", "message": {"text": "Unused endpoint: GET /issues"}, "properties": {"repobilityId": "38509eef2cecdb20", "scanner": "scanner-primary", "fingerprint": "cd4763e6e0fcaa39", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-64809b790b48b9ed", "level": "note", "message": {"text": "Unused endpoint: GET /disagreements"}, "properties": {"repobilityId": "dfeeab56e0a5b517", "scanner": "scanner-primary", "fingerprint": "64809b790b48b9ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2c940bad5d5155b4", "level": "note", "message": {"text": "Unused endpoint: GET /timeseries"}, "properties": {"repobilityId": "b9cd37fbd31b1694", "scanner": "scanner-primary", "fingerprint": "2c940bad5d5155b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80bd7ba0b62c523e", "level": "note", "message": {"text": "Unused endpoint: GET /failures"}, "properties": {"repobilityId": "0cce0f28e7b304a3", "scanner": "scanner-primary", "fingerprint": "80bd7ba0b62c523e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0477341a3ca0d127", "level": "note", "message": {"text": "Unused endpoint: GET /low-confidence"}, "properties": {"repobilityId": "1f4e608c471c228f", "scanner": "scanner-primary", "fingerprint": "0477341a3ca0d127", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d16e4fa529c520e9", "level": "note", "message": {"text": "Unused endpoint: GET /search"}, "properties": {"repobilityId": "efda348585b4c1fd", "scanner": "scanner-primary", "fingerprint": "d16e4fa529c520e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-979e75896a4221af", "level": "note", "message": {"text": "Unused endpoint: GET /tracking/:trackingId"}, "properties": {"repobilityId": "d5d43b8b4c2745c5", "scanner": "scanner-primary", "fingerprint": "979e75896a4221af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-529b5de4022633e5", "level": "note", "message": {"text": "Unused endpoint: GET /session/:sessionId"}, "properties": {"repobilityId": "69aa9b03a31519d3", "scanner": "scanner-primary", "fingerprint": "529b5de4022633e5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ab9cfd79040b6d0", "level": "note", "message": {"text": "Unused endpoint: GET /catalog/:catalogId"}, "properties": {"repobilityId": "80f28428b45903f8", "scanner": "scanner-primary", "fingerprint": "8ab9cfd79040b6d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e686634beeea0bb8", "level": "note", "message": {"text": "Unused endpoint: GET /export"}, "properties": {"repobilityId": "7eb9d2cab389f9df", "scanner": "scanner-primary", "fingerprint": "e686634beeea0bb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67db81ff589a2912", "level": "note", "message": {"text": "Unused endpoint: GET /alerts"}, "properties": {"repobilityId": "a3cca97876b2e426", "scanner": "scanner-primary", "fingerprint": "67db81ff589a2912", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d0db19de9b4f8ff1", "level": "note", "message": {"text": "Unused endpoint: POST /salesforce"}, "properties": {"repobilityId": "929f88d518419a70", "scanner": "scanner-primary", "fingerprint": "d0db19de9b4f8ff1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34f64dd9c4d126f3", "level": "note", "message": {"text": "Unused endpoint: GET /salesforce/status/:jobId"}, "properties": {"repobilityId": "a9ee0bd931797da3", "scanner": "scanner-primary", "fingerprint": "34f64dd9c4d126f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fbf770a81f019552", "level": "note", "message": {"text": "Unused endpoint: GET /salesforce/queue/stats"}, "properties": {"repobilityId": "e5f556ca06805484", "scanner": "scanner-primary", "fingerprint": "fbf770a81f019552", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1b7c8a249fd6b210", "level": "note", "message": {"text": "Unused endpoint: POST /salesforce/audit"}, "properties": {"repobilityId": "85d20c8e0e00641f", "scanner": "scanner-primary", "fingerprint": "1b7c8a249fd6b210", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-da5ea9f82a74be82", "level": "note", "message": {"text": "Unused endpoint: GET /salesforce/audit/status/:auditId"}, "properties": {"repobilityId": "bb0121744feb7d91", "scanner": "scanner-primary", "fingerprint": "da5ea9f82a74be82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d895631964d071a", "level": "note", "message": {"text": "Unused endpoint: POST /salesforce/model-check"}, "properties": {"repobilityId": "60bd96e31ba33f8c", "scanner": "scanner-primary", "fingerprint": "3d895631964d071a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e1d837ea0ce9084", "level": "note", "message": {"text": "Unused endpoint: POST /salesforce/acknowledge/:jobId"}, "properties": {"repobilityId": "70108c90a284b552", "scanner": "scanner-primary", "fingerprint": "4e1d837ea0ce9084", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8e40b31cd0a27b6", "level": "note", "message": {"text": "Unused endpoint: GET /trends/by-field"}, "properties": {"repobilityId": "5f583d2c768ef764", "scanner": "scanner-primary", "fingerprint": "e8e40b31cd0a27b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-680af537bf0580f8", "level": "note", "message": {"text": "Unused endpoint: GET /trends/by-category"}, "properties": {"repobilityId": "d31c4716e770b15b", "scanner": "scanner-primary", "fingerprint": "680af537bf0580f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1b7bee247ffc801", "level": "note", "message": {"text": "Unused endpoint: GET /summary"}, "properties": {"repobilityId": "95ee3e1e1b1746b5", "scanner": "scanner-primary", "fingerprint": "e1b7bee247ffc801", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1f77f6f75187981c", "level": "note", "message": {"text": "Unused endpoint: GET /recommendations"}, "properties": {"repobilityId": "ad21389c81f455ab", "scanner": "scanner-primary", "fingerprint": "1f77f6f75187981c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd8dc4599ec52a08", "level": "note", "message": {"text": "Unused endpoint: GET /stats"}, "properties": {"repobilityId": "514e1c81b4af2b6a", "scanner": "scanner-primary", "fingerprint": "cd8dc4599ec52a08", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-545327c76a6e16f0", "level": "note", "message": {"text": "Unused endpoint: GET /styles"}, "properties": {"repobilityId": "07d8d8b8031821e5", "scanner": "scanner-primary", "fingerprint": "545327c76a6e16f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e3d92f17d10fe78b", "level": "note", "message": {"text": "Unused endpoint: GET /attributes"}, "properties": {"repobilityId": "dc62ab94fd54c53f", "scanner": "scanner-primary", "fingerprint": "e3d92f17d10fe78b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9630d39f953a327c", "level": "note", "message": {"text": "Unused endpoint: GET /types"}, "properties": {"repobilityId": "d4e8989a097bb30c", "scanner": "scanner-primary", "fingerprint": "9630d39f953a327c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be399b1017cbee52", "level": "note", "message": {"text": "Unused endpoint: GET /departments"}, "properties": {"repobilityId": "6da3dc47ddd6ebfb", "scanner": "scanner-primary", "fingerprint": "be399b1017cbee52", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-65d583e531dc44a0", "level": "note", "message": {"text": "Unused endpoint: GET /families"}, "properties": {"repobilityId": "2a0d32d36a6d6a94", "scanner": "scanner-primary", "fingerprint": "65d583e531dc44a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a6c1f2bdec3b862", "level": "note", "message": {"text": "Unused endpoint: GET /brands/:id"}, "properties": {"repobilityId": "37942211a005e74a", "scanner": "scanner-primary", "fingerprint": "1a6c1f2bdec3b862", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-723f0fa6abf23823", "level": "note", "message": {"text": "Unused endpoint: GET /categories/:id"}, "properties": {"repobilityId": "5ccb58bec9413895", "scanner": "scanner-primary", "fingerprint": "723f0fa6abf23823", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-569dbff1cc352ba3", "level": "note", "message": {"text": "Unused endpoint: POST /brands"}, "properties": {"repobilityId": "de896a3cf6dcc79d", "scanner": "scanner-primary", "fingerprint": "569dbff1cc352ba3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1033c7a1d3884505", "level": "note", "message": {"text": "Unused endpoint: POST /categories"}, "properties": {"repobilityId": "cc41d88b5fd84c35", "scanner": "scanner-primary", "fingerprint": "1033c7a1d3884505", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f3752613d4620eb7", "level": "note", "message": {"text": "Unused endpoint: POST /styles"}, "properties": {"repobilityId": "1c12332a4a338432", "scanner": "scanner-primary", "fingerprint": "f3752613d4620eb7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b8884df3208e7408", "level": "note", "message": {"text": "Unused endpoint: POST /attributes"}, "properties": {"repobilityId": "8efc59abef13b6e8", "scanner": "scanner-primary", "fingerprint": "b8884df3208e7408", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa413208496243a5", "level": "note", "message": {"text": "Unused endpoint: POST /sync"}, "properties": {"repobilityId": "e0069e81d4290efc", "scanner": "scanner-primary", "fingerprint": "fa413208496243a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8bb2320a8eae602d", "level": "note", "message": {"text": "Unused endpoint: GET /sync/pending"}, "properties": {"repobilityId": "ea0c6bcfc01557f5", "scanner": "scanner-primary", "fingerprint": "8bb2320a8eae602d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-092c418a758945ac", "level": "note", "message": {"text": "Unused endpoint: GET /sync/pending/:pendingId"}, "properties": {"repobilityId": "2324d477d7847560", "scanner": "scanner-primary", "fingerprint": "092c418a758945ac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e1bce4b96ae279c", "level": "note", "message": {"text": "Unused endpoint: POST /sync/pending/:pendingId/approve"}, "properties": {"repobilityId": "92261bbef40369a0", "scanner": "scanner-primary", "fingerprint": "3e1bce4b96ae279c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-747c3b04a75a4902", "level": "note", "message": {"text": "Unused endpoint: POST /sync/pending/:pendingId/reject"}, "properties": {"repobilityId": "51e05dfc4d2b519e", "scanner": "scanner-primary", "fingerprint": "747c3b04a75a4902", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a86b172965257cc2", "level": "note", "message": {"text": "Unused endpoint: POST /sync/pending/:pendingId/update-attribute-ids"}, "properties": {"repobilityId": "764db9d390f38f25", "scanner": "scanner-primary", "fingerprint": "a86b172965257cc2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1ba94f547788ce59", "level": "note", "message": {"text": "Unused endpoint: GET /sync/logs"}, "properties": {"repobilityId": "17e23ce6d7f03b66", "scanner": "scanner-primary", "fingerprint": "1ba94f547788ce59", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}