{"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-a7b3db9745e9c497", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7558a77c166e1ac", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/activity/ActivityLogPanel.tsx:94", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/activity/ActivityLogPanel.tsx:94"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-586c9cfbecda30b9", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/CommandCenter.tsx:2744", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/CommandCenter.tsx:2744"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa1426f7b92e0881", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/home/ChatPanel.tsx:917", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/home/ChatPanel.tsx:917"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b9b7839cd1f4541", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/app/lib/rich-notes.tsx:47", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/app/lib/rich-notes.tsx:47"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b26dff81118f47cc", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskDetailDialog.tsx:1692", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskDetailDialog.tsx:1692"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de02e3e678294b4a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskList.tsx:553", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskList.tsx:553"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c591e66b2fdb0d9e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/FloatingTaskBox.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/FloatingTaskBox.tsx:161"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f026f20bde5286e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/TodayFeed.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/TodayFeed.tsx:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82a639daaf7f2cea", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/DailyBriefDialog.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/DailyBriefDialog.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d137512152a42e4", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceProposalsPanel.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceProposalsPanel.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57f8962230a85195", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/OrgChartPanel.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/OrgChartPanel.tsx:129"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59086b172783b3fa", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspacePositionsPanel.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspacePositionsPanel.tsx:115"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e329a594dc72cadc", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceMemberRow.tsx:157", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceMemberRow.tsx:157"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f6fda52134927c1", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceAssetsPanel.tsx:182", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceAssetsPanel.tsx:182"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d7e0c0a21a0f105", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/expenses/ExpensesPanel.tsx:374", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/expenses/ExpensesPanel.tsx:374"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6861ee79ef7ec451", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/clients/ClientsPanel.tsx:348", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/clients/ClientsPanel.tsx:348"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ce29201802971f6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/agenda/AgendaWorkDialog.tsx:71", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/agenda/AgendaWorkDialog.tsx:71"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86b0c74a59efac85", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/NotificationCenter.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/NotificationCenter.tsx:63"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b75371c2b5f05537", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/WorkDock.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/WorkDock.tsx:167"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a53e5f0f0d04685", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/DonnitRail.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/DonnitRail.tsx:183"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-848e8bbfd9738f80", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/SupportRail.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/SupportRail.tsx:111"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-404c228324cdfb0d", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/PositionSwitcher.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/PositionSwitcher.tsx:57"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b69dea99e737a6c", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/brain/BrainVersionHistory.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/brain/BrainVersionHistory.tsx:163"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0497916666285412", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/TeamViewPanel.tsx:352", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/TeamViewPanel.tsx:352"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4796b4f3dfee66e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ManagerTeamGrid.tsx:185", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ManagerTeamGrid.tsx:185"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30101f5cbb9bdd34", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ReportingPanel.tsx:119", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ReportingPanel.tsx:119"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1f649e2e6d15ab6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/profiles/PositionProfilesPanel.tsx:1211", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/profiles/PositionProfilesPanel.tsx:1211"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c05b76c0c99995a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/inbox/SuggestionCard.tsx:302", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/inbox/SuggestionCard.tsx:302"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8400fc06b0b6206", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-validate-live.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-validate-live.ts: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-a18ea5876c6f6227", "name": "Stray `console.log` in TS/JS \u2014 scripts/repair-starter-pack.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/repair-starter-pack.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd95b60eb418de5d", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-advisory-corrections.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-advisory-corrections.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e367f7a731b36089", "name": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-test-pattern.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-test-pattern.ts: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-c852d7575958f0a2", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-northbeam-verify.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-northbeam-verify.ts:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5299c8b7a7158562", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-match-repro.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-match-repro.ts: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-7ef2b0512037e8f4", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-assistant-brain.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-assistant-brain.ts:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-26fb5383f87a56e9", "name": "Stray `console.log` in TS/JS \u2014 scripts/dedup-brain.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dedup-brain.ts:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0bb8c4a151e1bbd5", "name": "Stray `console.log` in TS/JS \u2014 scripts/score-chat-intelligence.ts:433", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-chat-intelligence.ts:433"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55a1ecc24c1892a3", "name": "Stray `console.log` in TS/JS \u2014 scripts/recall-qa-harness.ts:248", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recall-qa-harness.ts:248"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae254f8ed0056011", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-demo.ts:502", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-demo.ts:502"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f562ee8ff2973aa5", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-team-import-live.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-team-import-live.ts: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-ecc4066689a13a37", "name": "Stray `console.log` in TS/JS \u2014 scripts/recall-intent-probe.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recall-intent-probe.ts:63"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a75e50af7c79617", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-token.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-token.ts: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-4e8dd9bfe7892c07", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-route-repro.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-route-repro.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20aa682c8db5d9dd", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-test-account-state.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-test-account-state.ts: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-f1b0ab4f1b778b4b", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-plan.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-plan.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-04c5151ee98efe84", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-positions.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-positions.ts: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-c8f651cee424fa19", "name": "Stray `console.log` in TS/JS \u2014 scripts/score-recall.ts:332", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-recall.ts:332"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-483603e357f16460", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-nudge-locations.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-nudge-locations.ts: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-19c16b1027ee18a9", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-chat-midyear-repro.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-chat-midyear-repro.ts: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-55147bfee28825d2", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-nudge-live.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-nudge-live.ts: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-af0034750d40c0df", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-quality.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-quality.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cf0c26855d2d1be", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-assistant-brain.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-assistant-brain.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b6a46e4a9e45f12", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-execute-smoke.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-execute-smoke.ts: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-3a1197fec30ffa8d", "name": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test2.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test2.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7315c3532849cfb", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-roster.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-roster.ts: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-e32a21004286e582", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-chat-sources.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-chat-sources.ts:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47d1cc60642bbb83", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-knowledge.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-knowledge.ts: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-a1b5302e9a28fc1c", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-anticipation-live.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-anticipation-live.ts: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-00b23a702689dd82", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-agency.ts:358", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-agency.ts:358"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b059725b667ae95", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-goal-task-trace.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-goal-task-trace.ts: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-e5285968198644b8", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-finance-brain.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-finance-brain.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e78ce0abe18cc5a9", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-org-braindump.ts:229", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-org-braindump.ts:229"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25743f4a8035d35e", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-recent-tasks.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-recent-tasks.ts:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51d99d8b35350a6f", "name": "Stray `console.log` in TS/JS \u2014 scripts/quarantine-polluted-workflows.ts:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quarantine-polluted-workflows.ts:88"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f176fc47ab742c4", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-recurring-history.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-recurring-history.ts: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-987e3fe4bd7e96de", "name": "Stray `console.log` in TS/JS \u2014 scripts/comp-workspace.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/comp-workspace.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3f7f49ace3558e7", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-outcomes.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-outcomes.ts:90"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a554b14d8f89f026", "name": "Stray `console.log` in TS/JS \u2014 scripts/repair-subtask-dates.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/repair-subtask-dates.ts: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-73e82427df648974", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-goal-columns.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-goal-columns.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-390b2c704dad361a", "name": "Stray `console.log` in TS/JS \u2014 scripts/reset-account-full.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reset-account-full.ts: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-6280c491e05b0c73", "name": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test.ts: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-792d65982bff129b", "name": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-dmarc-suggestions.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-dmarc-suggestions.ts: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-8f8a1766a77eeffd", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-resolve-aaron.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-resolve-aaron.ts: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-35f29b1c221307af", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-graph.ts:238", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-graph.ts:238"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fbece56a943b3a7", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-task-body-markdown.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-task-body-markdown.ts:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9560e09a5825eae9", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-northbeam-demo.ts:489", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-northbeam-demo.ts:489"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81122a149fe0ccf6", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-starter-card.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-starter-card.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-957b815b1a027103", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-export-sample.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-export-sample.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09a0815343aec23b", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-capture-note.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-capture-note.ts: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-346f0185b0bab257", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-suggestions.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-suggestions.ts:47"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7692be2a2e16107", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-inbox-filter.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-inbox-filter.ts:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a685f4da1d4fb8e", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-mismatch-evidence.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-mismatch-evidence.ts: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-88beb9774f5379cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/score-recall-live.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-recall-live.ts: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-ecaa57c01c0cd6b0", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-hr-brain.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-hr-brain.ts: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-6f05d34128a4033c", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-tenant-isolation.ts:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-tenant-isolation.ts:94"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1dc41a72621acfc0", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-position-workflow.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-position-workflow.ts:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-477556ec976fc214", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-cosine-cutoff.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-cosine-cutoff.ts:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-859a04464c70b3f7", "name": "Stray `console.log` in TS/JS \u2014 scripts/reset-test-account.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reset-test-account.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ecb66f4453961fd", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-universal-brain.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-universal-brain.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-daac4beed20eed23", "name": "Stray `console.log` in TS/JS \u2014 scripts/scaffold-existing-positions.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scaffold-existing-positions.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a0ffe44e09143f7", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-sop-generalization.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-sop-generalization.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a69992d84caf293", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-search.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-search.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-46c22ae76c6c0a2b", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-eval-finance-inter.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-eval-finance-inter.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ed92b12a77e52be", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-check-dupes.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-check-dupes.ts:47"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-64922f6ed123bc2f", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-core-workflow.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-core-workflow.ts:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09a83a606a841670", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-team-template.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-team-template.ts: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-390d1f248207f683", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-cron-run-check.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-cron-run-check.ts: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-70dbe834b544f7d8", "name": "Stray `console.log` in TS/JS \u2014 scripts/diag-reset-demo-task.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-reset-demo-task.ts: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-1966adf55bcd76eb", "name": "Stray `console.log` in TS/JS \u2014 scripts/embed-brain.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/embed-brain.ts: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-250256150dc59054", "name": "Stray `console.log` in TS/JS \u2014 scripts/score-routing.ts:179", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-routing.ts:179"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7617c968c63f7685", "name": "Stray `console.log` in TS/JS \u2014 scripts/import-foundation.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-foundation.ts: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-2f53bf528a3dd149", "name": "Stray `console.log` in TS/JS \u2014 script/build.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 script/build.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da39cf9a765680e3", "name": "Stray `console.log` in TS/JS \u2014 server/app.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/app.ts: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-e7f0a16f8199a393", "name": "Stray `console.log` in TS/JS \u2014 server/boot-probes.ts:166", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/boot-probes.ts:166"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ac3600615d1e08e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 handoff/prototype/settings.jsx:263", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 handoff/prototype/settings.jsx:263"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52d058f88deba04f", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/App.tsx:278", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/App.tsx:278"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8df37d9232a59094", "name": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a54808af6750c467", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/screens/CommandCenter.tsx:843", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/screens/CommandCenter.tsx:843"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-692fcf639297ed5c", "name": "Insecure pattern 'dangerous_innerhtml' in client/src/app/lib/rich-notes.tsx:47", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/app/lib/rich-notes.tsx:47"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c23ed87fb72ffdb", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/tasks/RichNoteEditor.tsx:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/tasks/RichNoteEditor.tsx:75"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be88043d468711f4", "name": "Possible secret in scripts/verify-tenant-isolation.ts", "shortDescription": {"text": "Possible secret in scripts/verify-tenant-isolation.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d89f16fb5f5d5bfd", "name": "Insecure pattern 'node_child_process' in scripts/verify-tenant-isolation.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verify-tenant-isolation.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95dd74d3e222040c", "name": "Insecure pattern 'node_child_process' in server/integrations.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server/integrations.ts:1"}, "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-f472153257bb4e78", "name": "Insecure pattern 'dangerous_innerhtml' in handoff/prototype/settings.jsx:263", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in handoff/prototype/settings.jsx:263"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04ca0f90fcc9a5e5", "name": "Very large file: client/src/components/DonnitLandingPage.tsx (1260 lines)", "shortDescription": {"text": "Very large file: client/src/components/DonnitLandingPage.tsx (1260 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-0fdbc5d8accbeb6f", "name": "Very large file: client/src/app/screens/CommandCenter.tsx (3817 lines)", "shortDescription": {"text": "Very large file: client/src/app/screens/CommandCenter.tsx (3817 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-d8ea42a4e1f86e0c", "name": "Very large file: client/src/app/screens/home/OnboardingWizard.tsx (1741 lines)", "shortDescription": {"text": "Very large file: client/src/app/screens/home/OnboardingWizard.tsx (1741 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-59bdd8244a890809", "name": "Very large file: client/src/app/tasks/TaskDetailDialog.tsx (3569 lines)", "shortDescription": {"text": "Very large file: client/src/app/tasks/TaskDetailDialog.tsx (3569 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-5368bbe45d3bc099", "name": "Very large file: client/src/app/admin/WorkspaceSettingsDialog.tsx (1234 lines)", "shortDescription": {"text": "Very large file: client/src/app/admin/WorkspaceSettingsDialog.tsx (1234 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-a0a68beb639849e0", "name": "Very large file: client/src/app/redesign/Tasks.tsx (1230 lines)", "shortDescription": {"text": "Very large file: client/src/app/redesign/Tasks.tsx (1230 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-fa8221833b6a78a0", "name": "Very large file: client/src/app/redesign/Home.tsx (1378 lines)", "shortDescription": {"text": "Very large file: client/src/app/redesign/Home.tsx (1378 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-80ffb71a1b20ffff", "name": "Very large file: client/src/app/profiles/PositionProfilesPanel.tsx (2804 lines)", "shortDescription": {"text": "Very large file: client/src/app/profiles/PositionProfilesPanel.tsx (2804 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-06b12379466549b2", "name": "Very large file: server/chat-parser.test.ts (2457 lines)", "shortDescription": {"text": "Very large file: server/chat-parser.test.ts (2457 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-b10682facf444d5f", "name": "Very large file: server/integrations.ts (1492 lines)", "shortDescription": {"text": "Very large file: server/integrations.ts (1492 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-6949cca170b0c4db", "name": "Very large file: server/donnit-store.ts (4580 lines)", "shortDescription": {"text": "Very large file: server/donnit-store.ts (4580 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-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 593 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 180 placeholder/mock markers across 66 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecb0d2c55ed6875d", "name": "Agent authority lacks a verifier contract: .claude/settings.local.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b3ce37d80c84654", "name": "Commented-code block (5 lines) in vite.config.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in vite.config.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e698f056bec441f", "name": "Commented-code block (6 lines) in client/public/sw.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in client/public/sw.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-961adef1dd47de26", "name": "Commented-code block (8 lines) in client/src/App.tsx:31", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/App.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cc32a0f08ccd223", "name": "Commented-code block (5 lines) in client/src/components/AuthGate.tsx:97", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/components/AuthGate.tsx:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9a314f1958ab765", "name": "Commented-code block (5 lines) in client/src/app/emoji/emoji-data.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/emoji/emoji-data.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66233c4704ed26fa", "name": "Commented-code block (9 lines) in client/src/app/screens/JoinPage.tsx:3", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/app/screens/JoinPage.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d339b59c2434922", "name": "Commented-code block (5 lines) in client/src/app/screens/CommandCenter.tsx:287", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/screens/CommandCenter.tsx:287"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-baf582a8f3bffbf8", "name": "Commented-code block (10 lines) in client/src/app/screens/PrivacyPage.tsx:3", "shortDescription": {"text": "Commented-code block (10 lines) in client/src/app/screens/PrivacyPage.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c94daa10f70b93f0", "name": "Commented-code block (5 lines) in client/src/app/screens/MarketingPages.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/screens/MarketingPages.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aa55fb26517899b", "name": "Commented-code block (7 lines) in client/src/app/screens/BlogPage.tsx:56", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/screens/BlogPage.tsx:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc91c624304b73b1", "name": "Commented-code block (9 lines) in client/src/app/screens/home/OnboardingWizard.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/app/screens/home/OnboardingWizard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c0ffcbf18766393", "name": "Commented-code block (5 lines) in client/src/app/screens/home/ChatPanel.tsx:479", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/screens/home/ChatPanel.tsx:479"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec7c9d8c9bf2caa7", "name": "Commented-code block (7 lines) in client/src/app/lib/hooks.ts:63", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/lib/hooks.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af3f3c89c0f7b708", "name": "Commented-code block (5 lines) in client/src/app/lib/suggestions.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/lib/suggestions.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-602d578acedebfc5", "name": "Commented-code block (6 lines) in client/src/app/lib/use-auto-calendar-scan.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/lib/use-auto-calendar-scan.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fe3eca1656a9474", "name": "Commented-code block (9 lines) in client/src/app/lib/use-auto-gmail-scan.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/app/lib/use-auto-gmail-scan.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac72589b13ea1589", "name": "Commented-code block (5 lines) in client/src/app/lib/sanity/queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/lib/sanity/queries.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7afbf0892f64e13f", "name": "Commented-code block (5 lines) in client/src/app/tasks/TaskDetailDialog.tsx:417", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskDetailDialog.tsx:417"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68f23db518479ea1", "name": "Commented-code block (7 lines) in client/src/app/tasks/BlockEditor.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/tasks/BlockEditor.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37d0611314243e80", "name": "Commented-code block (5 lines) in client/src/app/tasks/TaskList.tsx:375", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskList.tsx:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48a82c7fe86efd26", "name": "Commented-code block (5 lines) in client/src/app/tasks/TaskRow.tsx:63", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskRow.tsx:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfe1ad3949ead8d7", "name": "Commented-code block (5 lines) in client/src/app/tasks/FloatingTaskBox.tsx:86", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/tasks/FloatingTaskBox.tsx:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e3173c9abc6bb3c", "name": "Commented-code block (11 lines) in client/src/app/tasks/TaskTagsInput.tsx:7", "shortDescription": {"text": "Commented-code block (11 lines) in client/src/app/tasks/TaskTagsInput.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15156886e772f491", "name": "Commented-code block (7 lines) in client/src/app/tasks/RichNoteEditor.tsx:178", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/tasks/RichNoteEditor.tsx:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-708eebdc06e2d025", "name": "Legacy-named symbol `agrees_with_legacy` in client/src/app/tasks/TaskResolutionAccordion.tsx:29", "shortDescription": {"text": "Legacy-named symbol `agrees_with_legacy` in client/src/app/tasks/TaskResolutionAccordion.tsx:29"}, "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-3ea3a43b5572f2ae", "name": "Commented-code block (5 lines) in client/src/app/home/use-canvas-blocks.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/home/use-canvas-blocks.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f62e327ac3c00a48", "name": "Commented-code block (6 lines) in client/src/app/home/CanvasHome.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/home/CanvasHome.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22df11b404153e41", "name": "Commented-code block (6 lines) in client/src/app/home/canvas-blocks/bodies.tsx:232", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/home/canvas-blocks/bodies.tsx:232"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54e98e341a2adc3c", "name": "Commented-code block (5 lines) in client/src/app/admin/IngestHealthPanel.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/admin/IngestHealthPanel.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c233c1223b3ae00", "name": "Commented-code block (5 lines) in client/src/app/admin/AssignmentRequestsPanel.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/admin/AssignmentRequestsPanel.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45e81d77ef8a0e4a", "name": "Commented-code block (7 lines) in client/src/app/admin/integrations-status.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/admin/integrations-status.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e57f980d875b1d73", "name": "Commented-code block (6 lines) in client/src/app/admin/BillingPanel.tsx:14", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/admin/BillingPanel.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b112bb8ed8fff9a", "name": "Commented-code block (5 lines) in client/src/app/redesign/Admin.tsx:189", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/redesign/Admin.tsx:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-259a7980a2a911e3", "name": "Commented-code block (7 lines) in client/src/app/redesign/MemoryText.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/redesign/MemoryText.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7efc7c3f71cbaeec", "name": "Commented-code block (5 lines) in client/src/app/redesign/RedesignErrorBoundary.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/redesign/RedesignErrorBoundary.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9df751b26fc1d400", "name": "Commented-code block (6 lines) in client/src/app/redesign/icons.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/redesign/icons.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82d42758b96af1c6", "name": "Commented-code block (5 lines) in client/src/app/redesign/Tasks.tsx:87", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/redesign/Tasks.tsx:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d5101a211c61dd5", "name": "Commented-code block (10 lines) in client/src/app/redesign/now-model.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in client/src/app/redesign/now-model.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-163b7ed46c90bfb7", "name": "Commented-code block (25 lines) in client/src/app/redesign/tweaks.tsx:17", "shortDescription": {"text": "Commented-code block (25 lines) in client/src/app/redesign/tweaks.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58101a41057eaccc", "name": "Commented-code block (6 lines) in client/src/app/redesign/actions.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/redesign/actions.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74181cf576836c0b", "name": "Commented-code block (7 lines) in client/src/app/redesign/CompletionCapture.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/redesign/CompletionCapture.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-849f806f58c01798", "name": "Commented-code block (5 lines) in client/src/app/redesign/data-adapter.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/redesign/data-adapter.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4f3bff25408e1db", "name": "Commented-code block (7 lines) in client/src/app/redesign/Home.tsx:44", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/redesign/Home.tsx:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0707f5014eeee45", "name": "Commented-code block (7 lines) in client/src/app/redesign/_prototype/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/redesign/_prototype/tweaks-panel.jsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd12877f1d3b30dc", "name": "Commented-code block (6 lines) in client/src/app/chrome/DonnitRail.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/app/chrome/DonnitRail.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73ead180047362e1", "name": "Commented-code block (5 lines) in client/src/app/chrome/PositionSwitcher.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/chrome/PositionSwitcher.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed8797700f8cff63", "name": "Commented-code block (7 lines) in client/src/app/brain/BrainVersionHistory.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/brain/BrainVersionHistory.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f88c56b5cba12857", "name": "Commented-code block (5 lines) in client/src/app/reports/TeamViewPanel.tsx:401", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/reports/TeamViewPanel.tsx:401"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-530359a7489de9bb", "name": "Commented-code block (5 lines) in client/src/app/reports/ManagerTeamGrid.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/app/reports/ManagerTeamGrid.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-907eae084e362035", "name": "Commented-code block (8 lines) in client/src/app/profiles/BrainTab.tsx:1026", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/app/profiles/BrainTab.tsx:1026"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edfa72c4be79c773", "name": "Commented-code block (7 lines) in client/src/app/inbox/IngestStatusChips.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/app/inbox/IngestStatusChips.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc8c43909e20cb39", "name": "Commented-code block (6 lines) in client/src/lib/queryClient.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/lib/queryClient.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f76b13533c7349b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/queryClient.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/queryClient.ts:60"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cca1cf24e7fa2b16", "name": "Commented-code block (6 lines) in client/src/lib/supabase.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/lib/supabase.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e06899278806a37", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/supabase.ts:316", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/supabase.ts:316"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1439f8c61dfb886", "name": "Commented-code block (5 lines) in api/index.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/index.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0694f83183024e4", "name": "Commented-code block (6 lines) in shared/schema.ts:186", "shortDescription": {"text": "Commented-code block (6 lines) in shared/schema.ts:186"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd5f028b52a565d4", "name": "Commented-code block (5 lines) in shared/entitlements.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in shared/entitlements.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36b286d4ac73fd02", "name": "Commented-code block (5 lines) in shared/daily-brief.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in shared/daily-brief.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e36ce7017068e5c", "name": "Commented-code block (5 lines) in shared/goal-status.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in shared/goal-status.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a3bc4a47ccfb6c6", "name": "Commented-code block (5 lines) in scripts/seed-onboarding-demo.ts:90", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-onboarding-demo.ts:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e39b52098337c4e", "name": "Commented-code block (6 lines) in scripts/seed-demo-agency.ts:85", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/seed-demo-agency.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d107c3d8d335e63f", "name": "Commented-code block (5 lines) in scripts/eval-finance-brain.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/eval-finance-brain.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5bc6bc809205c9e", "name": "Commented-code block (5 lines) in scripts/seed-org-braindump.ts:88", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-org-braindump.ts:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f82cda1dbbb76bc2", "name": "Commented-code block (5 lines) in scripts/reset-account-full.ts:94", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/reset-account-full.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8319f8661965de23", "name": "Commented-code block (5 lines) in scripts/seed-northbeam-demo.ts:251", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-northbeam-demo.ts:251"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3644a5aa842f0c2e", "name": "Commented-code block (7 lines) in script/build.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in script/build.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1740a88effb6d4ba", "name": "Commented-code block (6 lines) in server/legal-hash.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/legal-hash.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-016811fb63983804", "name": "Commented-code block (8 lines) in server/chat-parser-vocab.test.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in server/chat-parser-vocab.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f113929aee9c1efd", "name": "Commented-code block (5 lines) in server/sop-confirm.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/sop-confirm.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12657aefc79aa092", "name": "Legacy-named symbol `agrees_with_legacy` in server/chat-parser.test.ts:828", "shortDescription": {"text": "Legacy-named symbol `agrees_with_legacy` in server/chat-parser.test.ts:828"}, "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-d7c44bf1eb2f5aae", "name": "Commented-code block (5 lines) in server/recall-scope.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/recall-scope.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee9b922a1ff51c7c", "name": "Commented-code block (8 lines) in server/first-run-moat.test.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in server/first-run-moat.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c4f41182d62f392", "name": "Commented-code block (5 lines) in server/app.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in server/app.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-439a7baacfbecd81", "name": "Commented-code block (5 lines) in server/journey-smoke.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/journey-smoke.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9361d8820cea386e", "name": "Commented-code block (5 lines) in server/first-run-moat-sanitizer.test.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in server/first-run-moat-sanitizer.test.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bd30f56c24757d4", "name": "Commented-code block (7 lines) in server/integrations.ts:10", "shortDescription": {"text": "Commented-code block (7 lines) in server/integrations.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b56ef103f2b4ca55", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/integrations.ts:1205", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/integrations.ts:1205"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f145618579f8351", "name": "Commented-code block (7 lines) in server/auth-supabase.ts:89", "shortDescription": {"text": "Commented-code block (7 lines) in server/auth-supabase.ts:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58f49d70c0805e71", "name": "Commented-code block (6 lines) in server/boot-probes.ts:104", "shortDescription": {"text": "Commented-code block (6 lines) in server/boot-probes.ts:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60decd673399becd", "name": "Commented-code block (6 lines) in server/donnit-store.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in server/donnit-store.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9c66188a3e17def", "name": "Commented-code block (5 lines) in server/intelligence/goal-outcome-memory.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/goal-outcome-memory.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-545491729c5f9d5d", "name": "Commented-code block (9 lines) in server/intelligence/llm-circuit-breaker.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/llm-circuit-breaker.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d638450cb1e612d9", "name": "Commented-code block (5 lines) in server/intelligence/interaction-sequence.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/interaction-sequence.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a86ab8f6c2813ce", "name": "Commented-code block (6 lines) in server/intelligence/recurrence-offer.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-offer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-205515f772dc6dc3", "name": "Commented-code block (10 lines) in server/intelligence/subtask-dating.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in server/intelligence/subtask-dating.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fd11275a86ae532", "name": "Commented-code block (6 lines) in server/intelligence/recurrence-nudge.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-nudge.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f81169bfa5fb811c", "name": "Commented-code block (7 lines) in server/intelligence/position-reachability.test.ts:10", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/position-reachability.test.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f68986f917910d37", "name": "Commented-code block (5 lines) in server/intelligence/position-reachability.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/position-reachability.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d0242cbefb9bc1f", "name": "Commented-code block (10 lines) in server/intelligence/slack-ingest-routing.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in server/intelligence/slack-ingest-routing.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a9c1d777bf6c95e", "name": "Commented-code block (9 lines) in server/intelligence/recurrence-e2e.test.ts:11", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/recurrence-e2e.test.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d354c25cc4ed8211", "name": "Commented-code block (6 lines) in server/intelligence/brain-permissions.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/brain-permissions.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-caa27af026ec656d", "name": "Commented-code block (5 lines) in server/intelligence/token-normalize.test.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/token-normalize.test.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd9328f675df0c09", "name": "Commented-code block (7 lines) in server/intelligence/brain-proposals.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/brain-proposals.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f93e70e462534127", "name": "Commented-code block (6 lines) in server/intelligence/ingestion-memory.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/ingestion-memory.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-150bcc75d0bd9f25", "name": "Commented-code block (5 lines) in server/intelligence/organization-context.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/organization-context.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d2ca5cdfe6156ac", "name": "Commented-code block (6 lines) in server/intelligence/recurrence-detector.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-detector.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc36055270a7bfbb", "name": "Commented-code block (8 lines) in server/intelligence/brain-rollback.test.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/brain-rollback.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a76c0737f4b7e7e5", "name": "Commented-code block (7 lines) in server/intelligence/position-router.ts:191", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/position-router.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21e54bfde8ee08c6", "name": "Commented-code block (5 lines) in server/intelligence/client-status.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/client-status.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b1466c9f69da92f", "name": "Commented-code block (7 lines) in server/intelligence/recurrence-link.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/recurrence-link.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-389f8c009266f7cf", "name": "Commented-code block (6 lines) in server/intelligence/task-profile-match.test.ts:331", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/task-profile-match.test.ts:331"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd4fa75d512286f1", "name": "Commented-code block (6 lines) in server/intelligence/routing-correction.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/routing-correction.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bac97e71f0380e9", "name": "Commented-code block (6 lines) in server/intelligence/embeddings.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/embeddings.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ab9f0f0c5aceac5", "name": "Commented-code block (6 lines) in server/intelligence/recurrence-materializer.ts:116", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-materializer.ts:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3ce61d7e751cc35", "name": "Commented-code block (8 lines) in server/intelligence/completion-memory-draft.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/completion-memory-draft.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f5348ea3563cf0f", "name": "Commented-code block (5 lines) in server/intelligence/task-profile-match.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/task-profile-match.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f08baf8c4d4a2a94", "name": "Commented-code block (7 lines) in server/intelligence/position-brain-context.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/position-brain-context.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0471e6fda393548c", "name": "Commented-code block (9 lines) in server/intelligence/company-brain-ask.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/company-brain-ask.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04c0aab4eafb2713", "name": "Commented-code block (6 lines) in server/intelligence/language-normalizer.test.ts:45", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/language-normalizer.test.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f364afe857a405a8", "name": "Commented-code block (6 lines) in server/intelligence/sop-extraction.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/sop-extraction.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92752d38fff7164c", "name": "Commented-code block (6 lines) in server/intelligence/ingest-triage.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/ingest-triage.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27f259e7e2cbbc22", "name": "Commented-code block (11 lines) in server/intelligence/token-normalize.ts:3", "shortDescription": {"text": "Commented-code block (11 lines) in server/intelligence/token-normalize.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-884c64b6e8cc276a", "name": "Commented-code block (5 lines) in server/intelligence/memory-quick-capture.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/memory-quick-capture.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-919a74af8cbefb27", "name": "Commented-code block (6 lines) in server/intelligence/contradiction.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/contradiction.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-178e0b9cfa050066", "name": "Commented-code block (8 lines) in server/intelligence/language-normalizer.ts:308", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/language-normalizer.ts:308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0bdb09c16c2a617", "name": "Commented-code block (5 lines) in server/intelligence/anthropic-agent.ts:75", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/anthropic-agent.ts:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-555cdbf96e648e8a", "name": "Commented-code block (5 lines) in server/intelligence/recall-answer.test.ts:594", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/recall-answer.test.ts:594"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2164b3de6414416a", "name": "Commented-code block (8 lines) in server/intelligence/incremental-hygiene.ts:14", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/incremental-hygiene.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34454eb6f78431dd", "name": "Commented-code block (5 lines) in server/intelligence/recall-answer.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/recall-answer.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf5d8479a0f71221", "name": "Commented-code block (8 lines) in server/intelligence/donnit-readiness.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/donnit-readiness.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f35515f3e1d0c97b", "name": "Commented-code block (6 lines) in server/intelligence/onboardme.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/onboardme.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99059f4e9f6f05ea", "name": "Commented-code block (7 lines) in server/intelligence/untrusted-content.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/untrusted-content.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b0a4143f64173da", "name": "Commented-code block (6 lines) in server/intelligence/position-disambiguation.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/position-disambiguation.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99030c7de7fe0829", "name": "Commented-code block (5 lines) in server/intelligence/rerank.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/rerank.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb990eb79cf18fdb", "name": "Commented-code block (9 lines) in server/intelligence/sop-generalization.test.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/sop-generalization.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6e763174d62ef16", "name": "Commented-code block (7 lines) in server/intelligence/roadmap-extraction.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/roadmap-extraction.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b51ed9a723b8bec2", "name": "Commented-code block (5 lines) in server/intelligence/subtask-dating.test.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/subtask-dating.test.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62a2fb4dbcce1065", "name": "Commented-code block (5 lines) in server/intelligence/language-normalizer-dictionaryless.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/language-normalizer-dictionaryless.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a0fa325af53e4be", "name": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.test.ts:283", "shortDescription": {"text": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.test.ts:283"}, "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-574cf83ac6a19ea2", "name": "Commented-code block (6 lines) in server/intelligence/waterfall-triggers.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/waterfall-triggers.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5198044e11a01fce", "name": "Commented-code block (7 lines) in server/intelligence/brain-export.test.ts:279", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/brain-export.test.ts:279"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c0f675104e9b6d0", "name": "Commented-code block (5 lines) in server/intelligence/memory-score.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/memory-score.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a64cf505bb69c1c7", "name": "Commented-code block (6 lines) in server/intelligence/goal-intent.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/goal-intent.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb481d1a3b65b678", "name": "Commented-code block (9 lines) in server/intelligence/chat-batch-tasks.ts:32", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/chat-batch-tasks.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-2bcc4c295c4cbef8", "name": "Commented-code block (6 lines) in server/intelligence/rule-replay.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/rule-replay.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c353adb66a54d6e0", "name": "Commented-code block (6 lines) in server/intelligence/brain-export.ts:228", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/brain-export.ts:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e6390ff66b8cb13", "name": "Commented-code block (8 lines) in server/intelligence/position-router-llm.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/position-router-llm.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-253588834fdb0b43", "name": "Commented-code block (9 lines) in server/intelligence/handoff-packet.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in server/intelligence/handoff-packet.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b0e3f28bc5cc881", "name": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.ts:28", "shortDescription": {"text": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.ts:28"}, "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-736d8637e561e16a", "name": "Commented-code block (7 lines) in server/intelligence/position-scaffold/starter-set.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in server/intelligence/position-scaffold/starter-set.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdcadfc66861b2e4", "name": "Commented-code block (5 lines) in server/intelligence/position-scaffold/index.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/position-scaffold/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbedea459a1b3e66", "name": "Commented-code block (6 lines) in server/intelligence/role-starter-packs/index.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/role-starter-packs/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c98c7aff2b54f486", "name": "Commented-code block (5 lines) in server/intelligence/onboarding/parse.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/parse.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a193ddddb0357073", "name": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5eab7494835b1948", "name": "Commented-code block (10 lines) in server/intelligence/onboarding/fetch-link.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in server/intelligence/onboarding/fetch-link.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d46d9bf4a45bbc11", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/intelligence/onboarding/fetch-link.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/intelligence/onboarding/fetch-link.ts:59"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9b7c0e89a511b3a", "name": "Commented-code block (8 lines) in server/intelligence/onboarding/parse.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/intelligence/onboarding/parse.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-798bfb3b99e1bd4c", "name": "Legacy-named symbol `onboarding_braindump_extractor_v1` in server/intelligence/onboarding/extract.ts:442", "shortDescription": {"text": "Legacy-named symbol `onboarding_braindump_extractor_v1` in server/intelligence/onboarding/extract.ts:442"}, "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-3e697e0d57b16def", "name": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b72f24850db7b8d", "name": "Legacy-named symbol `task_update_assistant_v1` in server/intelligence/skills/task-update-assistant.ts:313", "shortDescription": {"text": "Legacy-named symbol `task_update_assistant_v1` in server/intelligence/skills/task-update-assistant.ts:313"}, "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-47d0206f91dd1534", "name": "Commented-code block (6 lines) in server/intelligence/skills/task-update-assistant.ts:318", "shortDescription": {"text": "Commented-code block (6 lines) in server/intelligence/skills/task-update-assistant.ts:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a9c22a44b779336", "name": "Legacy-named symbol `task_execute_draft_v1` in server/intelligence/skills/task-execute-draft.ts:221", "shortDescription": {"text": "Legacy-named symbol `task_execute_draft_v1` in server/intelligence/skills/task-execute-draft.ts:221"}, "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-0f2aa2555626fa5e", "name": "Commented-code block (5 lines) in server/intelligence/skills/task-execute-draft.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/intelligence/skills/task-execute-draft.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25a0f41524919590", "name": "Legacy-named symbol `suggestion_reply_drafter_v1` in server/intelligence/skills/reply-drafter.ts:225", "shortDescription": {"text": "Legacy-named symbol `suggestion_reply_drafter_v1` in server/intelligence/skills/reply-drafter.ts:225"}, "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-1fa214dec0d89fff", "name": "Commented-code block (6 lines) in server/lib/slack-reply.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/slack-reply.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3500ec4a42b3d8e", "name": "Commented-code block (5 lines) in server/lib/email.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/email.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60f3c35ff5df6215", "name": "Commented-code block (7 lines) in server/lib/markdown-to-text.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/markdown-to-text.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d88bc7262ac73f60", "name": "Commented-code block (7 lines) in server/lib/onboarding-tags.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/onboarding-tags.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8cf06b9a377ba5a", "name": "Commented-code block (6 lines) in server/lib/block-editor-markdown.spike.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/block-editor-markdown.spike.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30b1a86fe54c24c6", "name": "Commented-code block (7 lines) in server/lib/seed-getting-started.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/seed-getting-started.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91c86e17daa5279c", "name": "Commented-code block (7 lines) in server/lib/agent/config.ts:32", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/agent/config.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-bd03c73204069238", "name": "Commented-code block (5 lines) in server/lib/agent/interpretation.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/agent/interpretation.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d84647a9508c60d", "name": "Commented-code block (5 lines) in server/lib/agent/actions.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/agent/actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c0fb493acfe10cf", "name": "Commented-code block (6 lines) in server/lib/agent/assemble-context.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/agent/assemble-context.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d693d8cced5dfcf3", "name": "Commented-code block (9 lines) in server/lib/agent/router.ts:7", "shortDescription": {"text": "Commented-code block (9 lines) in server/lib/agent/router.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4adfad86f44c575", "name": "Commented-code block (7 lines) in server/lib/query/search.ts:206", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/query/search.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d2242b59c15bb97", "name": "Commented-code block (5 lines) in server/lib/query/think.ts:87", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/query/think.ts:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ead83de08a810dda", "name": "Commented-code block (5 lines) in server/lib/memory-docs/schema.ts:52", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/memory-docs/schema.ts:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38776ca76a692d5c", "name": "Commented-code block (8 lines) in server/lib/memory-docs/capture-policy.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/lib/memory-docs/capture-policy.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3df03fbbfdc27b97", "name": "Commented-code block (5 lines) in server/lib/memory-docs/reflection.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/memory-docs/reflection.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ee17ed4966a7a92", "name": "Commented-code block (6 lines) in server/lib/onboarding/foundation-orgchart.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/onboarding/foundation-orgchart.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8522d1f8320ab19", "name": "Commented-code block (6 lines) in server/lib/onboarding/team-import.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/onboarding/team-import.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2de6b2fd8ba71601", "name": "Commented-code block (5 lines) in server/lib/onboarding/foundation.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/onboarding/foundation.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b907642925a8152", "name": "Commented-code block (5 lines) in server/lib/onboarding/foundation-apply.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/onboarding/foundation-apply.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3b7c891c0eff268", "name": "Commented-code block (5 lines) in server/billing/stripe.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in server/billing/stripe.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2692e4a3d99057e4", "name": "Commented-code block (7 lines) in handoff/prototype/tweaks-panel.jsx:12", "shortDescription": {"text": "Commented-code block (7 lines) in handoff/prototype/tweaks-panel.jsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d6ffa20a9f1093b", "name": "24 env vars used in code but missing from .env.example", "shortDescription": {"text": "24 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AARON_EMAIL`, `COHERE_API_KEY`, `DEMO_ONBOARDING_POSITION_ID`, `DEMO_ONBOARDING_POSITION_TITLE`, `DEMO_POSITION_ID`, `DEMO_POSITION_TITLE`, `DONNIT_APP_BASE_URL`, `DONNIT_CONTRADICTION_DETECTION` + 16 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46dc03eab6bae210", "name": "Frontend route `/blog/:slug` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/blog/:slug` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0c3c17afd79ba66", "name": "Frontend route `/join/:inviteId` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/join/:inviteId` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37059e21ecf008d4", "name": "Frontend route `/app` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/app` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-393cb9ab42d4accc", "name": "Frontend route `/log` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/log` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a42dd64068d120f", "name": "Frontend route `/dev/components` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/dev/components` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c55c45c883cff83a", "name": "Frontend route `/redesign` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/redesign` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc3d4d003330ad45", "name": "Dangling fetch: POST https://slack.com/api/auth.test (scripts/diag-slack-token.ts:34)", "shortDescription": {"text": "Dangling fetch: POST https://slack.com/api/auth.test (scripts/diag-slack-token.ts:34)"}, "fullDescription": {"text": "`scripts/diag-slack-token.ts:34` calls `POST https://slack.com/api/auth.test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/auth.test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87dea41a4ee1e3ff", "name": "Dangling fetch: POST https://api.openai.com/v1/embeddings (scripts/embed-brain.ts:67)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (scripts/embed-brain.ts:67)"}, "fullDescription": {"text": "`scripts/embed-brain.ts:67` calls `POST https://api.openai.com/v1/embeddings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/embeddings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b080f2af02d7fa8", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:357)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:357)"}, "fullDescription": {"text": "`server/integrations.ts:357` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d0746f31a896ea6", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:397)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:397)"}, "fullDescription": {"text": "`server/integrations.ts:397` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c9c72e63821e5f6", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (server/integrations.ts:1205)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (server/integrations.ts:1205)"}, "fullDescription": {"text": "`server/integrations.ts:1205` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-991c890648a87dbb", "name": "Dangling fetch: POST https://api.openai.com/v1/embeddings (server/intelligence/embeddings.ts:32)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (server/intelligence/embeddings.ts:32)"}, "fullDescription": {"text": "`server/intelligence/embeddings.ts:32` calls `POST https://api.openai.com/v1/embeddings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/embeddings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-657ab50830ca4a0c", "name": "Dangling fetch: POST https://api.openai.com/v1/responses (server/intelligence/openai-agent.ts:98)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (server/intelligence/openai-agent.ts:98)"}, "fullDescription": {"text": "`server/intelligence/openai-agent.ts:98` calls `POST https://api.openai.com/v1/responses` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/responses`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f36a9b324905af6f", "name": "Unused endpoint: USE /{*path}", "shortDescription": {"text": "Unused endpoint: USE /{*path}"}, "fullDescription": {"text": "`server/static.ts` declares `USE /{*path}` 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-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`server/routes.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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/health` 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-29086923e8b4559f", "name": "Unused endpoint: GET /api/health/db", "shortDescription": {"text": "Unused endpoint: GET /api/health/db"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/health/db` 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-ee4aa5ddab88c9dc", "name": "Unused endpoint: GET /api/auth/me", "shortDescription": {"text": "Unused endpoint: GET /api/auth/me"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/auth/me` 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-be055ad4bc53aef8", "name": "Unused endpoint: POST /api/auth/bootstrap", "shortDescription": {"text": "Unused endpoint: POST /api/auth/bootstrap"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/auth/bootstrap` 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-9cb7b2058580914c", "name": "Unused endpoint: GET /api/bootstrap", "shortDescription": {"text": "Unused endpoint: GET /api/bootstrap"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/bootstrap` 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-c294422727757bfa", "name": "Unused endpoint: PATCH /api/profile/signature", "shortDescription": {"text": "Unused endpoint: PATCH /api/profile/signature"}, "fullDescription": {"text": "`server/routes.ts` declares `PATCH /api/profile/signature` 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-8fdc94bda4f78123", "name": "Unused endpoint: PATCH /api/workspace-state", "shortDescription": {"text": "Unused endpoint: PATCH /api/workspace-state"}, "fullDescription": {"text": "`server/routes.ts` declares `PATCH /api/workspace-state` 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-318929e52ba36e52", "name": "Unused endpoint: PATCH /api/workspace/learning-policy", "shortDescription": {"text": "Unused endpoint: PATCH /api/workspace/learning-policy"}, "fullDescription": {"text": "`server/routes.ts` declares `PATCH /api/workspace/learning-policy` 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-47855d5645b25da7", "name": "Unused endpoint: GET /api/brain/proposals", "shortDescription": {"text": "Unused endpoint: GET /api/brain/proposals"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/brain/proposals` 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-87e282f2bdfb1a82", "name": "Unused endpoint: POST /api/brain/proposals/:id/approve", "shortDescription": {"text": "Unused endpoint: POST /api/brain/proposals/:id/approve"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/brain/proposals/:id/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-154c29cc5be0229a", "name": "Unused endpoint: POST /api/brain/proposals/:id/dismiss", "shortDescription": {"text": "Unused endpoint: POST /api/brain/proposals/:id/dismiss"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/brain/proposals/:id/dismiss` 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-a5a8f037a6c81fea", "name": "Unused endpoint: GET /api/workspace/ai-runtime-status", "shortDescription": {"text": "Unused endpoint: GET /api/workspace/ai-runtime-status"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/workspace/ai-runtime-status` 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-af91b83f79a7f1bb", "name": "Unused endpoint: GET /api/workspace/ai-usage", "shortDescription": {"text": "Unused endpoint: GET /api/workspace/ai-usage"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/workspace/ai-usage` 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-de544100debf29b2", "name": "Unused endpoint: GET /api/workspace/ai-provider", "shortDescription": {"text": "Unused endpoint: GET /api/workspace/ai-provider"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/workspace/ai-provider` 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-138e861cbbf47c49", "name": "Unused endpoint: PATCH /api/workspace/ai-provider", "shortDescription": {"text": "Unused endpoint: PATCH /api/workspace/ai-provider"}, "fullDescription": {"text": "`server/routes.ts` declares `PATCH /api/workspace/ai-provider` 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-29bb3573b6822660", "name": "Unused endpoint: POST /api/positions/:profileId/requests", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:profileId/requests"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:profileId/requests` 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-c29feacad6a611c5", "name": "Unused endpoint: GET /api/admin/assignment-requests", "shortDescription": {"text": "Unused endpoint: GET /api/admin/assignment-requests"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/admin/assignment-requests` 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-56668511c4891b17", "name": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/approve", "shortDescription": {"text": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/approve"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/admin/assignment-requests/:requestId/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-695bd1aef577a8a6", "name": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/decline", "shortDescription": {"text": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/decline"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/admin/assignment-requests/:requestId/decline` 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-d85167e121ae126d", "name": "Unused endpoint: GET /api/positions/:id/brain", "shortDescription": {"text": "Unused endpoint: GET /api/positions/:id/brain"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/positions/:id/brain` 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-44a5cf159e5de5b1", "name": "Unused endpoint: POST /api/memory/quick-capture", "shortDescription": {"text": "Unused endpoint: POST /api/memory/quick-capture"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/memory/quick-capture` 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-b28cc82b68304b2a", "name": "Unused endpoint: POST /api/signals/ordering", "shortDescription": {"text": "Unused endpoint: POST /api/signals/ordering"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/signals/ordering` 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-3ac1ba0160db8ef9", "name": "Unused endpoint: POST /api/me/active-position", "shortDescription": {"text": "Unused endpoint: POST /api/me/active-position"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/me/active-position` 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-b70140322e913171", "name": "Unused endpoint: GET /api/admin/ingest-metrics", "shortDescription": {"text": "Unused endpoint: GET /api/admin/ingest-metrics"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/admin/ingest-metrics` 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-899a6bb7f8524d6b", "name": "Unused endpoint: POST /api/tasks/:taskId/apply-sop-steps", "shortDescription": {"text": "Unused endpoint: POST /api/tasks/:taskId/apply-sop-steps"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/tasks/:taskId/apply-sop-steps` 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-659a0886b19b3b4c", "name": "Unused endpoint: POST /api/positions/:id/brain/import-document", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:id/brain/import-document"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:id/brain/import-document` 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-6f3ec732c6e64737", "name": "Unused endpoint: POST /api/positions/:id/brain/ask", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:id/brain/ask"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:id/brain/ask` 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-0c010d65d19f85e9", "name": "Unused endpoint: POST /api/positions/:id/brain/import-link", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:id/brain/import-link"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:id/brain/import-link` 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-5a951c01fb9bcd5b", "name": "Unused endpoint: POST /api/onboarding/foundation", "shortDescription": {"text": "Unused endpoint: POST /api/onboarding/foundation"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/onboarding/foundation` 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-1fe9bcb58ff1b30a", "name": "Unused endpoint: POST /api/onboarding/foundation/preview", "shortDescription": {"text": "Unused endpoint: POST /api/onboarding/foundation/preview"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/onboarding/foundation/preview` 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-591845e42529b3a2", "name": "Unused endpoint: POST /api/workspace/team-import", "shortDescription": {"text": "Unused endpoint: POST /api/workspace/team-import"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/workspace/team-import` 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-3f0e10b1ed4ecfd3", "name": "Unused endpoint: POST /api/workspace/invite", "shortDescription": {"text": "Unused endpoint: POST /api/workspace/invite"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/workspace/invite` 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-30ab82f2df68285a", "name": "Unused endpoint: POST /api/inbox/mute-sender", "shortDescription": {"text": "Unused endpoint: POST /api/inbox/mute-sender"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/inbox/mute-sender` 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-cd401acab65a7d4f", "name": "Unused endpoint: GET /api/inbox/muted-senders", "shortDescription": {"text": "Unused endpoint: GET /api/inbox/muted-senders"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/inbox/muted-senders` 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-81dca124a02a99c4", "name": "Unused endpoint: POST /api/inbox/unmute-sender", "shortDescription": {"text": "Unused endpoint: POST /api/inbox/unmute-sender"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/inbox/unmute-sender` 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-a26922d91f741be7", "name": "Unused endpoint: POST /api/workspace/switch", "shortDescription": {"text": "Unused endpoint: POST /api/workspace/switch"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/workspace/switch` 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-db6d52ae3402039f", "name": "Unused endpoint: POST /api/workspace/invites/:inviteId/accept", "shortDescription": {"text": "Unused endpoint: POST /api/workspace/invites/:inviteId/accept"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/workspace/invites/:inviteId/accept` 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-333d7f53ba7aa6f3", "name": "Unused endpoint: GET /api/workspace/team-invites", "shortDescription": {"text": "Unused endpoint: GET /api/workspace/team-invites"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/workspace/team-invites` 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-693706161efe18d1", "name": "Unused endpoint: POST /api/workspace/team-invites/:inviteId/revoke", "shortDescription": {"text": "Unused endpoint: POST /api/workspace/team-invites/:inviteId/revoke"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/workspace/team-invites/:inviteId/revoke` 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-bf15851bccfc2438", "name": "Unused endpoint: POST /api/positions/:positionId/triggers", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:positionId/triggers"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:positionId/triggers` 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-e2c3f0d03f0f261b", "name": "Unused endpoint: GET /api/positions/:positionId/triggers", "shortDescription": {"text": "Unused endpoint: GET /api/positions/:positionId/triggers"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/positions/:positionId/triggers` 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-b0be5f4f80751be4", "name": "Unused endpoint: POST /api/positions/:positionId/triggers/:candidateId/archive", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:positionId/triggers/:candidateId/archive"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:positionId/triggers/:candidateId/archive` 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-e25b3a9be71ae3b0", "name": "Unused endpoint: GET /api/suggestions", "shortDescription": {"text": "Unused endpoint: GET /api/suggestions"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/suggestions` 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-c6b9bc0ac49ef0e6", "name": "Unused endpoint: GET /api/home/starter-tasks", "shortDescription": {"text": "Unused endpoint: GET /api/home/starter-tasks"}, "fullDescription": {"text": "`server/routes.ts` declares `GET /api/home/starter-tasks` 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-3be4746be21049c9", "name": "Unused endpoint: POST /api/home/starter-tasks/:taskMemoryId/start", "shortDescription": {"text": "Unused endpoint: POST /api/home/starter-tasks/:taskMemoryId/start"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/home/starter-tasks/:taskMemoryId/start` 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-d2c07e79f40d119e", "name": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/accept", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/accept"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:positionId/suggestions/:candidateId/accept` 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-27b6c06628ca4a50", "name": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/dismiss", "shortDescription": {"text": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/dismiss"}, "fullDescription": {"text": "`server/routes.ts` declares `POST /api/positions/:positionId/suggestions/:candidateId/dismiss` 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-685441d4cb9b3bb1", "name": "Unused endpoint: PATCH /api/positions/:positionId/brain/:knowledgeId", "shortDescription": {"text": "Unused endpoint: PATCH /api/positions/:positionId/brain/:knowledgeId"}, "fullDescription": {"text": "`server/routes.ts` declares `PATCH /api/positions/:positionId/brain/:knowledgeId` 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/18481"}, "properties": {"repository": "Rosterstack/donnit-1", "repoUrl": "https://github.com/Rosterstack/donnit-1", "branch": "main"}, "results": [{"ruleId": "scanner-a7b3db9745e9c497", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81"}, "properties": {"repobilityId": "1c3a04e593515dbe", "scanner": "scanner-primary", "fingerprint": "a7b3db9745e9c497", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f7558a77c166e1ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/activity/ActivityLogPanel.tsx:94"}, "properties": {"repobilityId": "e942086413f0b713", "scanner": "scanner-primary", "fingerprint": "f7558a77c166e1ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-586c9cfbecda30b9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/CommandCenter.tsx:2744"}, "properties": {"repobilityId": "d916f75795455eb8", "scanner": "scanner-primary", "fingerprint": "586c9cfbecda30b9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aa1426f7b92e0881", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/screens/home/ChatPanel.tsx:917"}, "properties": {"repobilityId": "cf8b9e171510e119", "scanner": "scanner-primary", "fingerprint": "aa1426f7b92e0881", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5b9b7839cd1f4541", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/app/lib/rich-notes.tsx:47"}, "properties": {"repobilityId": "c9dbacb68fd8b755", "scanner": "scanner-primary", "fingerprint": "5b9b7839cd1f4541", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b26dff81118f47cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskDetailDialog.tsx:1692"}, "properties": {"repobilityId": "78057f3bc869a0f1", "scanner": "scanner-primary", "fingerprint": "b26dff81118f47cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-de02e3e678294b4a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/TaskList.tsx:553"}, "properties": {"repobilityId": "2af8a61f19144a3c", "scanner": "scanner-primary", "fingerprint": "de02e3e678294b4a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c591e66b2fdb0d9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/tasks/FloatingTaskBox.tsx:161"}, "properties": {"repobilityId": "acf3612402a1c316", "scanner": "scanner-primary", "fingerprint": "c591e66b2fdb0d9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f026f20bde5286e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/TodayFeed.tsx:89"}, "properties": {"repobilityId": "c03040ec3ed5ead3", "scanner": "scanner-primary", "fingerprint": "8f026f20bde5286e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-82a639daaf7f2cea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/home/DailyBriefDialog.tsx:51"}, "properties": {"repobilityId": "d4db05b77be95ad8", "scanner": "scanner-primary", "fingerprint": "82a639daaf7f2cea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9d137512152a42e4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceProposalsPanel.tsx:118"}, "properties": {"repobilityId": "e1e84219f76254b7", "scanner": "scanner-primary", "fingerprint": "9d137512152a42e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57f8962230a85195", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/OrgChartPanel.tsx:129"}, "properties": {"repobilityId": "0fad9e45dbed9ec9", "scanner": "scanner-primary", "fingerprint": "57f8962230a85195", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-59086b172783b3fa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspacePositionsPanel.tsx:115"}, "properties": {"repobilityId": "15c4aa429b79da47", "scanner": "scanner-primary", "fingerprint": "59086b172783b3fa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e329a594dc72cadc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceMemberRow.tsx:157"}, "properties": {"repobilityId": "87f330b70e6c50f1", "scanner": "scanner-primary", "fingerprint": "e329a594dc72cadc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f6fda52134927c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/admin/WorkspaceAssetsPanel.tsx:182"}, "properties": {"repobilityId": "1903452e445d5a9f", "scanner": "scanner-primary", "fingerprint": "9f6fda52134927c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4d7e0c0a21a0f105", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/expenses/ExpensesPanel.tsx:374"}, "properties": {"repobilityId": "9419fa4efcbf62e2", "scanner": "scanner-primary", "fingerprint": "4d7e0c0a21a0f105", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6861ee79ef7ec451", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/clients/ClientsPanel.tsx:348"}, "properties": {"repobilityId": "d630d2ffa8133356", "scanner": "scanner-primary", "fingerprint": "6861ee79ef7ec451", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ce29201802971f6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/agenda/AgendaWorkDialog.tsx:71"}, "properties": {"repobilityId": "3ff85566e9b71cf9", "scanner": "scanner-primary", "fingerprint": "9ce29201802971f6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-86b0c74a59efac85", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/NotificationCenter.tsx:63"}, "properties": {"repobilityId": "bda23f6ec4ade6a0", "scanner": "scanner-primary", "fingerprint": "86b0c74a59efac85", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b75371c2b5f05537", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/WorkDock.tsx:167"}, "properties": {"repobilityId": "99d8a13655cc18c3", "scanner": "scanner-primary", "fingerprint": "b75371c2b5f05537", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1a53e5f0f0d04685", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/DonnitRail.tsx:183"}, "properties": {"repobilityId": "39d1523e339052a9", "scanner": "scanner-primary", "fingerprint": "1a53e5f0f0d04685", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-848e8bbfd9738f80", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/SupportRail.tsx:111"}, "properties": {"repobilityId": "0f71d7f3ff765fc4", "scanner": "scanner-primary", "fingerprint": "848e8bbfd9738f80", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-404c228324cdfb0d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/chrome/PositionSwitcher.tsx:57"}, "properties": {"repobilityId": "eb0be0d1b3e19d14", "scanner": "scanner-primary", "fingerprint": "404c228324cdfb0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1b69dea99e737a6c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/brain/BrainVersionHistory.tsx:163"}, "properties": {"repobilityId": "1810d99180ff810d", "scanner": "scanner-primary", "fingerprint": "1b69dea99e737a6c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0497916666285412", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/TeamViewPanel.tsx:352"}, "properties": {"repobilityId": "52309ec442d254d7", "scanner": "scanner-primary", "fingerprint": "0497916666285412", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f4796b4f3dfee66e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ManagerTeamGrid.tsx:185"}, "properties": {"repobilityId": "4e3f5cbb743ac542", "scanner": "scanner-primary", "fingerprint": "f4796b4f3dfee66e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-30101f5cbb9bdd34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/reports/ReportingPanel.tsx:119"}, "properties": {"repobilityId": "9e764c41feab61a6", "scanner": "scanner-primary", "fingerprint": "30101f5cbb9bdd34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b1f649e2e6d15ab6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/profiles/PositionProfilesPanel.tsx:1211"}, "properties": {"repobilityId": "7828a579f8342d0c", "scanner": "scanner-primary", "fingerprint": "b1f649e2e6d15ab6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5c05b76c0c99995a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/app/inbox/SuggestionCard.tsx:302"}, "properties": {"repobilityId": "547e8e07b0a43295", "scanner": "scanner-primary", "fingerprint": "5c05b76c0c99995a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a8400fc06b0b6206", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-validate-live.ts:40"}, "properties": {"repobilityId": "a976ec4e06b577e4", "scanner": "scanner-primary", "fingerprint": "a8400fc06b0b6206", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a18ea5876c6f6227", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/repair-starter-pack.ts:33"}, "properties": {"repobilityId": "a93e7863fe256a92", "scanner": "scanner-primary", "fingerprint": "a18ea5876c6f6227", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd95b60eb418de5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-advisory-corrections.ts:25"}, "properties": {"repobilityId": "86d3b5d6bdadb567", "scanner": "scanner-primary", "fingerprint": "fd95b60eb418de5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e367f7a731b36089", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-test-pattern.ts:27"}, "properties": {"repobilityId": "6728285ca4f6315c", "scanner": "scanner-primary", "fingerprint": "e367f7a731b36089", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c852d7575958f0a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-northbeam-verify.ts:13"}, "properties": {"repobilityId": "5f875db5ecb644a0", "scanner": "scanner-primary", "fingerprint": "c852d7575958f0a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5299c8b7a7158562", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-match-repro.ts:40"}, "properties": {"repobilityId": "84f05ebbce67d22c", "scanner": "scanner-primary", "fingerprint": "5299c8b7a7158562", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ef2b0512037e8f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-assistant-brain.ts:64"}, "properties": {"repobilityId": "718773651e5063df", "scanner": "scanner-primary", "fingerprint": "7ef2b0512037e8f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-26fb5383f87a56e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dedup-brain.ts:46"}, "properties": {"repobilityId": "1726f147256a35b9", "scanner": "scanner-primary", "fingerprint": "26fb5383f87a56e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bb8c4a151e1bbd5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-chat-intelligence.ts:433"}, "properties": {"repobilityId": "1df46d5f1b9d0c0b", "scanner": "scanner-primary", "fingerprint": "0bb8c4a151e1bbd5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55a1ecc24c1892a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recall-qa-harness.ts:248"}, "properties": {"repobilityId": "12715526e59b8262", "scanner": "scanner-primary", "fingerprint": "55a1ecc24c1892a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae254f8ed0056011", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-demo.ts:502"}, "properties": {"repobilityId": "7585ce28f0891c1d", "scanner": "scanner-primary", "fingerprint": "ae254f8ed0056011", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f562ee8ff2973aa5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-team-import-live.ts:43"}, "properties": {"repobilityId": "17e70172e2929ad3", "scanner": "scanner-primary", "fingerprint": "f562ee8ff2973aa5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecc4066689a13a37", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recall-intent-probe.ts:63"}, "properties": {"repobilityId": "0c8e5d58ea33b8d0", "scanner": "scanner-primary", "fingerprint": "ecc4066689a13a37", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a75e50af7c79617", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-token.ts:31"}, "properties": {"repobilityId": "68419c4caa286893", "scanner": "scanner-primary", "fingerprint": "5a75e50af7c79617", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4e8dd9bfe7892c07", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-route-repro.ts:51"}, "properties": {"repobilityId": "2323cf9ffcba582d", "scanner": "scanner-primary", "fingerprint": "4e8dd9bfe7892c07", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20aa682c8db5d9dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-test-account-state.ts:17"}, "properties": {"repobilityId": "6282e38ca6aaf775", "scanner": "scanner-primary", "fingerprint": "20aa682c8db5d9dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1b0ab4f1b778b4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-plan.ts:42"}, "properties": {"repobilityId": "3a867352c46549e3", "scanner": "scanner-primary", "fingerprint": "f1b0ab4f1b778b4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-04c5151ee98efe84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-positions.ts:39"}, "properties": {"repobilityId": "f7e121a2e4fe6e7e", "scanner": "scanner-primary", "fingerprint": "04c5151ee98efe84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8f651cee424fa19", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-recall.ts:332"}, "properties": {"repobilityId": "d8e635f453d9be72", "scanner": "scanner-primary", "fingerprint": "c8f651cee424fa19", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-483603e357f16460", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-nudge-locations.ts:23"}, "properties": {"repobilityId": "6abd122f6643c6d3", "scanner": "scanner-primary", "fingerprint": "483603e357f16460", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19c16b1027ee18a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-chat-midyear-repro.ts:27"}, "properties": {"repobilityId": "c9ca5d607824df87", "scanner": "scanner-primary", "fingerprint": "19c16b1027ee18a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55147bfee28825d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-nudge-live.ts:49"}, "properties": {"repobilityId": "7711d32f0bbe1801", "scanner": "scanner-primary", "fingerprint": "55147bfee28825d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af0034750d40c0df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-quality.ts:42"}, "properties": {"repobilityId": "75f45f2fbbaeaaff", "scanner": "scanner-primary", "fingerprint": "af0034750d40c0df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cf0c26855d2d1be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-assistant-brain.ts:50"}, "properties": {"repobilityId": "689833c9ff759643", "scanner": "scanner-primary", "fingerprint": "3cf0c26855d2d1be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b6a46e4a9e45f12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-execute-smoke.ts:56"}, "properties": {"repobilityId": "7c4e97d9f2a8a6b1", "scanner": "scanner-primary", "fingerprint": "8b6a46e4a9e45f12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a1197fec30ffa8d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test2.ts:22"}, "properties": {"repobilityId": "f646613b0a407cd8", "scanner": "scanner-primary", "fingerprint": "3a1197fec30ffa8d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7315c3532849cfb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-roster.ts:44"}, "properties": {"repobilityId": "0bcb51aaedd53c7e", "scanner": "scanner-primary", "fingerprint": "f7315c3532849cfb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e32a21004286e582", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-chat-sources.ts:11"}, "properties": {"repobilityId": "dab59ca5c0d28260", "scanner": "scanner-primary", "fingerprint": "e32a21004286e582", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-47d1cc60642bbb83", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-org-knowledge.ts:49"}, "properties": {"repobilityId": "b5534373f8c2be80", "scanner": "scanner-primary", "fingerprint": "47d1cc60642bbb83", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1b5302e9a28fc1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-anticipation-live.ts:57"}, "properties": {"repobilityId": "ab675f28409a11df", "scanner": "scanner-primary", "fingerprint": "a1b5302e9a28fc1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00b23a702689dd82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-demo-agency.ts:358"}, "properties": {"repobilityId": "b0fa70726dc422e0", "scanner": "scanner-primary", "fingerprint": "00b23a702689dd82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b059725b667ae95", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-goal-task-trace.ts:23"}, "properties": {"repobilityId": "b15f87681e65c996", "scanner": "scanner-primary", "fingerprint": "8b059725b667ae95", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5285968198644b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-finance-brain.ts:74"}, "properties": {"repobilityId": "d1ee10fcd59c7d28", "scanner": "scanner-primary", "fingerprint": "e5285968198644b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e78ce0abe18cc5a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-org-braindump.ts:229"}, "properties": {"repobilityId": "07df1891c6f88ddb", "scanner": "scanner-primary", "fingerprint": "e78ce0abe18cc5a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-25743f4a8035d35e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-recent-tasks.ts:64"}, "properties": {"repobilityId": "50324f290f012e23", "scanner": "scanner-primary", "fingerprint": "25743f4a8035d35e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51d99d8b35350a6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/quarantine-polluted-workflows.ts:88"}, "properties": {"repobilityId": "12043ba77ec0081d", "scanner": "scanner-primary", "fingerprint": "51d99d8b35350a6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f176fc47ab742c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-recurring-history.ts:55"}, "properties": {"repobilityId": "2bd3eea4bee161f8", "scanner": "scanner-primary", "fingerprint": "5f176fc47ab742c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-987e3fe4bd7e96de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/comp-workspace.ts:33"}, "properties": {"repobilityId": "248f567c0a555479", "scanner": "scanner-primary", "fingerprint": "987e3fe4bd7e96de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b3f7f49ace3558e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-outcomes.ts:90"}, "properties": {"repobilityId": "dd275cbcb1b2b246", "scanner": "scanner-primary", "fingerprint": "b3f7f49ace3558e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a554b14d8f89f026", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/repair-subtask-dates.ts:57"}, "properties": {"repobilityId": "61ce3b1b8a2631f8", "scanner": "scanner-primary", "fingerprint": "a554b14d8f89f026", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73e82427df648974", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-goal-columns.ts:42"}, "properties": {"repobilityId": "65d7733522ddf3e9", "scanner": "scanner-primary", "fingerprint": "73e82427df648974", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-390b2c704dad361a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reset-account-full.ts:34"}, "properties": {"repobilityId": "fedefcd85cb8dc35", "scanner": "scanner-primary", "fingerprint": "390b2c704dad361a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6280c491e05b0c73", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-capture-test.ts:21"}, "properties": {"repobilityId": "2e461090650389c2", "scanner": "scanner-primary", "fingerprint": "6280c491e05b0c73", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-792d65982bff129b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cleanup-dmarc-suggestions.ts:26"}, "properties": {"repobilityId": "f7ac0c093f09348e", "scanner": "scanner-primary", "fingerprint": "792d65982bff129b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f8a1766a77eeffd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-resolve-aaron.ts:61"}, "properties": {"repobilityId": "1edcf11b7edddfab", "scanner": "scanner-primary", "fingerprint": "8f8a1766a77eeffd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-35f29b1c221307af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-graph.ts:238"}, "properties": {"repobilityId": "0b1ae110d83f0093", "scanner": "scanner-primary", "fingerprint": "35f29b1c221307af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fbece56a943b3a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-verify-task-body-markdown.ts:11"}, "properties": {"repobilityId": "e3c6590352fef94c", "scanner": "scanner-primary", "fingerprint": "3fbece56a943b3a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9560e09a5825eae9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-northbeam-demo.ts:489"}, "properties": {"repobilityId": "a6de47fb6ab96aed", "scanner": "scanner-primary", "fingerprint": "9560e09a5825eae9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81122a149fe0ccf6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-starter-card.ts:52"}, "properties": {"repobilityId": "c087b9dde84900f5", "scanner": "scanner-primary", "fingerprint": "81122a149fe0ccf6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-957b815b1a027103", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-export-sample.ts:33"}, "properties": {"repobilityId": "52dea9a8b2a61fa9", "scanner": "scanner-primary", "fingerprint": "957b815b1a027103", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09a0815343aec23b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-capture-note.ts:24"}, "properties": {"repobilityId": "dc3b72fe9bcb92fa", "scanner": "scanner-primary", "fingerprint": "09a0815343aec23b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-346f0185b0bab257", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-slack-suggestions.ts:47"}, "properties": {"repobilityId": "1decf1e670201d4e", "scanner": "scanner-primary", "fingerprint": "346f0185b0bab257", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7692be2a2e16107", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-inbox-filter.ts:54"}, "properties": {"repobilityId": "655728ba9cec8f4f", "scanner": "scanner-primary", "fingerprint": "a7692be2a2e16107", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a685f4da1d4fb8e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-mismatch-evidence.ts:41"}, "properties": {"repobilityId": "7bc9621b3327ffb7", "scanner": "scanner-primary", "fingerprint": "7a685f4da1d4fb8e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88beb9774f5379cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-recall-live.ts:57"}, "properties": {"repobilityId": "f93cc18ae4a9c05f", "scanner": "scanner-primary", "fingerprint": "88beb9774f5379cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecaa57c01c0cd6b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-hr-brain.ts:71"}, "properties": {"repobilityId": "6a901b0e7db63c34", "scanner": "scanner-primary", "fingerprint": "ecaa57c01c0cd6b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f05d34128a4033c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-tenant-isolation.ts:94"}, "properties": {"repobilityId": "78482a2cc1bcf256", "scanner": "scanner-primary", "fingerprint": "6f05d34128a4033c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1dc41a72621acfc0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-onboarding-position-workflow.ts:53"}, "properties": {"repobilityId": "7cfd838b858c7ec2", "scanner": "scanner-primary", "fingerprint": "1dc41a72621acfc0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-477556ec976fc214", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-cosine-cutoff.ts:59"}, "properties": {"repobilityId": "ce981ff4e7fe0e45", "scanner": "scanner-primary", "fingerprint": "477556ec976fc214", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-859a04464c70b3f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reset-test-account.ts:33"}, "properties": {"repobilityId": "805d501f60290aea", "scanner": "scanner-primary", "fingerprint": "859a04464c70b3f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ecb66f4453961fd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-universal-brain.ts:74"}, "properties": {"repobilityId": "93bf37c5fcb721f1", "scanner": "scanner-primary", "fingerprint": "4ecb66f4453961fd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-daac4beed20eed23", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scaffold-existing-positions.ts:74"}, "properties": {"repobilityId": "d07c6faadbf70107", "scanner": "scanner-primary", "fingerprint": "daac4beed20eed23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a0ffe44e09143f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-sop-generalization.ts:51"}, "properties": {"repobilityId": "3f0fbad2f82dfa6d", "scanner": "scanner-primary", "fingerprint": "4a0ffe44e09143f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a69992d84caf293", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-brain-search.ts:52"}, "properties": {"repobilityId": "818a85d3351c7b98", "scanner": "scanner-primary", "fingerprint": "9a69992d84caf293", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46c22ae76c6c0a2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-eval-finance-inter.ts:33"}, "properties": {"repobilityId": "efc039931a315b5e", "scanner": "scanner-primary", "fingerprint": "46c22ae76c6c0a2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ed92b12a77e52be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-check-dupes.ts:47"}, "properties": {"repobilityId": "b3f83703b11960f7", "scanner": "scanner-primary", "fingerprint": "9ed92b12a77e52be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64922f6ed123bc2f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-core-workflow.ts:48"}, "properties": {"repobilityId": "285afab5214a8378", "scanner": "scanner-primary", "fingerprint": "64922f6ed123bc2f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09a83a606a841670", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-team-template.ts:18"}, "properties": {"repobilityId": "13dacf67ea70160b", "scanner": "scanner-primary", "fingerprint": "09a83a606a841670", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-390d1f248207f683", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-cron-run-check.ts:23"}, "properties": {"repobilityId": "0615d36475fd993a", "scanner": "scanner-primary", "fingerprint": "390d1f248207f683", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-70dbe834b544f7d8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diag-reset-demo-task.ts:49"}, "properties": {"repobilityId": "c35638d3cd095a8d", "scanner": "scanner-primary", "fingerprint": "70dbe834b544f7d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1966adf55bcd76eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/embed-brain.ts:99"}, "properties": {"repobilityId": "dffe1bd643696bd3", "scanner": "scanner-primary", "fingerprint": "1966adf55bcd76eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-250256150dc59054", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/score-routing.ts:179"}, "properties": {"repobilityId": "be1a80470a944064", "scanner": "scanner-primary", "fingerprint": "250256150dc59054", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7617c968c63f7685", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-foundation.ts:61"}, "properties": {"repobilityId": "23df3aa843f0423e", "scanner": "scanner-primary", "fingerprint": "7617c968c63f7685", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f53bf528a3dd149", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 script/build.ts:50"}, "properties": {"repobilityId": "47ceeaa6313fa094", "scanner": "scanner-primary", "fingerprint": "2f53bf528a3dd149", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da39cf9a765680e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/app.ts:21"}, "properties": {"repobilityId": "4263fd07587b7ccd", "scanner": "scanner-primary", "fingerprint": "da39cf9a765680e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e7f0a16f8199a393", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/boot-probes.ts:166"}, "properties": {"repobilityId": "24fd07ec5deb2e84", "scanner": "scanner-primary", "fingerprint": "e7f0a16f8199a393", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ac3600615d1e08e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 handoff/prototype/settings.jsx:263"}, "properties": {"repobilityId": "078a0e19fc34d636", "scanner": "scanner-primary", "fingerprint": "7ac3600615d1e08e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-52d058f88deba04f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/App.tsx:278"}, "properties": {"repobilityId": "839f33d3b1d4c802", "scanner": "scanner-primary", "fingerprint": "52d058f88deba04f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/App.tsx"}, "region": {"startLine": 278}}}]}, {"ruleId": "scanner-8df37d9232a59094", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81"}, "properties": {"repobilityId": "298aaf10501f50f1", "scanner": "scanner-primary", "fingerprint": "8df37d9232a59094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/components/ui/chart.tsx"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-a54808af6750c467", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/screens/CommandCenter.tsx:843"}, "properties": {"repobilityId": "33793dc5d38c9a7b", "scanner": "scanner-primary", "fingerprint": "a54808af6750c467", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/app/screens/CommandCenter.tsx"}, "region": {"startLine": 843}}}]}, {"ruleId": "scanner-692fcf639297ed5c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/app/lib/rich-notes.tsx:47"}, "properties": {"repobilityId": "615f557689dbfdcc", "scanner": "scanner-primary", "fingerprint": "692fcf639297ed5c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/app/lib/rich-notes.tsx"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-7c23ed87fb72ffdb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/app/tasks/RichNoteEditor.tsx:75"}, "properties": {"repobilityId": "762b5cc8c94fbbb1", "scanner": "scanner-primary", "fingerprint": "7c23ed87fb72ffdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/app/tasks/RichNoteEditor.tsx"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-be88043d468711f4", "level": "error", "message": {"text": "Possible secret in scripts/verify-tenant-isolation.ts"}, "properties": {"repobilityId": "0e3db75989d25476", "scanner": "scanner-primary", "fingerprint": "be88043d468711f4", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-tenant-isolation.ts"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-d89f16fb5f5d5bfd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verify-tenant-isolation.ts:24"}, "properties": {"repobilityId": "e431678de323ea3b", "scanner": "scanner-primary", "fingerprint": "d89f16fb5f5d5bfd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify-tenant-isolation.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-95dd74d3e222040c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server/integrations.ts:1"}, "properties": {"repobilityId": "60dbfc7ee7c4f2c1", "scanner": "scanner-primary", "fingerprint": "95dd74d3e222040c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/integrations.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f472153257bb4e78", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in handoff/prototype/settings.jsx:263"}, "properties": {"repobilityId": "68685c4dc6f1dbd0", "scanner": "scanner-primary", "fingerprint": "f472153257bb4e78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "handoff/prototype/settings.jsx"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-04ca0f90fcc9a5e5", "level": "note", "message": {"text": "Very large file: client/src/components/DonnitLandingPage.tsx (1260 lines)"}, "properties": {"repobilityId": "d4e306f930361322", "scanner": "scanner-primary", "fingerprint": "04ca0f90fcc9a5e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0fdbc5d8accbeb6f", "level": "note", "message": {"text": "Very large file: client/src/app/screens/CommandCenter.tsx (3817 lines)"}, "properties": {"repobilityId": "c5b888a761b9405f", "scanner": "scanner-primary", "fingerprint": "0fdbc5d8accbeb6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d8ea42a4e1f86e0c", "level": "note", "message": {"text": "Very large file: client/src/app/screens/home/OnboardingWizard.tsx (1741 lines)"}, "properties": {"repobilityId": "be776f4cc5766dbc", "scanner": "scanner-primary", "fingerprint": "d8ea42a4e1f86e0c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59bdd8244a890809", "level": "note", "message": {"text": "Very large file: client/src/app/tasks/TaskDetailDialog.tsx (3569 lines)"}, "properties": {"repobilityId": "7d056c3a6f56429c", "scanner": "scanner-primary", "fingerprint": "59bdd8244a890809", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5368bbe45d3bc099", "level": "note", "message": {"text": "Very large file: client/src/app/admin/WorkspaceSettingsDialog.tsx (1234 lines)"}, "properties": {"repobilityId": "47e34a04d5f269d1", "scanner": "scanner-primary", "fingerprint": "5368bbe45d3bc099", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0a68beb639849e0", "level": "note", "message": {"text": "Very large file: client/src/app/redesign/Tasks.tsx (1230 lines)"}, "properties": {"repobilityId": "d4b1245dff788d06", "scanner": "scanner-primary", "fingerprint": "a0a68beb639849e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fa8221833b6a78a0", "level": "note", "message": {"text": "Very large file: client/src/app/redesign/Home.tsx (1378 lines)"}, "properties": {"repobilityId": "bce5cceefa587fc9", "scanner": "scanner-primary", "fingerprint": "fa8221833b6a78a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80ffb71a1b20ffff", "level": "note", "message": {"text": "Very large file: client/src/app/profiles/PositionProfilesPanel.tsx (2804 lines)"}, "properties": {"repobilityId": "543ba0d205fb4ccc", "scanner": "scanner-primary", "fingerprint": "80ffb71a1b20ffff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06b12379466549b2", "level": "note", "message": {"text": "Very large file: server/chat-parser.test.ts (2457 lines)"}, "properties": {"repobilityId": "1caa99b4d5f830be", "scanner": "scanner-primary", "fingerprint": "06b12379466549b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b10682facf444d5f", "level": "note", "message": {"text": "Very large file: server/integrations.ts (1492 lines)"}, "properties": {"repobilityId": "244830c075c3bef2", "scanner": "scanner-primary", "fingerprint": "b10682facf444d5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6949cca170b0c4db", "level": "note", "message": {"text": "Very large file: server/donnit-store.ts (4580 lines)"}, "properties": {"repobilityId": "aeb63874b68dafba", "scanner": "scanner-primary", "fingerprint": "6949cca170b0c4db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "03f4bb65cc0d3af7", "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": "a76aadc086f53b5f", "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": "4f3989b80e2b852b", "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": "e0430ce57fc240e8", "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": "4532a380594ce286", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "928f84ac48ca6383", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "dceb281a1378d999", "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": "643d88e6d01621e8", "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": "8a43f125d0ef5cf3", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-ecb0d2c55ed6875d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "properties": {"repobilityId": "d8bae33a6d517bf0", "scanner": "scanner-primary", "fingerprint": "ecb0d2c55ed6875d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b3ce37d80c84654", "level": "none", "message": {"text": "Commented-code block (5 lines) in vite.config.ts:15"}, "properties": {"repobilityId": "9d80d4542f21d1dd", "scanner": "scanner-primary", "fingerprint": "4b3ce37d80c84654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e698f056bec441f", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/public/sw.js:1"}, "properties": {"repobilityId": "82f68440f562725a", "scanner": "scanner-primary", "fingerprint": "0e698f056bec441f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-961adef1dd47de26", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/App.tsx:31"}, "properties": {"repobilityId": "99ab51e7c51c40ed", "scanner": "scanner-primary", "fingerprint": "961adef1dd47de26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cc32a0f08ccd223", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/components/AuthGate.tsx:97"}, "properties": {"repobilityId": "254367641abcafa8", "scanner": "scanner-primary", "fingerprint": "6cc32a0f08ccd223", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9a314f1958ab765", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/emoji/emoji-data.ts:3"}, "properties": {"repobilityId": "39324a3e89302d0c", "scanner": "scanner-primary", "fingerprint": "c9a314f1958ab765", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66233c4704ed26fa", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/app/screens/JoinPage.tsx:3"}, "properties": {"repobilityId": "bc8c243fa37df6b0", "scanner": "scanner-primary", "fingerprint": "66233c4704ed26fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d339b59c2434922", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/screens/CommandCenter.tsx:287"}, "properties": {"repobilityId": "0a6eebebd343aa64", "scanner": "scanner-primary", "fingerprint": "8d339b59c2434922", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-baf582a8f3bffbf8", "level": "none", "message": {"text": "Commented-code block (10 lines) in client/src/app/screens/PrivacyPage.tsx:3"}, "properties": {"repobilityId": "0c240b7a91c209bc", "scanner": "scanner-primary", "fingerprint": "baf582a8f3bffbf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c94daa10f70b93f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/screens/MarketingPages.tsx:3"}, "properties": {"repobilityId": "be555aa97b28d8cd", "scanner": "scanner-primary", "fingerprint": "c94daa10f70b93f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4aa55fb26517899b", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/screens/BlogPage.tsx:56"}, "properties": {"repobilityId": "ca55ec923222bb14", "scanner": "scanner-primary", "fingerprint": "4aa55fb26517899b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc91c624304b73b1", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/app/screens/home/OnboardingWizard.tsx:1"}, "properties": {"repobilityId": "30ad3becd7d994cf", "scanner": "scanner-primary", "fingerprint": "bc91c624304b73b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c0ffcbf18766393", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/screens/home/ChatPanel.tsx:479"}, "properties": {"repobilityId": "ad31fe0ea11c6e59", "scanner": "scanner-primary", "fingerprint": "8c0ffcbf18766393", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec7c9d8c9bf2caa7", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/lib/hooks.ts:63"}, "properties": {"repobilityId": "55cfb4c6216dc05a", "scanner": "scanner-primary", "fingerprint": "ec7c9d8c9bf2caa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af3f3c89c0f7b708", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/lib/suggestions.ts:61"}, "properties": {"repobilityId": "09e11a906b2a5575", "scanner": "scanner-primary", "fingerprint": "af3f3c89c0f7b708", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-602d578acedebfc5", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/lib/use-auto-calendar-scan.ts:3"}, "properties": {"repobilityId": "b92d257019587649", "scanner": "scanner-primary", "fingerprint": "602d578acedebfc5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fe3eca1656a9474", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/app/lib/use-auto-gmail-scan.ts:3"}, "properties": {"repobilityId": "644abff4e296d198", "scanner": "scanner-primary", "fingerprint": "7fe3eca1656a9474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac72589b13ea1589", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/lib/sanity/queries.ts:1"}, "properties": {"repobilityId": "568f380b30f4daa8", "scanner": "scanner-primary", "fingerprint": "ac72589b13ea1589", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7afbf0892f64e13f", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskDetailDialog.tsx:417"}, "properties": {"repobilityId": "c21784fd6a9389da", "scanner": "scanner-primary", "fingerprint": "7afbf0892f64e13f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68f23db518479ea1", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/tasks/BlockEditor.tsx:3"}, "properties": {"repobilityId": "cf7753b6527d7471", "scanner": "scanner-primary", "fingerprint": "68f23db518479ea1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37d0611314243e80", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskList.tsx:375"}, "properties": {"repobilityId": "1c9cdf8d415c8889", "scanner": "scanner-primary", "fingerprint": "37d0611314243e80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48a82c7fe86efd26", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/tasks/TaskRow.tsx:63"}, "properties": {"repobilityId": "1d55a0cfd15d82ab", "scanner": "scanner-primary", "fingerprint": "48a82c7fe86efd26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfe1ad3949ead8d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/tasks/FloatingTaskBox.tsx:86"}, "properties": {"repobilityId": "e3d84cfffc5c3018", "scanner": "scanner-primary", "fingerprint": "dfe1ad3949ead8d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e3173c9abc6bb3c", "level": "none", "message": {"text": "Commented-code block (11 lines) in client/src/app/tasks/TaskTagsInput.tsx:7"}, "properties": {"repobilityId": "02ba525bce136e56", "scanner": "scanner-primary", "fingerprint": "3e3173c9abc6bb3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15156886e772f491", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/tasks/RichNoteEditor.tsx:178"}, "properties": {"repobilityId": "fef65b8ceb00e150", "scanner": "scanner-primary", "fingerprint": "15156886e772f491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-708eebdc06e2d025", "level": "note", "message": {"text": "Legacy-named symbol `agrees_with_legacy` in client/src/app/tasks/TaskResolutionAccordion.tsx:29"}, "properties": {"repobilityId": "3d7911302145bc9c", "scanner": "scanner-primary", "fingerprint": "708eebdc06e2d025", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3ea3a43b5572f2ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/home/use-canvas-blocks.ts:26"}, "properties": {"repobilityId": "6de6190a6644f370", "scanner": "scanner-primary", "fingerprint": "3ea3a43b5572f2ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f62e327ac3c00a48", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/home/CanvasHome.tsx:6"}, "properties": {"repobilityId": "a9882855ab28304b", "scanner": "scanner-primary", "fingerprint": "f62e327ac3c00a48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22df11b404153e41", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/home/canvas-blocks/bodies.tsx:232"}, "properties": {"repobilityId": "a46fa27b3c91595e", "scanner": "scanner-primary", "fingerprint": "22df11b404153e41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54e98e341a2adc3c", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/admin/IngestHealthPanel.tsx:7"}, "properties": {"repobilityId": "7f88967533957d83", "scanner": "scanner-primary", "fingerprint": "54e98e341a2adc3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c233c1223b3ae00", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/admin/AssignmentRequestsPanel.tsx:3"}, "properties": {"repobilityId": "b42ca69d2fe65a5c", "scanner": "scanner-primary", "fingerprint": "6c233c1223b3ae00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45e81d77ef8a0e4a", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/admin/integrations-status.ts:3"}, "properties": {"repobilityId": "da35be5c6b4a5789", "scanner": "scanner-primary", "fingerprint": "45e81d77ef8a0e4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e57f980d875b1d73", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/admin/BillingPanel.tsx:14"}, "properties": {"repobilityId": "38c8cd004c8fcd45", "scanner": "scanner-primary", "fingerprint": "e57f980d875b1d73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b112bb8ed8fff9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/redesign/Admin.tsx:189"}, "properties": {"repobilityId": "31a8e0d603049394", "scanner": "scanner-primary", "fingerprint": "7b112bb8ed8fff9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-259a7980a2a911e3", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/redesign/MemoryText.tsx:1"}, "properties": {"repobilityId": "b1812795f7fe4517", "scanner": "scanner-primary", "fingerprint": "259a7980a2a911e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7efc7c3f71cbaeec", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/redesign/RedesignErrorBoundary.tsx:1"}, "properties": {"repobilityId": "aeda9402153fcf3c", "scanner": "scanner-primary", "fingerprint": "7efc7c3f71cbaeec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9df751b26fc1d400", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/redesign/icons.tsx:4"}, "properties": {"repobilityId": "8ea47ce7d4a241ed", "scanner": "scanner-primary", "fingerprint": "9df751b26fc1d400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82d42758b96af1c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/redesign/Tasks.tsx:87"}, "properties": {"repobilityId": "7d49e37b1f10bd7f", "scanner": "scanner-primary", "fingerprint": "82d42758b96af1c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d5101a211c61dd5", "level": "none", "message": {"text": "Commented-code block (10 lines) in client/src/app/redesign/now-model.ts:6"}, "properties": {"repobilityId": "b63d4eaa3c33fcc8", "scanner": "scanner-primary", "fingerprint": "4d5101a211c61dd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163b7ed46c90bfb7", "level": "none", "message": {"text": "Commented-code block (25 lines) in client/src/app/redesign/tweaks.tsx:17"}, "properties": {"repobilityId": "ae2f8316253cbf0a", "scanner": "scanner-primary", "fingerprint": "163b7ed46c90bfb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58101a41057eaccc", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/redesign/actions.ts:4"}, "properties": {"repobilityId": "3a49672ea4d1907d", "scanner": "scanner-primary", "fingerprint": "58101a41057eaccc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74181cf576836c0b", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/redesign/CompletionCapture.tsx:1"}, "properties": {"repobilityId": "1df71055742be75e", "scanner": "scanner-primary", "fingerprint": "74181cf576836c0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-849f806f58c01798", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/redesign/data-adapter.ts:4"}, "properties": {"repobilityId": "963a95ce48ef7f63", "scanner": "scanner-primary", "fingerprint": "849f806f58c01798", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4f3bff25408e1db", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/redesign/Home.tsx:44"}, "properties": {"repobilityId": "b65fbdcd91599d5c", "scanner": "scanner-primary", "fingerprint": "e4f3bff25408e1db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0707f5014eeee45", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/redesign/_prototype/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "43baa4d118116477", "scanner": "scanner-primary", "fingerprint": "a0707f5014eeee45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd12877f1d3b30dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/app/chrome/DonnitRail.tsx:3"}, "properties": {"repobilityId": "8311e1aa9eab4ee9", "scanner": "scanner-primary", "fingerprint": "fd12877f1d3b30dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73ead180047362e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/chrome/PositionSwitcher.tsx:13"}, "properties": {"repobilityId": "01f75c9ea4b8cb2c", "scanner": "scanner-primary", "fingerprint": "73ead180047362e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed8797700f8cff63", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/brain/BrainVersionHistory.tsx:1"}, "properties": {"repobilityId": "9760de82ea92f3ad", "scanner": "scanner-primary", "fingerprint": "ed8797700f8cff63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f88c56b5cba12857", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/reports/TeamViewPanel.tsx:401"}, "properties": {"repobilityId": "f25fa9556062ea5b", "scanner": "scanner-primary", "fingerprint": "f88c56b5cba12857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-530359a7489de9bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/app/reports/ManagerTeamGrid.tsx:7"}, "properties": {"repobilityId": "d736840ad19a13af", "scanner": "scanner-primary", "fingerprint": "530359a7489de9bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-907eae084e362035", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/app/profiles/BrainTab.tsx:1026"}, "properties": {"repobilityId": "5b1bb15875816e88", "scanner": "scanner-primary", "fingerprint": "907eae084e362035", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edfa72c4be79c773", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/app/inbox/IngestStatusChips.tsx:6"}, "properties": {"repobilityId": "e1bb562ab97836f8", "scanner": "scanner-primary", "fingerprint": "edfa72c4be79c773", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc8c43909e20cb39", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/lib/queryClient.ts:6"}, "properties": {"repobilityId": "d988d720f5f98c89", "scanner": "scanner-primary", "fingerprint": "fc8c43909e20cb39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f76b13533c7349b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/queryClient.ts:60"}, "properties": {"repobilityId": "a509aa10d64d5df9", "scanner": "scanner-primary", "fingerprint": "f76b13533c7349b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cca1cf24e7fa2b16", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/lib/supabase.ts:1"}, "properties": {"repobilityId": "2431fd2491e084c4", "scanner": "scanner-primary", "fingerprint": "cca1cf24e7fa2b16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e06899278806a37", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/lib/supabase.ts:316"}, "properties": {"repobilityId": "5c7b1963cbeb4b6b", "scanner": "scanner-primary", "fingerprint": "1e06899278806a37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1439f8c61dfb886", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/index.js:1"}, "properties": {"repobilityId": "c1932b4b244f06e0", "scanner": "scanner-primary", "fingerprint": "c1439f8c61dfb886", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0694f83183024e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in shared/schema.ts:186"}, "properties": {"repobilityId": "b097f5cffc4eaa6a", "scanner": "scanner-primary", "fingerprint": "f0694f83183024e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd5f028b52a565d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/entitlements.ts:9"}, "properties": {"repobilityId": "508cbf449fd0d49b", "scanner": "scanner-primary", "fingerprint": "fd5f028b52a565d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36b286d4ac73fd02", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/daily-brief.ts:3"}, "properties": {"repobilityId": "1747d8529b560bcf", "scanner": "scanner-primary", "fingerprint": "36b286d4ac73fd02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e36ce7017068e5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/goal-status.ts:3"}, "properties": {"repobilityId": "cd4d4c2b28fca70d", "scanner": "scanner-primary", "fingerprint": "7e36ce7017068e5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a3bc4a47ccfb6c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-onboarding-demo.ts:90"}, "properties": {"repobilityId": "a10b9949fa72cb1f", "scanner": "scanner-primary", "fingerprint": "0a3bc4a47ccfb6c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e39b52098337c4e", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/seed-demo-agency.ts:85"}, "properties": {"repobilityId": "8df4cf05fecd34ba", "scanner": "scanner-primary", "fingerprint": "6e39b52098337c4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d107c3d8d335e63f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/eval-finance-brain.ts:46"}, "properties": {"repobilityId": "4e62ecdc6be9bcba", "scanner": "scanner-primary", "fingerprint": "d107c3d8d335e63f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5bc6bc809205c9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-org-braindump.ts:88"}, "properties": {"repobilityId": "1c395655c601ef8b", "scanner": "scanner-primary", "fingerprint": "b5bc6bc809205c9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f82cda1dbbb76bc2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/reset-account-full.ts:94"}, "properties": {"repobilityId": "c06ccf6bc1e1cd52", "scanner": "scanner-primary", "fingerprint": "f82cda1dbbb76bc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8319f8661965de23", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-northbeam-demo.ts:251"}, "properties": {"repobilityId": "4edadbf2a02a8b91", "scanner": "scanner-primary", "fingerprint": "8319f8661965de23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3644a5aa842f0c2e", "level": "none", "message": {"text": "Commented-code block (7 lines) in script/build.ts:13"}, "properties": {"repobilityId": "49b5c3a31c1cfd7d", "scanner": "scanner-primary", "fingerprint": "3644a5aa842f0c2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1740a88effb6d4ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/legal-hash.test.ts:1"}, "properties": {"repobilityId": "f7195bccb7bf8c44", "scanner": "scanner-primary", "fingerprint": "1740a88effb6d4ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-016811fb63983804", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/chat-parser-vocab.test.ts:4"}, "properties": {"repobilityId": "90245eca14a035ed", "scanner": "scanner-primary", "fingerprint": "016811fb63983804", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f113929aee9c1efd", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/sop-confirm.test.ts:4"}, "properties": {"repobilityId": "17405deacea8b88d", "scanner": "scanner-primary", "fingerprint": "f113929aee9c1efd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12657aefc79aa092", "level": "note", "message": {"text": "Legacy-named symbol `agrees_with_legacy` in server/chat-parser.test.ts:828"}, "properties": {"repobilityId": "aa1b12d4d6a0425c", "scanner": "scanner-primary", "fingerprint": "12657aefc79aa092", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7c44bf1eb2f5aae", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/recall-scope.test.ts:4"}, "properties": {"repobilityId": "abf0dc6532164f77", "scanner": "scanner-primary", "fingerprint": "d7c44bf1eb2f5aae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee9b922a1ff51c7c", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/first-run-moat.test.ts:6"}, "properties": {"repobilityId": "9afc19dfa3dcfc62", "scanner": "scanner-primary", "fingerprint": "ee9b922a1ff51c7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c4f41182d62f392", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/app.ts:42"}, "properties": {"repobilityId": "39f39094398bfe3c", "scanner": "scanner-primary", "fingerprint": "3c4f41182d62f392", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-439a7baacfbecd81", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/journey-smoke.test.ts:1"}, "properties": {"repobilityId": "c98d97f60b93ce91", "scanner": "scanner-primary", "fingerprint": "439a7baacfbecd81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9361d8820cea386e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/first-run-moat-sanitizer.test.ts:8"}, "properties": {"repobilityId": "0c612ce3259cd945", "scanner": "scanner-primary", "fingerprint": "9361d8820cea386e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bd30f56c24757d4", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/integrations.ts:10"}, "properties": {"repobilityId": "29c2d03c3930a7c2", "scanner": "scanner-primary", "fingerprint": "1bd30f56c24757d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b56ef103f2b4ca55", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/integrations.ts:1205"}, "properties": {"repobilityId": "c0dfb4fdfc2927f2", "scanner": "scanner-primary", "fingerprint": "b56ef103f2b4ca55", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f145618579f8351", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/auth-supabase.ts:89"}, "properties": {"repobilityId": "1f7ff7d00baaf1cb", "scanner": "scanner-primary", "fingerprint": "0f145618579f8351", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58f49d70c0805e71", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/boot-probes.ts:104"}, "properties": {"repobilityId": "076104f643b92ec2", "scanner": "scanner-primary", "fingerprint": "58f49d70c0805e71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60decd673399becd", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/donnit-store.ts:14"}, "properties": {"repobilityId": "d42594204ce78f9d", "scanner": "scanner-primary", "fingerprint": "60decd673399becd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9c66188a3e17def", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/goal-outcome-memory.ts:3"}, "properties": {"repobilityId": "a5317c150c50cee4", "scanner": "scanner-primary", "fingerprint": "f9c66188a3e17def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-545491729c5f9d5d", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/llm-circuit-breaker.ts:3"}, "properties": {"repobilityId": "21076be44325ba15", "scanner": "scanner-primary", "fingerprint": "545491729c5f9d5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d638450cb1e612d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/interaction-sequence.ts:3"}, "properties": {"repobilityId": "439a0de24ed63b93", "scanner": "scanner-primary", "fingerprint": "d638450cb1e612d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a86ab8f6c2813ce", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-offer.ts:3"}, "properties": {"repobilityId": "d8afbe6d16d47cc0", "scanner": "scanner-primary", "fingerprint": "6a86ab8f6c2813ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-205515f772dc6dc3", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/intelligence/subtask-dating.ts:5"}, "properties": {"repobilityId": "85941db98864887f", "scanner": "scanner-primary", "fingerprint": "205515f772dc6dc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fd11275a86ae532", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-nudge.ts:3"}, "properties": {"repobilityId": "8a2cb9b6a08c6b3d", "scanner": "scanner-primary", "fingerprint": "0fd11275a86ae532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f81169bfa5fb811c", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/position-reachability.test.ts:10"}, "properties": {"repobilityId": "75c00d872af6b95d", "scanner": "scanner-primary", "fingerprint": "f81169bfa5fb811c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f68986f917910d37", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/position-reachability.ts:14"}, "properties": {"repobilityId": "398fb364dda22c2b", "scanner": "scanner-primary", "fingerprint": "f68986f917910d37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d0242cbefb9bc1f", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/intelligence/slack-ingest-routing.ts:1"}, "properties": {"repobilityId": "9a6896e1929f5b23", "scanner": "scanner-primary", "fingerprint": "8d0242cbefb9bc1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a9c1d777bf6c95e", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/recurrence-e2e.test.ts:11"}, "properties": {"repobilityId": "cd5501a144f70291", "scanner": "scanner-primary", "fingerprint": "0a9c1d777bf6c95e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d354c25cc4ed8211", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/brain-permissions.test.ts:3"}, "properties": {"repobilityId": "5c3ad56eb61c1b94", "scanner": "scanner-primary", "fingerprint": "d354c25cc4ed8211", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-caa27af026ec656d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/token-normalize.test.ts:33"}, "properties": {"repobilityId": "4bc8c1283b345e06", "scanner": "scanner-primary", "fingerprint": "caa27af026ec656d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd9328f675df0c09", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/brain-proposals.ts:1"}, "properties": {"repobilityId": "ae0fde3551b8e5f1", "scanner": "scanner-primary", "fingerprint": "dd9328f675df0c09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f93e70e462534127", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/ingestion-memory.ts:4"}, "properties": {"repobilityId": "4ea8bd598a387353", "scanner": "scanner-primary", "fingerprint": "f93e70e462534127", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-150bcc75d0bd9f25", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/organization-context.ts:8"}, "properties": {"repobilityId": "fffb8600e0735bc2", "scanner": "scanner-primary", "fingerprint": "150bcc75d0bd9f25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d2ca5cdfe6156ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-detector.ts:7"}, "properties": {"repobilityId": "ab24757418faae49", "scanner": "scanner-primary", "fingerprint": "8d2ca5cdfe6156ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc36055270a7bfbb", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/brain-rollback.test.ts:1"}, "properties": {"repobilityId": "8ada8a76a6751c23", "scanner": "scanner-primary", "fingerprint": "cc36055270a7bfbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a76c0737f4b7e7e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/position-router.ts:191"}, "properties": {"repobilityId": "7e869ab6faa5dfa5", "scanner": "scanner-primary", "fingerprint": "a76c0737f4b7e7e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e54bfde8ee08c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/client-status.ts:1"}, "properties": {"repobilityId": "13e1c42e0a5e2514", "scanner": "scanner-primary", "fingerprint": "21e54bfde8ee08c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b1466c9f69da92f", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/recurrence-link.ts:3"}, "properties": {"repobilityId": "a6ccd7858554d25d", "scanner": "scanner-primary", "fingerprint": "2b1466c9f69da92f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-389f8c009266f7cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/task-profile-match.test.ts:331"}, "properties": {"repobilityId": "5d87e789671143de", "scanner": "scanner-primary", "fingerprint": "389f8c009266f7cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd4fa75d512286f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/routing-correction.ts:3"}, "properties": {"repobilityId": "4b8c697d09b4f0d4", "scanner": "scanner-primary", "fingerprint": "dd4fa75d512286f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bac97e71f0380e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/embeddings.ts:3"}, "properties": {"repobilityId": "68522168850ffd8a", "scanner": "scanner-primary", "fingerprint": "7bac97e71f0380e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ab9f0f0c5aceac5", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/recurrence-materializer.ts:116"}, "properties": {"repobilityId": "0abe8f22676b4668", "scanner": "scanner-primary", "fingerprint": "0ab9f0f0c5aceac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3ce61d7e751cc35", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/completion-memory-draft.ts:3"}, "properties": {"repobilityId": "a561dcede922eb10", "scanner": "scanner-primary", "fingerprint": "e3ce61d7e751cc35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f5348ea3563cf0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/task-profile-match.ts:15"}, "properties": {"repobilityId": "99b31155d3f55e49", "scanner": "scanner-primary", "fingerprint": "8f5348ea3563cf0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f08baf8c4d4a2a94", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/position-brain-context.ts:54"}, "properties": {"repobilityId": "42ea51d329c5d279", "scanner": "scanner-primary", "fingerprint": "f08baf8c4d4a2a94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0471e6fda393548c", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/company-brain-ask.ts:1"}, "properties": {"repobilityId": "5b3168a0cbce97eb", "scanner": "scanner-primary", "fingerprint": "0471e6fda393548c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04c0aab4eafb2713", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/language-normalizer.test.ts:45"}, "properties": {"repobilityId": "2181be9a6da0cf17", "scanner": "scanner-primary", "fingerprint": "04c0aab4eafb2713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f364afe857a405a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/sop-extraction.ts:7"}, "properties": {"repobilityId": "132ab2776d305603", "scanner": "scanner-primary", "fingerprint": "f364afe857a405a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92752d38fff7164c", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/ingest-triage.ts:9"}, "properties": {"repobilityId": "e7719d678966dc8a", "scanner": "scanner-primary", "fingerprint": "92752d38fff7164c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27f259e7e2cbbc22", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/intelligence/token-normalize.ts:3"}, "properties": {"repobilityId": "436cda0343cdbc60", "scanner": "scanner-primary", "fingerprint": "27f259e7e2cbbc22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-884c64b6e8cc276a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/memory-quick-capture.ts:9"}, "properties": {"repobilityId": "846e466a0bca9839", "scanner": "scanner-primary", "fingerprint": "884c64b6e8cc276a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919a74af8cbefb27", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/contradiction.ts:3"}, "properties": {"repobilityId": "818055c3fceed934", "scanner": "scanner-primary", "fingerprint": "919a74af8cbefb27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-178e0b9cfa050066", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/language-normalizer.ts:308"}, "properties": {"repobilityId": "94af093552e68d95", "scanner": "scanner-primary", "fingerprint": "178e0b9cfa050066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0bdb09c16c2a617", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/anthropic-agent.ts:75"}, "properties": {"repobilityId": "04c4a5df78f11bd6", "scanner": "scanner-primary", "fingerprint": "b0bdb09c16c2a617", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-555cdbf96e648e8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/recall-answer.test.ts:594"}, "properties": {"repobilityId": "6def2aa5b57194e6", "scanner": "scanner-primary", "fingerprint": "555cdbf96e648e8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2164b3de6414416a", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/incremental-hygiene.ts:14"}, "properties": {"repobilityId": "6b3acd1ed86d2737", "scanner": "scanner-primary", "fingerprint": "2164b3de6414416a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34454eb6f78431dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/recall-answer.ts:1"}, "properties": {"repobilityId": "db401ae3e2ce5580", "scanner": "scanner-primary", "fingerprint": "34454eb6f78431dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf5d8479a0f71221", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/donnit-readiness.ts:3"}, "properties": {"repobilityId": "f8822b03ae004f76", "scanner": "scanner-primary", "fingerprint": "bf5d8479a0f71221", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f35515f3e1d0c97b", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/onboardme.ts:3"}, "properties": {"repobilityId": "6eebf3e9fd31b86f", "scanner": "scanner-primary", "fingerprint": "f35515f3e1d0c97b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99059f4e9f6f05ea", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/untrusted-content.ts:3"}, "properties": {"repobilityId": "7898aedd444dfaed", "scanner": "scanner-primary", "fingerprint": "99059f4e9f6f05ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b0a4143f64173da", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/position-disambiguation.ts:3"}, "properties": {"repobilityId": "bffc7f76d995b695", "scanner": "scanner-primary", "fingerprint": "3b0a4143f64173da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99030c7de7fe0829", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/rerank.ts:3"}, "properties": {"repobilityId": "507f29d20f48efcf", "scanner": "scanner-primary", "fingerprint": "99030c7de7fe0829", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb990eb79cf18fdb", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/sop-generalization.test.ts:5"}, "properties": {"repobilityId": "7eab4cbe55b34dfb", "scanner": "scanner-primary", "fingerprint": "cb990eb79cf18fdb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6e763174d62ef16", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/roadmap-extraction.ts:3"}, "properties": {"repobilityId": "e90a13eaa396b12a", "scanner": "scanner-primary", "fingerprint": "e6e763174d62ef16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b51ed9a723b8bec2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/subtask-dating.test.ts:101"}, "properties": {"repobilityId": "b3c7840b0cf56180", "scanner": "scanner-primary", "fingerprint": "b51ed9a723b8bec2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62a2fb4dbcce1065", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/language-normalizer-dictionaryless.test.ts:1"}, "properties": {"repobilityId": "c8af9c918c31b282", "scanner": "scanner-primary", "fingerprint": "62a2fb4dbcce1065", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a0fa325af53e4be", "level": "note", "message": {"text": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.test.ts:283"}, "properties": {"repobilityId": "921b4c0e60639655", "scanner": "scanner-primary", "fingerprint": "9a0fa325af53e4be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-574cf83ac6a19ea2", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/waterfall-triggers.ts:3"}, "properties": {"repobilityId": "d1a32e21e41ce8d9", "scanner": "scanner-primary", "fingerprint": "574cf83ac6a19ea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5198044e11a01fce", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/brain-export.test.ts:279"}, "properties": {"repobilityId": "812d7f297b9207e4", "scanner": "scanner-primary", "fingerprint": "5198044e11a01fce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c0f675104e9b6d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/memory-score.ts:3"}, "properties": {"repobilityId": "2c7a60414aa5d8da", "scanner": "scanner-primary", "fingerprint": "4c0f675104e9b6d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a64cf505bb69c1c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/goal-intent.ts:3"}, "properties": {"repobilityId": "ca37cda487a9baa9", "scanner": "scanner-primary", "fingerprint": "a64cf505bb69c1c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb481d1a3b65b678", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/chat-batch-tasks.ts:32"}, "properties": {"repobilityId": "23ab36243b1debce", "scanner": "scanner-primary", "fingerprint": "eb481d1a3b65b678", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bcc4c295c4cbef8", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/rule-replay.ts:1"}, "properties": {"repobilityId": "9e92ca6c5d1869e2", "scanner": "scanner-primary", "fingerprint": "2bcc4c295c4cbef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c353adb66a54d6e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/brain-export.ts:228"}, "properties": {"repobilityId": "846e7dfaac1b9553", "scanner": "scanner-primary", "fingerprint": "c353adb66a54d6e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e6390ff66b8cb13", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/position-router-llm.ts:1"}, "properties": {"repobilityId": "df94d2739925da50", "scanner": "scanner-primary", "fingerprint": "9e6390ff66b8cb13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-253588834fdb0b43", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/intelligence/handoff-packet.ts:4"}, "properties": {"repobilityId": "ca9d269e02a74a3a", "scanner": "scanner-primary", "fingerprint": "253588834fdb0b43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b0e3f28bc5cc881", "level": "note", "message": {"text": "Legacy-named symbol `agrees_with_legacy` in server/intelligence/task-resolution-view.ts:28"}, "properties": {"repobilityId": "8df965e852e36d32", "scanner": "scanner-primary", "fingerprint": "1b0e3f28bc5cc881", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-736d8637e561e16a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/intelligence/position-scaffold/starter-set.ts:7"}, "properties": {"repobilityId": "d6d6e53f53ddf3a0", "scanner": "scanner-primary", "fingerprint": "736d8637e561e16a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdcadfc66861b2e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/position-scaffold/index.ts:3"}, "properties": {"repobilityId": "6960225f96129cba", "scanner": "scanner-primary", "fingerprint": "fdcadfc66861b2e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbedea459a1b3e66", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/role-starter-packs/index.ts:3"}, "properties": {"repobilityId": "65c9c31b0b9351bd", "scanner": "scanner-primary", "fingerprint": "cbedea459a1b3e66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c98c7aff2b54f486", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/parse.test.ts:1"}, "properties": {"repobilityId": "e62c425de499a1a9", "scanner": "scanner-primary", "fingerprint": "c98c7aff2b54f486", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a193ddddb0357073", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.test.ts:1"}, "properties": {"repobilityId": "774f2d0d21bda7cd", "scanner": "scanner-primary", "fingerprint": "a193ddddb0357073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5eab7494835b1948", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/intelligence/onboarding/fetch-link.ts:3"}, "properties": {"repobilityId": "d4efc8ecd36b40b9", "scanner": "scanner-primary", "fingerprint": "5eab7494835b1948", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d46d9bf4a45bbc11", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/intelligence/onboarding/fetch-link.ts:59"}, "properties": {"repobilityId": "1726e5e38be409cc", "scanner": "scanner-primary", "fingerprint": "d46d9bf4a45bbc11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c9b7c0e89a511b3a", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/intelligence/onboarding/parse.ts:3"}, "properties": {"repobilityId": "880b657eb44f3942", "scanner": "scanner-primary", "fingerprint": "c9b7c0e89a511b3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-798bfb3b99e1bd4c", "level": "note", "message": {"text": "Legacy-named symbol `onboarding_braindump_extractor_v1` in server/intelligence/onboarding/extract.ts:442"}, "properties": {"repobilityId": "3f8dec502b991612", "scanner": "scanner-primary", "fingerprint": "798bfb3b99e1bd4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3e697e0d57b16def", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/onboarding/extract.ts:4"}, "properties": {"repobilityId": "58b0f87de8f76aae", "scanner": "scanner-primary", "fingerprint": "3e697e0d57b16def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b72f24850db7b8d", "level": "note", "message": {"text": "Legacy-named symbol `task_update_assistant_v1` in server/intelligence/skills/task-update-assistant.ts:313"}, "properties": {"repobilityId": "02b51466eeee05b8", "scanner": "scanner-primary", "fingerprint": "3b72f24850db7b8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-47d0206f91dd1534", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/intelligence/skills/task-update-assistant.ts:318"}, "properties": {"repobilityId": "917968b17468fc01", "scanner": "scanner-primary", "fingerprint": "47d0206f91dd1534", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a9c22a44b779336", "level": "note", "message": {"text": "Legacy-named symbol `task_execute_draft_v1` in server/intelligence/skills/task-execute-draft.ts:221"}, "properties": {"repobilityId": "ac8c12d491befcc9", "scanner": "scanner-primary", "fingerprint": "6a9c22a44b779336", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f2aa2555626fa5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/intelligence/skills/task-execute-draft.ts:4"}, "properties": {"repobilityId": "ca43ac98a1d00c0f", "scanner": "scanner-primary", "fingerprint": "0f2aa2555626fa5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25a0f41524919590", "level": "note", "message": {"text": "Legacy-named symbol `suggestion_reply_drafter_v1` in server/intelligence/skills/reply-drafter.ts:225"}, "properties": {"repobilityId": "c53d51990d26e2d9", "scanner": "scanner-primary", "fingerprint": "25a0f41524919590", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1fa214dec0d89fff", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/slack-reply.ts:1"}, "properties": {"repobilityId": "947ee6a7719bf67d", "scanner": "scanner-primary", "fingerprint": "1fa214dec0d89fff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3500ec4a42b3d8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/email.ts:3"}, "properties": {"repobilityId": "fe891720eeb8ba90", "scanner": "scanner-primary", "fingerprint": "d3500ec4a42b3d8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f3c35ff5df6215", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/markdown-to-text.ts:4"}, "properties": {"repobilityId": "97ac099ca6d688ad", "scanner": "scanner-primary", "fingerprint": "60f3c35ff5df6215", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d88bc7262ac73f60", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/onboarding-tags.ts:9"}, "properties": {"repobilityId": "736a40b73d7e4038", "scanner": "scanner-primary", "fingerprint": "d88bc7262ac73f60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8cf06b9a377ba5a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/block-editor-markdown.spike.test.ts:3"}, "properties": {"repobilityId": "5abce56be96bab31", "scanner": "scanner-primary", "fingerprint": "c8cf06b9a377ba5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30b1a86fe54c24c6", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/seed-getting-started.ts:3"}, "properties": {"repobilityId": "45e05717c7b5404a", "scanner": "scanner-primary", "fingerprint": "30b1a86fe54c24c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91c86e17daa5279c", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/agent/config.ts:32"}, "properties": {"repobilityId": "63dda80b06771408", "scanner": "scanner-primary", "fingerprint": "91c86e17daa5279c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd03c73204069238", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/agent/interpretation.ts:3"}, "properties": {"repobilityId": "a9e64236922e0481", "scanner": "scanner-primary", "fingerprint": "bd03c73204069238", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d84647a9508c60d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/agent/actions.ts:3"}, "properties": {"repobilityId": "13114086740a3ad4", "scanner": "scanner-primary", "fingerprint": "0d84647a9508c60d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0fb493acfe10cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/agent/assemble-context.ts:8"}, "properties": {"repobilityId": "7fadc5e263021d96", "scanner": "scanner-primary", "fingerprint": "3c0fb493acfe10cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d693d8cced5dfcf3", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/lib/agent/router.ts:7"}, "properties": {"repobilityId": "b70c1adff853e9dc", "scanner": "scanner-primary", "fingerprint": "d693d8cced5dfcf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4adfad86f44c575", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/query/search.ts:206"}, "properties": {"repobilityId": "040f8696b89299bc", "scanner": "scanner-primary", "fingerprint": "f4adfad86f44c575", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d2242b59c15bb97", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/query/think.ts:87"}, "properties": {"repobilityId": "778da93f414d9201", "scanner": "scanner-primary", "fingerprint": "5d2242b59c15bb97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ead83de08a810dda", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/memory-docs/schema.ts:52"}, "properties": {"repobilityId": "28b39f13050c502e", "scanner": "scanner-primary", "fingerprint": "ead83de08a810dda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38776ca76a692d5c", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/lib/memory-docs/capture-policy.ts:3"}, "properties": {"repobilityId": "a015a71de7599067", "scanner": "scanner-primary", "fingerprint": "38776ca76a692d5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3df03fbbfdc27b97", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/memory-docs/reflection.ts:3"}, "properties": {"repobilityId": "c5bc7e9938ef7602", "scanner": "scanner-primary", "fingerprint": "3df03fbbfdc27b97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ee17ed4966a7a92", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/onboarding/foundation-orgchart.ts:3"}, "properties": {"repobilityId": "900e955c675fdf55", "scanner": "scanner-primary", "fingerprint": "3ee17ed4966a7a92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8522d1f8320ab19", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/onboarding/team-import.ts:3"}, "properties": {"repobilityId": "aee2a56d2b04d1dc", "scanner": "scanner-primary", "fingerprint": "a8522d1f8320ab19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2de6b2fd8ba71601", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/onboarding/foundation.ts:102"}, "properties": {"repobilityId": "630ad0912837cfb3", "scanner": "scanner-primary", "fingerprint": "2de6b2fd8ba71601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b907642925a8152", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/onboarding/foundation-apply.ts:3"}, "properties": {"repobilityId": "c11fba969dbdcaf0", "scanner": "scanner-primary", "fingerprint": "9b907642925a8152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3b7c891c0eff268", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/billing/stripe.ts:8"}, "properties": {"repobilityId": "692471fc167646d6", "scanner": "scanner-primary", "fingerprint": "a3b7c891c0eff268", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2692e4a3d99057e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in handoff/prototype/tweaks-panel.jsx:12"}, "properties": {"repobilityId": "923acde3d21b5530", "scanner": "scanner-primary", "fingerprint": "2692e4a3d99057e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d6ffa20a9f1093b", "level": "note", "message": {"text": "24 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "880bbf29bf1f87e1", "scanner": "scanner-primary", "fingerprint": "2d6ffa20a9f1093b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-46dc03eab6bae210", "level": "warning", "message": {"text": "Frontend route `/blog/:slug` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "f1e094265d56c60b", "scanner": "scanner-primary", "fingerprint": "46dc03eab6bae210", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c0c3c17afd79ba66", "level": "warning", "message": {"text": "Frontend route `/join/:inviteId` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "984ff9feab28bf42", "scanner": "scanner-primary", "fingerprint": "c0c3c17afd79ba66", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-37059e21ecf008d4", "level": "warning", "message": {"text": "Frontend route `/app` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "80e7a6050e490a1b", "scanner": "scanner-primary", "fingerprint": "37059e21ecf008d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-393cb9ab42d4accc", "level": "warning", "message": {"text": "Frontend route `/log` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "1e2f32553ca3a594", "scanner": "scanner-primary", "fingerprint": "393cb9ab42d4accc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0a42dd64068d120f", "level": "warning", "message": {"text": "Frontend route `/dev/components` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "d7208297ed77882c", "scanner": "scanner-primary", "fingerprint": "0a42dd64068d120f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c55c45c883cff83a", "level": "warning", "message": {"text": "Frontend route `/redesign` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "59bf283770c64875", "scanner": "scanner-primary", "fingerprint": "c55c45c883cff83a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bc3d4d003330ad45", "level": "error", "message": {"text": "Dangling fetch: POST https://slack.com/api/auth.test (scripts/diag-slack-token.ts:34)"}, "properties": {"repobilityId": "bb343d2b7e4607a9", "scanner": "scanner-primary", "fingerprint": "bc3d4d003330ad45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-87dea41a4ee1e3ff", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (scripts/embed-brain.ts:67)"}, "properties": {"repobilityId": "d8ddaad2a92b4398", "scanner": "scanner-primary", "fingerprint": "87dea41a4ee1e3ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b080f2af02d7fa8", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:357)"}, "properties": {"repobilityId": "65a5c9f8923dec91", "scanner": "scanner-primary", "fingerprint": "5b080f2af02d7fa8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d0746f31a896ea6", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/integrations.ts:397)"}, "properties": {"repobilityId": "c142aa9f3e6ffae7", "scanner": "scanner-primary", "fingerprint": "2d0746f31a896ea6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c9c72e63821e5f6", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (server/integrations.ts:1205)"}, "properties": {"repobilityId": "4bfe19e9867d561f", "scanner": "scanner-primary", "fingerprint": "1c9c72e63821e5f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-991c890648a87dbb", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/embeddings (server/intelligence/embeddings.ts:32)"}, "properties": {"repobilityId": "c4b0fdbb0d7a95c3", "scanner": "scanner-primary", "fingerprint": "991c890648a87dbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-657ab50830ca4a0c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (server/intelligence/openai-agent.ts:98)"}, "properties": {"repobilityId": "930a9077c95c4e69", "scanner": "scanner-primary", "fingerprint": "657ab50830ca4a0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f36a9b324905af6f", "level": "note", "message": {"text": "Unused endpoint: USE /{*path}"}, "properties": {"repobilityId": "8d925892047c5a7a", "scanner": "scanner-primary", "fingerprint": "f36a9b324905af6f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "dc14d10179eeaa30", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "54492c2b662dbb0c", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-29086923e8b4559f", "level": "note", "message": {"text": "Unused endpoint: GET /api/health/db"}, "properties": {"repobilityId": "8698a429bff0b0ac", "scanner": "scanner-primary", "fingerprint": "29086923e8b4559f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee4aa5ddab88c9dc", "level": "note", "message": {"text": "Unused endpoint: GET /api/auth/me"}, "properties": {"repobilityId": "915f7eb2e233bd74", "scanner": "scanner-primary", "fingerprint": "ee4aa5ddab88c9dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be055ad4bc53aef8", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/bootstrap"}, "properties": {"repobilityId": "55d207cb3a97ded5", "scanner": "scanner-primary", "fingerprint": "be055ad4bc53aef8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9cb7b2058580914c", "level": "note", "message": {"text": "Unused endpoint: GET /api/bootstrap"}, "properties": {"repobilityId": "f817b22fe7aeb5e9", "scanner": "scanner-primary", "fingerprint": "9cb7b2058580914c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c294422727757bfa", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/profile/signature"}, "properties": {"repobilityId": "9f881d0d2cfbb010", "scanner": "scanner-primary", "fingerprint": "c294422727757bfa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8fdc94bda4f78123", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/workspace-state"}, "properties": {"repobilityId": "7f440a9c05234d29", "scanner": "scanner-primary", "fingerprint": "8fdc94bda4f78123", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-318929e52ba36e52", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/workspace/learning-policy"}, "properties": {"repobilityId": "7249635d1881ef21", "scanner": "scanner-primary", "fingerprint": "318929e52ba36e52", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47855d5645b25da7", "level": "note", "message": {"text": "Unused endpoint: GET /api/brain/proposals"}, "properties": {"repobilityId": "7355986a834573c5", "scanner": "scanner-primary", "fingerprint": "47855d5645b25da7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-87e282f2bdfb1a82", "level": "note", "message": {"text": "Unused endpoint: POST /api/brain/proposals/:id/approve"}, "properties": {"repobilityId": "cab27078ab0dce9e", "scanner": "scanner-primary", "fingerprint": "87e282f2bdfb1a82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-154c29cc5be0229a", "level": "note", "message": {"text": "Unused endpoint: POST /api/brain/proposals/:id/dismiss"}, "properties": {"repobilityId": "ccf3f9df074f6b2b", "scanner": "scanner-primary", "fingerprint": "154c29cc5be0229a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a5a8f037a6c81fea", "level": "note", "message": {"text": "Unused endpoint: GET /api/workspace/ai-runtime-status"}, "properties": {"repobilityId": "d0138265fe8e663d", "scanner": "scanner-primary", "fingerprint": "a5a8f037a6c81fea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-af91b83f79a7f1bb", "level": "note", "message": {"text": "Unused endpoint: GET /api/workspace/ai-usage"}, "properties": {"repobilityId": "46f7facb9a4ca895", "scanner": "scanner-primary", "fingerprint": "af91b83f79a7f1bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-de544100debf29b2", "level": "note", "message": {"text": "Unused endpoint: GET /api/workspace/ai-provider"}, "properties": {"repobilityId": "e8aa0519132852a6", "scanner": "scanner-primary", "fingerprint": "de544100debf29b2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-138e861cbbf47c49", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/workspace/ai-provider"}, "properties": {"repobilityId": "b755459ecae366da", "scanner": "scanner-primary", "fingerprint": "138e861cbbf47c49", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-29bb3573b6822660", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:profileId/requests"}, "properties": {"repobilityId": "d5d2058ab9156ed5", "scanner": "scanner-primary", "fingerprint": "29bb3573b6822660", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c29feacad6a611c5", "level": "note", "message": {"text": "Unused endpoint: GET /api/admin/assignment-requests"}, "properties": {"repobilityId": "2fcb598c57a16b3c", "scanner": "scanner-primary", "fingerprint": "c29feacad6a611c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56668511c4891b17", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/approve"}, "properties": {"repobilityId": "3057bd88027acfb8", "scanner": "scanner-primary", "fingerprint": "56668511c4891b17", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-695bd1aef577a8a6", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/assignment-requests/:requestId/decline"}, "properties": {"repobilityId": "fcbf8806e4df8bf9", "scanner": "scanner-primary", "fingerprint": "695bd1aef577a8a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d85167e121ae126d", "level": "note", "message": {"text": "Unused endpoint: GET /api/positions/:id/brain"}, "properties": {"repobilityId": "1428274682b89dee", "scanner": "scanner-primary", "fingerprint": "d85167e121ae126d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-44a5cf159e5de5b1", "level": "note", "message": {"text": "Unused endpoint: POST /api/memory/quick-capture"}, "properties": {"repobilityId": "5fe4de89c3592b0e", "scanner": "scanner-primary", "fingerprint": "44a5cf159e5de5b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b28cc82b68304b2a", "level": "note", "message": {"text": "Unused endpoint: POST /api/signals/ordering"}, "properties": {"repobilityId": "5a8fde42ed4b7e2f", "scanner": "scanner-primary", "fingerprint": "b28cc82b68304b2a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ac1ba0160db8ef9", "level": "note", "message": {"text": "Unused endpoint: POST /api/me/active-position"}, "properties": {"repobilityId": "5c9d473e14281280", "scanner": "scanner-primary", "fingerprint": "3ac1ba0160db8ef9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b70140322e913171", "level": "note", "message": {"text": "Unused endpoint: GET /api/admin/ingest-metrics"}, "properties": {"repobilityId": "dfa98598488b5e36", "scanner": "scanner-primary", "fingerprint": "b70140322e913171", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-899a6bb7f8524d6b", "level": "note", "message": {"text": "Unused endpoint: POST /api/tasks/:taskId/apply-sop-steps"}, "properties": {"repobilityId": "d4f6a25eb5890dd5", "scanner": "scanner-primary", "fingerprint": "899a6bb7f8524d6b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-659a0886b19b3b4c", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:id/brain/import-document"}, "properties": {"repobilityId": "a3c3ecf0fb299caf", "scanner": "scanner-primary", "fingerprint": "659a0886b19b3b4c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f3ec732c6e64737", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:id/brain/ask"}, "properties": {"repobilityId": "cebdc468f953e54d", "scanner": "scanner-primary", "fingerprint": "6f3ec732c6e64737", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c010d65d19f85e9", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:id/brain/import-link"}, "properties": {"repobilityId": "673e6948255f4d1d", "scanner": "scanner-primary", "fingerprint": "0c010d65d19f85e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5a951c01fb9bcd5b", "level": "note", "message": {"text": "Unused endpoint: POST /api/onboarding/foundation"}, "properties": {"repobilityId": "dc3d3cb42cda5062", "scanner": "scanner-primary", "fingerprint": "5a951c01fb9bcd5b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1fe9bcb58ff1b30a", "level": "note", "message": {"text": "Unused endpoint: POST /api/onboarding/foundation/preview"}, "properties": {"repobilityId": "f376093f9a9e6ab1", "scanner": "scanner-primary", "fingerprint": "1fe9bcb58ff1b30a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-591845e42529b3a2", "level": "note", "message": {"text": "Unused endpoint: POST /api/workspace/team-import"}, "properties": {"repobilityId": "cbd900f4a3f49838", "scanner": "scanner-primary", "fingerprint": "591845e42529b3a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3f0e10b1ed4ecfd3", "level": "note", "message": {"text": "Unused endpoint: POST /api/workspace/invite"}, "properties": {"repobilityId": "736be87844ba6224", "scanner": "scanner-primary", "fingerprint": "3f0e10b1ed4ecfd3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30ab82f2df68285a", "level": "note", "message": {"text": "Unused endpoint: POST /api/inbox/mute-sender"}, "properties": {"repobilityId": "4a7f1ae747c64b93", "scanner": "scanner-primary", "fingerprint": "30ab82f2df68285a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd401acab65a7d4f", "level": "note", "message": {"text": "Unused endpoint: GET /api/inbox/muted-senders"}, "properties": {"repobilityId": "ca98556a3571c0fb", "scanner": "scanner-primary", "fingerprint": "cd401acab65a7d4f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-81dca124a02a99c4", "level": "note", "message": {"text": "Unused endpoint: POST /api/inbox/unmute-sender"}, "properties": {"repobilityId": "98d09fcc4c867ccc", "scanner": "scanner-primary", "fingerprint": "81dca124a02a99c4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a26922d91f741be7", "level": "note", "message": {"text": "Unused endpoint: POST /api/workspace/switch"}, "properties": {"repobilityId": "4e0aad64898e9daa", "scanner": "scanner-primary", "fingerprint": "a26922d91f741be7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db6d52ae3402039f", "level": "note", "message": {"text": "Unused endpoint: POST /api/workspace/invites/:inviteId/accept"}, "properties": {"repobilityId": "4822079a2c1c5663", "scanner": "scanner-primary", "fingerprint": "db6d52ae3402039f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-333d7f53ba7aa6f3", "level": "note", "message": {"text": "Unused endpoint: GET /api/workspace/team-invites"}, "properties": {"repobilityId": "81c095ae7ad95401", "scanner": "scanner-primary", "fingerprint": "333d7f53ba7aa6f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-693706161efe18d1", "level": "note", "message": {"text": "Unused endpoint: POST /api/workspace/team-invites/:inviteId/revoke"}, "properties": {"repobilityId": "810609541075c52d", "scanner": "scanner-primary", "fingerprint": "693706161efe18d1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf15851bccfc2438", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:positionId/triggers"}, "properties": {"repobilityId": "54090b3fb44fb8d8", "scanner": "scanner-primary", "fingerprint": "bf15851bccfc2438", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2c3f0d03f0f261b", "level": "note", "message": {"text": "Unused endpoint: GET /api/positions/:positionId/triggers"}, "properties": {"repobilityId": "33be4946648eb070", "scanner": "scanner-primary", "fingerprint": "e2c3f0d03f0f261b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b0be5f4f80751be4", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:positionId/triggers/:candidateId/archive"}, "properties": {"repobilityId": "b43b5a2d3dd4b114", "scanner": "scanner-primary", "fingerprint": "b0be5f4f80751be4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e25b3a9be71ae3b0", "level": "note", "message": {"text": "Unused endpoint: GET /api/suggestions"}, "properties": {"repobilityId": "681aa91f51d4cdf8", "scanner": "scanner-primary", "fingerprint": "e25b3a9be71ae3b0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c6b9bc0ac49ef0e6", "level": "note", "message": {"text": "Unused endpoint: GET /api/home/starter-tasks"}, "properties": {"repobilityId": "eb5fdf2b20df82d4", "scanner": "scanner-primary", "fingerprint": "c6b9bc0ac49ef0e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3be4746be21049c9", "level": "note", "message": {"text": "Unused endpoint: POST /api/home/starter-tasks/:taskMemoryId/start"}, "properties": {"repobilityId": "9a4218ae577bc440", "scanner": "scanner-primary", "fingerprint": "3be4746be21049c9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2c07e79f40d119e", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/accept"}, "properties": {"repobilityId": "b3eb56841de3b9c3", "scanner": "scanner-primary", "fingerprint": "d2c07e79f40d119e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-27b6c06628ca4a50", "level": "note", "message": {"text": "Unused endpoint: POST /api/positions/:positionId/suggestions/:candidateId/dismiss"}, "properties": {"repobilityId": "16982a052105fc02", "scanner": "scanner-primary", "fingerprint": "27b6c06628ca4a50", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-685441d4cb9b3bb1", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/positions/:positionId/brain/:knowledgeId"}, "properties": {"repobilityId": "5573fba16f8c6f29", "scanner": "scanner-primary", "fingerprint": "685441d4cb9b3bb1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}