{"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-3fe9870512115f6c", "name": "Stray `console.log` in TS/JS \u2014 scripts/backup-supabase.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backup-supabase.ts:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30a9f26cca4f46a0", "name": "Stray `console.log` in TS/JS \u2014 scripts/restore-supabase.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/restore-supabase.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-406392af4d4c2894", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/coach-tips-dispatcher/index.ts:269", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/coach-tips-dispatcher/index.ts:269"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7acedd3f20034a62", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-anniversary-check/index.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-anniversary-check/index.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-aad1ae941fa206bd", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/pv-month-end-reminder/index.ts:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/pv-month-end-reminder/index.ts:152"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7884812e1c92a240", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/formation-relay-to-admin/index.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/formation-relay-to-admin/index.ts:128"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a9a7955f2236f1c", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-app-data/index.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-app-data/index.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-7fde802c9cffdae9", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/daily-actions-notifier/index.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/daily-actions-notifier/index.ts:125"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a86e5cf0feb800ec", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/rank-threshold-notifier/index.ts:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/rank-threshold-notifier/index.ts:174"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-39d279827eb6e33d", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/flex-notifier/index.ts:194", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/flex-notifier/index.ts:194"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-099b13786635a070", "name": "Stray `console.log` in TS/JS \u2014 public/sw.js:214", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/sw.js:214"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-659860b0d28222aa", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/client/DistributorBadge.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/client/DistributorBadge.tsx:61"}, "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-1d2b7aed29e413fb", "name": "Icon-only button without accessible name \u2014 src/components/client/EditScheduleModal.tsx:120", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/client/EditScheduleModal.tsx:120"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c94c6299fa6ccb52", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/ProspectionPage.tsx:1090", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/ProspectionPage.tsx:1090"}, "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-f80240f4c3d95a30", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EditInitialAssessmentPage.tsx:964", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EditInitialAssessmentPage.tsx:964"}, "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-e463d57233715adf", "name": "TODO/FIXME marker in shipping code \u2014 src/pages/ClientsPage.tsx:371", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/ClientsPage.tsx:371"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95dfcd4ae9287dc2", "name": "Icon-only button without accessible name \u2014 src/pages/AdminProspectionPage.tsx:627", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/pages/AdminProspectionPage.tsx:627"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89305b622f41ced1", "name": "TODO/FIXME marker in shipping code \u2014 src/pages/AcademyOverviewPage.tsx:614", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/AcademyOverviewPage.tsx:614"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb2a739b8071f61b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/DebugNotificationsPage.tsx:305", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/DebugNotificationsPage.tsx:305"}, "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-08c5680238fdb60c", "name": "\"active\" state uses light bg in a dark theme \u2014 src/pages/GuidePage.tsx:391", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/pages/GuidePage.tsx:391"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1033d12c308ed3b", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype-v3.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype-v3.js:40"}, "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-e44d42587b242560", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-refonte-design.html:1654", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-refonte-design.html:1654"}, "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-484ac3a54364af11", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype.js:40"}, "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-bcf4c1727973d257", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-internationale.html:957", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-internationale.html:957"}, "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-b9d5a9a6a1824eed", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-set-baseline/index.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-set-baseline/index.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-644d9d455e799f99", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-confirm-calendar/index.ts:17", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-confirm-calendar/index.ts:17"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cadad1730e898490", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/request-testimonial/index.ts:20", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/request-testimonial/index.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e542adb4f729afa5", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/client-anniversary-check/index.ts:24", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-anniversary-check/index.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e77aa3e60d844bd", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/get-testimonial-context/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/get-testimonial-context/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7dcae51edbd3a884", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-auto-login-token/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-auto-login-token/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f46186a1f873af96", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-distributor-invite-token/index.ts:24", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-distributor-invite-token/index.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01e3b3fe6d6f5661", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/upload-newsletter-og/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/upload-newsletter-og/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ac65aa17620e245", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/confirm-stripe-payment/index.ts:28", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/confirm-stripe-payment/index.ts:28"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbb044ad12085956", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/send-newsletter-email/index.ts:26", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-newsletter-email/index.ts:26"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5d68c386d772ebe", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-distributor-invite-token/index.ts:28", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-distributor-invite-token/index.ts:28"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a59049319a6acac4", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/noaly/index.ts:41", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/noaly/index.ts:41"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31ff44b985b1524a", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/track-newsletter-view/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/track-newsletter-view/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb7683082fb89939", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-prospect-lead/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-prospect-lead/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25716d7535e4d73e", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-invitation-token/index.ts:27", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-invitation-token/index.ts:27"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d1dfdee6510776f", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/dispatch-newsletter/index.ts:29", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/dispatch-newsletter/index.ts:29"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8bca86052ef7529", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-invitation-token/index.ts:24", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-invitation-token/index.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39fd2bff577b868b", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/resolve-public-share/index.ts:25", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/resolve-public-share/index.ts:25"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a5d162760b2b1cd", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-data/index.ts:20", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-data/index.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-033b26e6d8e61ab0", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/create-public-share-token/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-public-share-token/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edf4e72b6915e860", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-online-bilan/index.ts:81", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-online-bilan/index.ts:81"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-843090708dc3962b", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-auto-login-token/index.ts:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-auto-login-token/index.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8f13e9bdda330e8", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-mark-onboarded/index.ts:16", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-mark-onboarded/index.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ea66e838c11abf1", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/send-push/index.ts:50", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-push/index.ts:50"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e239ccf155843719", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-distributor-invite-token/index.ts:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-distributor-invite-token/index.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7026d1849b8f5a11", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-testimonial/index.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-testimonial/index.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce6f471136f0d36c", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/get-online-bilan-results/index.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/get-online-bilan-results/index.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34425bda36d2c390", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/create-manual-payment-link/index.ts:31", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-manual-payment-link/index.ts:31"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89cd3f11516d2b83", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/create-payment-link/index.ts:27", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-payment-link/index.ts:27"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d0e19d336c72eb7", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/_shared/push.ts:205", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/_shared/push.ts:205"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e450ee75c7b027b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v6-preview.html:1646", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v6-preview.html:1646"}, "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-416c4415f76a2bed", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v7-preview.html:1847", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v7-preview.html:1847"}, "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-91c590c27b84e4a1", "name": "Insecure pattern 'dangerous_innerhtml' in src/pages/ProspectionPage.tsx:1090", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/ProspectionPage.tsx:1090"}, "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-16e148725ba5f6ee", "name": "Insecure pattern 'local_storage_auth_token' in src/features/gamification/hooks/useSessionTracker.ts:111", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/features/gamification/hooks/useSessionTracker.ts:111"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e9d4a7e1b0eabc1", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea73f7bd8a7bbda2", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bda6deb11902724f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f2e423566bc11c2", "name": "Very large file: src/components/pv/PvClientFullPage.tsx (1660 lines)", "shortDescription": {"text": "Very large file: src/components/pv/PvClientFullPage.tsx (1660 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-b8fb34ae2e332b5b", "name": "Very large file: src/components/prospection/ProspectionHub.tsx (1371 lines)", "shortDescription": {"text": "Very large file: src/components/prospection/ProspectionHub.tsx (1371 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-b59fa0f4824aa0fd", "name": "Very large file: src/components/client-detail/ActionsTab.tsx (1557 lines)", "shortDescription": {"text": "Very large file: src/components/client-detail/ActionsTab.tsx (1557 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-8435264e701ae3be", "name": "Very large file: src/pages/UsersPage.tsx (1233 lines)", "shortDescription": {"text": "Very large file: src/pages/UsersPage.tsx (1233 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-31918fb6e29d90e2", "name": "Very large file: src/pages/ProspectionPage.tsx (1651 lines)", "shortDescription": {"text": "Very large file: src/pages/ProspectionPage.tsx (1651 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-a53f9390bad41733", "name": "Very large file: src/pages/EditInitialAssessmentPage.tsx (1261 lines)", "shortDescription": {"text": "Very large file: src/pages/EditInitialAssessmentPage.tsx (1261 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-c43a901bc44f1577", "name": "Very large file: src/pages/OpportunitePage.tsx (1021 lines)", "shortDescription": {"text": "Very large file: src/pages/OpportunitePage.tsx (1021 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-d3ba65432e0c39f7", "name": "Very large file: src/pages/ClientDetailPage.tsx (1593 lines)", "shortDescription": {"text": "Very large file: src/pages/ClientDetailPage.tsx (1593 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-d3558647abfcb41b", "name": "Very large file: src/pages/ClientAppPage.tsx (1410 lines)", "shortDescription": {"text": "Very large file: src/pages/ClientAppPage.tsx (1410 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-00b055ca71435d2f", "name": "Very large file: src/pages/CrmPage.tsx (1385 lines)", "shortDescription": {"text": "Very large file: src/pages/CrmPage.tsx (1385 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-71b2bff7a5bd34af", "name": "Very large file: src/pages/AdminNewsletterEditPage.tsx (1860 lines)", "shortDescription": {"text": "Very large file: src/pages/AdminNewsletterEditPage.tsx (1860 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-ac506822cc1401ef", "name": "Very large file: src/pages/BilanOnlinePage.tsx (1333 lines)", "shortDescription": {"text": "Very large file: src/pages/BilanOnlinePage.tsx (1333 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ba47f8f5331c77d", "name": "Very large file: src/pages/TeamPage.tsx (1511 lines)", "shortDescription": {"text": "Very large file: src/pages/TeamPage.tsx (1511 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-59c4f74ad6d5152a", "name": "Very large file: src/pages/NewAssessmentPage.tsx (4431 lines)", "shortDescription": {"text": "Very large file: src/pages/NewAssessmentPage.tsx (4431 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-8a0151bbc1a948a1", "name": "Very large file: src/pages/ArborescenceHerbalifePage.tsx (1892 lines)", "shortDescription": {"text": "Very large file: src/pages/ArborescenceHerbalifePage.tsx (1892 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-8d1bc414ff4d32c6", "name": "Very large file: src/pages/BusinessPage.tsx (1345 lines)", "shortDescription": {"text": "Very large file: src/pages/BusinessPage.tsx (1345 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-2ab1197ccafa51f3", "name": "Very large file: src/pages/AgendaPage.tsx (2286 lines)", "shortDescription": {"text": "Very large file: src/pages/AgendaPage.tsx (2286 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-fc08b8c0bfbcb715", "name": "Very large file: src/services/supabaseService.ts (2714 lines)", "shortDescription": {"text": "Very large file: src/services/supabaseService.ts (2714 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-3ff209c7b20a8765", "name": "Very large file: src/features/academy/sections.ts (1698 lines)", "shortDescription": {"text": "Very large file: src/features/academy/sections.ts (1698 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "15 test file(s) for 667 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 29 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 299 placeholder/mock markers across 115 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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-478734530777971a", "name": "Commented-code block (5 lines) in vite.config.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in vite.config.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d676d374229091be", "name": "Commented-code block (6 lines) in api/og/coach.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in api/og/coach.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-ae6ab3b21d1caf0f", "name": "Commented-code block (6 lines) in docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d30a2919a92d6c9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:128"}, "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-d19870ea3a03ad6e", "name": "Commented-code block (6 lines) in docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-650d2e9c6658701a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:128"}, "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-4c3ec43d15b18fc3", "name": "Commented-code block (7 lines) in supabase/functions/client-app-set-baseline/index.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/client-app-set-baseline/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-278192b0c770dc39", "name": "Commented-code block (8 lines) in supabase/functions/morning-suivis-digest/index.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in supabase/functions/morning-suivis-digest/index.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-d8ceac1d4e42c111", "name": "Commented-code block (6 lines) in supabase/functions/request-testimonial/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/request-testimonial/index.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-7924ca1e80653319", "name": "Commented-code block (5 lines) in supabase/functions/resend-webhook/index.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/resend-webhook/index.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-469e2a9344a271b3", "name": "Commented-code block (7 lines) in supabase/functions/client-anniversary-check/index.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/client-anniversary-check/index.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-41704a242a70ab0c", "name": "Commented-code block (6 lines) in supabase/functions/get-testimonial-context/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/get-testimonial-context/index.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-74bf79a14e5aae34", "name": "Commented-code block (9 lines) in supabase/functions/validate-distributor-invite-token/index.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in supabase/functions/validate-distributor-invite-token/index.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-afeac2da7e0f75ba", "name": "Commented-code block (6 lines) in supabase/functions/confirm-stripe-payment/index.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/confirm-stripe-payment/index.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-9110fe9b65a16aea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-newsletter-email/index.ts:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-newsletter-email/index.ts:100"}, "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-07eeeb478985fac0", "name": "Commented-code block (6 lines) in supabase/functions/consume-distributor-invite-token/index.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/consume-distributor-invite-token/index.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-4b6ec05e89c1e33c", "name": "Commented-code block (5 lines) in supabase/functions/book-rdv/index.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/book-rdv/index.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-4546c525b634e721", "name": "Commented-code block (16 lines) in supabase/functions/noaly/index.ts:4", "shortDescription": {"text": "Commented-code block (16 lines) in supabase/functions/noaly/index.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-2465b26313c9746a", "name": "Commented-code block (11 lines) in supabase/functions/consume-invitation-token/index.ts:1", "shortDescription": {"text": "Commented-code block (11 lines) in supabase/functions/consume-invitation-token/index.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-a6b9666f7b0a47c4", "name": "Commented-code block (5 lines) in supabase/functions/dispatch-newsletter/index.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/dispatch-newsletter/index.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-d8cbac686fe24162", "name": "Commented-code block (5 lines) in supabase/functions/square-payment-webhook/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/square-payment-webhook/index.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-6adabf77d1298341", "name": "Commented-code block (7 lines) in supabase/functions/validate-invitation-token/index.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/validate-invitation-token/index.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-7f388dc30682972a", "name": "Commented-code block (9 lines) in supabase/functions/pv-month-end-reminder/index.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in supabase/functions/pv-month-end-reminder/index.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-50f7f405708268ee", "name": "Commented-code block (5 lines) in supabase/functions/resolve-public-share/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/resolve-public-share/index.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-386abe3bf82919e8", "name": "Commented-code block (11 lines) in supabase/functions/formation-relay-to-admin/index.ts:7", "shortDescription": {"text": "Commented-code block (11 lines) in supabase/functions/formation-relay-to-admin/index.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-b6928964cc6ff6e7", "name": "Commented-code block (7 lines) in supabase/functions/client-app-data/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/client-app-data/index.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-950cb6eb9b741764", "name": "Commented-code block (5 lines) in supabase/functions/submit-online-bilan/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/submit-online-bilan/index.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-cb16157ebacae4b9", "name": "Commented-code block (7 lines) in supabase/functions/daily-actions-notifier/index.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/daily-actions-notifier/index.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-c6359e6fdc99db50", "name": "Commented-code block (5 lines) in supabase/functions/send-push/index.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/send-push/index.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-185c110eb1133132", "name": "Commented-code block (7 lines) in supabase/functions/rank-threshold-notifier/index.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/rank-threshold-notifier/index.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-36da01b745995b97", "name": "Commented-code block (7 lines) in supabase/functions/crm-relance-notifier/index.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/crm-relance-notifier/index.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-30ffd7104eb8952f", "name": "Commented-code block (9 lines) in supabase/functions/submit-testimonial/index.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in supabase/functions/submit-testimonial/index.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-f4dccd526f6ceada", "name": "Commented-code block (5 lines) in supabase/functions/create-manual-payment-link/index.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/create-manual-payment-link/index.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-fc54bb890e4c12ae", "name": "Commented-code block (8 lines) in supabase/functions/formation-validation-notifier/index.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in supabase/functions/formation-validation-notifier/index.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-6102606e3e90ecc5", "name": "Commented-code block (7 lines) in supabase/functions/create-payment-link/index.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/create-payment-link/index.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-eff57c7af3209456", "name": "Commented-code block (6 lines) in supabase/functions/_shared/push.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/_shared/push.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-0a683668e86733c9", "name": "Commented-code block (10 lines) in public/sw.js:9", "shortDescription": {"text": "Commented-code block (10 lines) in public/sw.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da045d8a2613481d", "name": "Commented-code block (5 lines) in src/main.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/main.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-39b5510136602ef1", "name": "Commented-code block (5 lines) in src/types/domain.ts:262", "shortDescription": {"text": "Commented-code block (5 lines) in src/types/domain.ts:262"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04bea34e5b9ef7e2", "name": "Commented-code block (6 lines) in src/types/cahier.ts:100", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/cahier.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8da74e5b480ccb02", "name": "Commented-code block (7 lines) in src/config/teamConfig.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/config/teamConfig.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-7e55bc04fb045a31", "name": "Commented-code block (8 lines) in src/components/ErrorBoundary.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/ErrorBoundary.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-2e17fcfb463cfbc6", "name": "Commented-code block (5 lines) in src/components/error-boundary/errorTips.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/error-boundary/errorTips.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-6bd31e8225a2b8ae", "name": "Commented-code block (5 lines) in src/components/settings/ManualPaymentLinkCard.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/settings/ManualPaymentLinkCard.tsx: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-a37d9ba4eabc40ef", "name": "Commented-code block (5 lines) in src/components/settings/PaymentSettingsCard.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/settings/PaymentSettingsCard.tsx: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-2ea5ec138dbf140f", "name": "Commented-code block (5 lines) in src/components/settings/DebugTab.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/settings/DebugTab.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-35e62b016a46c313", "name": "Commented-code block (5 lines) in src/components/settings/RdvAvailabilityCard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/settings/RdvAvailabilityCard.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-a7d487d727de5352", "name": "Commented-code block (9 lines) in src/components/assessment/AssessmentFieldV2.tsx:7", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/assessment/AssessmentFieldV2.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-f3bc386b3fc1b7cd", "name": "Commented-code block (8 lines) in src/components/assessment/SelectableProductCard.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/assessment/SelectableProductCard.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-ad925020c2440814", "name": "Commented-code block (6 lines) in src/components/assessment/ThankYouStep.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/ThankYouStep.tsx: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-5bb4f7d8bd15e768", "name": "Commented-code block (11 lines) in src/components/assessment/FollowUpStepV2.tsx:8", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/assessment/FollowUpStepV2.tsx: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-ca36c7f1e9b379bb", "name": "Commented-code block (6 lines) in src/components/assessment/BusinessCuriosityCard.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/BusinessCuriosityCard.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-42859e111143be40", "name": "Commented-code block (8 lines) in src/components/assessment/NoalyBilanPanel.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/assessment/NoalyBilanPanel.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-f3b05a8fb87c4c3c", "name": "Commented-code block (6 lines) in src/components/assessment/BodyMetricCard.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/BodyMetricCard.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-c42b5e70361621e6", "name": "Commented-code block (6 lines) in src/components/assessment/ProductCatalogModal.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/ProductCatalogModal.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-affb09fca3d1ba67", "name": "Commented-code block (6 lines) in src/components/assessment/RecommendationStepV2.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/RecommendationStepV2.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-71228f7f6608c023", "name": "Commented-code block (6 lines) in src/components/assessment/StepRail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/assessment/StepRail.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-3e8336aa79a3e126", "name": "Commented-code block (9 lines) in src/components/assessment/ProgrammeTicket.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/assessment/ProgrammeTicket.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-0d7ca4d352251ca3", "name": "Commented-code block (8 lines) in src/components/assessment/EvolutionReportModal.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/assessment/EvolutionReportModal.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-52cf6eaf0c392176", "name": "Commented-code block (8 lines) in src/components/assessment/AssessmentSectionV2.tsx:7", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/assessment/AssessmentSectionV2.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-198483cae9efb2f9", "name": "Commented-code block (8 lines) in src/components/assessment/BilanSectionDivider.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/assessment/BilanSectionDivider.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-42ba994cd5fe406d", "name": "Commented-code block (8 lines) in src/components/layout/MobileDrawer.tsx:7", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/layout/MobileDrawer.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-8ce6f78f304f1e2f", "name": "Commented-code block (5 lines) in src/components/layout/BottomNav.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/layout/BottomNav.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-a81144a439ceb00f", "name": "Commented-code block (5 lines) in src/components/layout/MobileHeader.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/layout/MobileHeader.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-2ac7d1c663633bea", "name": "Commented-code block (13 lines) in src/components/layout/AppLayout.tsx:82", "shortDescription": {"text": "Commented-code block (13 lines) in src/components/layout/AppLayout.tsx:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b1a878cd1b5502d", "name": "Commented-code block (5 lines) in src/components/layout/StaleHostBanner.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/layout/StaleHostBanner.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-05a26d209ae5b657", "name": "Commented-code block (6 lines) in src/components/client-app/ClientPublicShareConsent.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientPublicShareConsent.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-f9524f111f95c9a2", "name": "Commented-code block (6 lines) in src/components/client-app/ClientMoodCheckIn.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientMoodCheckIn.tsx: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-45b0ab81791cf0f2", "name": "Commented-code block (5 lines) in src/components/client-app/ClientAppFallbackBanner.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientAppFallbackBanner.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-7c1e56fc20612f43", "name": "Commented-code block (6 lines) in src/components/client-app/ClubVipPresentation.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-app/ClubVipPresentation.tsx: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-34eac543713c80da", "name": "Commented-code block (6 lines) in src/components/client-app/ClientChatTab.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientChatTab.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-ad58cd91e6c85ba3", "name": "Commented-code block (5 lines) in src/components/client-app/ClientAppMeasurementsBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientAppMeasurementsBlock.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-eb4793b9b6459983", "name": "Commented-code block (5 lines) in src/components/client-app/ClientPushOptIn.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientPushOptIn.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-9321756beffb4157", "name": "Commented-code block (5 lines) in src/components/client-app/ClientMetricChartModal.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientMetricChartModal.tsx: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-68355c61109ed60c", "name": "Commented-code block (5 lines) in src/components/client-app/ClientOnboardingTour.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientOnboardingTour.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-e59ae2a5ed792a21", "name": "Commented-code block (11 lines) in src/components/client-app/ClientFaqChatbot.tsx:5", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/client-app/ClientFaqChatbot.tsx: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-84db0eac8ee6fc6b", "name": "Commented-code block (6 lines) in src/components/client-app/ClientHomeTab.tsx:169", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientHomeTab.tsx:169"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d17c383c9a044112", "name": "Commented-code block (5 lines) in src/components/client/CoachNotesBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client/CoachNotesBlock.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-f7ca95a80f286898", "name": "Commented-code block (8 lines) in src/components/client/ClientAccessModal.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/client/ClientAccessModal.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-009781cec0e03171", "name": "Commented-code block (5 lines) in src/components/client/ClientAppPreviewButton.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client/ClientAppPreviewButton.tsx: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-c35e2670e2f9a286", "name": "Commented-code block (7 lines) in src/components/client/WeightSummaryBlock.tsx:135", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/client/WeightSummaryBlock.tsx:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f25c806f0799abc", "name": "Commented-code block (5 lines) in src/components/client/BodyCompositionGauges.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client/BodyCompositionGauges.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-cfacf168fa822576", "name": "Commented-code block (5 lines) in src/components/client/ClientInvitationButton.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/client/ClientInvitationButton.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-d2b925b2cc266101", "name": "Commented-code block (5 lines) in src/components/analytics/DistriDrillDownModal.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/analytics/DistriDrillDownModal.tsx: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-0125588b063c47c2", "name": "Commented-code block (5 lines) in src/components/analytics/ProductDrilldownModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/analytics/ProductDrilldownModal.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-22e3561450e2a4b8", "name": "Commented-code block (5 lines) in src/components/leads/LeadResponsePanel.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/leads/LeadResponsePanel.tsx: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-7d4d0c473da9583b", "name": "Commented-code block (6 lines) in src/components/leads/LeadScheduleModal.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/leads/LeadScheduleModal.tsx: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-dc81083455fb39e5", "name": "Commented-code block (5 lines) in src/components/leads/LeadConvertModal.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/leads/LeadConvertModal.tsx: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-0247f778e8e9ef55", "name": "Commented-code block (5 lines) in src/components/follow-up/FollowUpProtocolCard.tsx:40", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/follow-up/FollowUpProtocolCard.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a17334551ae4536", "name": "Commented-code block (5 lines) in src/components/prospect/ProspectCard.tsx:170", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/prospect/ProspectCard.tsx:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1400d1d578a6a7e", "name": "Commented-code block (12 lines) in src/components/ui/ConfirmDialog.tsx:7", "shortDescription": {"text": "Commented-code block (12 lines) in src/components/ui/ConfirmDialog.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-21d220b6bb3d6aed", "name": "Commented-code block (8 lines) in src/components/ui/PremiumHero.tsx:10", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/ui/PremiumHero.tsx: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-0dd6513b7cab8966", "name": "Commented-code block (7 lines) in src/components/ui/EmptyState.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/ui/EmptyState.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-88c45b2b20208818", "name": "Commented-code block (5 lines) in src/components/ui/Button.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ui/Button.tsx: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-dc88e79fc2cd2d70", "name": "Commented-code block (5 lines) in src/components/ui/CountrySelect.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ui/CountrySelect.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-4f63c6190f5f7f0b", "name": "Commented-code block (5 lines) in src/components/ui/KebabMenu.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ui/KebabMenu.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-168f970559807f71", "name": "Commented-code block (8 lines) in src/components/team/DistriQuickModal.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/team/DistriQuickModal.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-4092434339e6a4bd", "name": "Commented-code block (6 lines) in src/components/team/LearningGrid.tsx:18", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/team/LearningGrid.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5dccebbf75da7c9f", "name": "Commented-code block (8 lines) in src/components/noaly/NoalyFab.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/noaly/NoalyFab.tsx: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-78017021554ad9c7", "name": "Commented-code block (5 lines) in src/components/pwa/InstallPwaInstructions.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/pwa/InstallPwaInstructions.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-93d8bbcdbbe2b07d", "name": "Commented-code block (5 lines) in src/components/pwa/CoachInstallPwaButton.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/pwa/CoachInstallPwaButton.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-e2d7aa6071d7c5bb", "name": "Commented-code block (5 lines) in src/components/pwa/SwUpdatePrompt.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/pwa/SwUpdatePrompt.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-de57854abec8ce32", "name": "Commented-code block (5 lines) in src/components/copilote/InboxWidget.tsx:40", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/copilote/InboxWidget.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93634dfeae7ea67b", "name": "Commented-code block (5 lines) in src/components/copilote/ReferrerStatsCard.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/copilote/ReferrerStatsCard.tsx: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-898e6ae0abb8d860", "name": "Commented-code block (6 lines) in src/components/copilote/CoachTipOfDayCard.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/copilote/CoachTipOfDayCard.tsx: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-d2badca775eed970", "name": "Commented-code block (7 lines) in src/components/copilote/ClockHeader.tsx:26", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/copilote/ClockHeader.tsx: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-758599e0fa8e6b97", "name": "Commented-code block (5 lines) in src/components/copilote/PvActionPlanAlert.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/copilote/PvActionPlanAlert.tsx: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-ed04d35e61d0d476", "name": "Commented-code block (8 lines) in src/components/copilote/CelebrationDialog.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/copilote/CelebrationDialog.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-3fc55bae76c7bf91", "name": "Commented-code block (9 lines) in src/components/pv/PvClientFullPage.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/pv/PvClientFullPage.tsx: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-63ec56c52fc3f74f", "name": "Commented-code block (6 lines) in src/components/pv/PvKanban.tsx:143", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/pv/PvKanban.tsx:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e34cc8236120080d", "name": "Commented-code block (7 lines) in src/components/pv/PvFiltersMenu.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/pv/PvFiltersMenu.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-6d9a8728f7c4093c", "name": "Commented-code block (5 lines) in src/components/testimonials/TestimonialsCarousel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/testimonials/TestimonialsCarousel.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-490e7b46893f1313", "name": "Commented-code block (6 lines) in src/components/announcements/AnnouncementSpotlight.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/announcements/AnnouncementSpotlight.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-b6a204f41c5835e0", "name": "Commented-code block (5 lines) in src/components/bilan-online/CoachCredibilityBadges.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/bilan-online/CoachCredibilityBadges.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-a86c2ad3d7723fc2", "name": "Commented-code block (11 lines) in src/components/prospection/ProspectionHub.tsx:7", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/prospection/ProspectionHub.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-e37d133fffb909c6", "name": "Commented-code block (5 lines) in src/components/rentability/QuickSaleEditModal.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/QuickSaleEditModal.tsx: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-faac4fd7855bf370", "name": "Commented-code block (5 lines) in src/components/rentability/RentabilityTeamLeaderboard.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityTeamLeaderboard.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-e490dc81e3acce01", "name": "Commented-code block (5 lines) in src/components/rentability/RentabilityPvTeamTab.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityPvTeamTab.tsx: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-5f4547096006d81c", "name": "Commented-code block (6 lines) in src/components/rentability/ManualPvEntriesSection.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/rentability/ManualPvEntriesSection.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-3a879c6408e4a6c2", "name": "Commented-code block (6 lines) in src/components/rentability/RentabilityDetailModal.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/rentability/RentabilityDetailModal.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-42a44cef06dd9bfc", "name": "Commented-code block (5 lines) in src/components/rentability/RentabilityHorizontalWidget.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityHorizontalWidget.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-ada826b1a43c6c55", "name": "Commented-code block (5 lines) in src/components/rentability/RentabilityWalletCard.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityWalletCard.tsx: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-74c8e8b61684c3e8", "name": "Commented-code block (5 lines) in src/components/rentability/shared/GaugeProjection.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/rentability/shared/GaugeProjection.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-2d793c2120f2a380", "name": "Commented-code block (5 lines) in src/components/messages/StartConversationModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/messages/StartConversationModal.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-688f5406568c9b70", "name": "Commented-code block (5 lines) in src/components/flex/FlexHistoryCard.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/flex/FlexHistoryCard.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-3da37285eda745e1", "name": "Commented-code block (8 lines) in src/components/flex/FlexMidpointRecalcCard.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/flex/FlexMidpointRecalcCard.tsx: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-0a94051c8bf23aa8", "name": "Commented-code block (5 lines) in src/components/clients/ClientsFiltersMenu.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/clients/ClientsFiltersMenu.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-87bf8ac28b5c401a", "name": "Commented-code block (6 lines) in src/components/clients/FiltersBottomSheet.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/clients/FiltersBottomSheet.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-9f7da824a58bf55c", "name": "Commented-code block (6 lines) in src/components/clients/ClientsMobileView.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/clients/ClientsMobileView.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-682745d89386a8cf", "name": "Commented-code block (6 lines) in src/components/clients/BulkMessageModal.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/clients/BulkMessageModal.tsx: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-27e6bcbdb6949a0e", "name": "Commented-code block (6 lines) in src/components/clients/ClientsKanban.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/clients/ClientsKanban.tsx: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-f30ee1081abcd8a3", "name": "Commented-code block (6 lines) in src/components/crm/RdvBookingsWidget.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/crm/RdvBookingsWidget.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-7757252c9a0e672f", "name": "Commented-code block (7 lines) in src/components/client-detail/ClientVipPitchTab.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/client-detail/ClientVipPitchTab.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-86bb3d3abaec86f2", "name": "Commented-code block (11 lines) in src/components/client-detail/ActionsRdvBlock.tsx:5", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/client-detail/ActionsRdvBlock.tsx: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-b97514137fc64785", "name": "Commented-code block (6 lines) in src/components/client-detail/MessageTemplatesModal.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-detail/MessageTemplatesModal.tsx: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-66f619c316239495", "name": "Commented-code block (7 lines) in src/components/client-detail/HerbalifeUplinkPanel.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/client-detail/HerbalifeUplinkPanel.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-03a4ddbdcb703402", "name": "Commented-code block (6 lines) in src/components/client-detail/ActionsTab.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/client-detail/ActionsTab.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-067c1efd56f0a450", "name": "Commented-code block (5 lines) in src/components/cahier/EditListe100ContactModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/cahier/EditListe100ContactModal.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-311464fdaee34a89", "name": "Commented-code block (7 lines) in src/components/distributor-blocks/EngagementTotalBlock.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/EngagementTotalBlock.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-17f2e46a9c8781c3", "name": "Commented-code block (6 lines) in src/components/distributor-blocks/DistriQuickLink.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/distributor-blocks/DistriQuickLink.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-1a9224f0d6cab405", "name": "Commented-code block (5 lines) in src/components/distributor-blocks/EngagementBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/EngagementBlock.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-37223b1fdcda2dcc", "name": "Commented-code block (5 lines) in src/components/distributor-blocks/ActiviteRecenteBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/ActiviteRecenteBlock.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-bff193896f65c82a", "name": "Commented-code block (5 lines) in src/components/distributor-blocks/ApprentissageBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/ApprentissageBlock.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-3bf497ad0a2f3ce8", "name": "Commented-code block (6 lines) in src/components/distributor-blocks/PvOverrideBlock.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/distributor-blocks/PvOverrideBlock.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-6a22a6ae2dd2ded4", "name": "Commented-code block (7 lines) in src/components/distributor-blocks/_shared.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/_shared.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-5aa1374a6fb495e9", "name": "Commented-code block (9 lines) in src/components/distributor-blocks/ProgressionRangBlock.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/distributor-blocks/ProgressionRangBlock.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-a7a74c08c932fbf2", "name": "Commented-code block (7 lines) in src/components/distributor-blocks/PvBizworksBlock.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/PvBizworksBlock.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-82539be5e933ddea", "name": "Commented-code block (5 lines) in src/components/distributor-blocks/CompteActifBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/CompteActifBlock.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-2c73613811ce36fd", "name": "Commented-code block (5 lines) in src/components/distributor-blocks/RangHerbalifeBlock.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/RangHerbalifeBlock.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-6ba48523c983f048", "name": "Commented-code block (5 lines) in src/components/charter/CharterStory.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/charter/CharterStory.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-4ad26b52f8507757", "name": "Commented-code block (6 lines) in src/components/charter/CharterManifeste.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/charter/CharterManifeste.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-cba20e3b6ab43a18", "name": "Commented-code block (9 lines) in src/components/formation/MarkdownRenderer.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/formation/MarkdownRenderer.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-563a841aae153c79", "name": "Commented-code block (6 lines) in src/components/formation/ParcoursLevelCard.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/formation/ParcoursLevelCard.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-9699eaf3332dfa69", "name": "Commented-code block (8 lines) in src/components/formation/ToolkitItemPopup.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/formation/ToolkitItemPopup.tsx: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-c9ccf48665a74f55", "name": "Commented-code block (7 lines) in src/components/formation/DistriOnboardingChecklist.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/formation/DistriOnboardingChecklist.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-5f15cc5ec76a4693", "name": "Commented-code block (5 lines) in src/components/formation/FormationRoadmapCard.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/formation/FormationRoadmapCard.tsx: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-5b436f3bc8fb8e05", "name": "Commented-code block (5 lines) in src/components/formation/ModuleNotesPanel.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/formation/ModuleNotesPanel.tsx: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-da145580f7dce8d2", "name": "Commented-code block (6 lines) in src/components/formation/RecruteFormationCard.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/formation/RecruteFormationCard.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-b6a31061fbac4b0b", "name": "Commented-code block (5 lines) in src/components/formation/ModuleCompletionPanel.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/formation/ModuleCompletionPanel.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-d3d03a1ff05db440", "name": "Commented-code block (8 lines) in src/components/formation/LessonCard.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/formation/LessonCard.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-02be16c455dc2c0a", "name": "Commented-code block (10 lines) in src/components/formation/QuizRunner.tsx:7", "shortDescription": {"text": "Commented-code block (10 lines) in src/components/formation/QuizRunner.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-443fce33d03b4e75", "name": "Commented-code block (8 lines) in src/components/formation/FormationStatusBadge.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/formation/FormationStatusBadge.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-44636c99eff2b4fa", "name": "Commented-code block (7 lines) in src/components/public/PublicShell.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/public/PublicShell.tsx: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-cacdccd9ab02d546", "name": "Commented-code block (6 lines) in src/components/public/LaBase360Logo.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/public/LaBase360Logo.tsx: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-675ae5f0600c32b5", "name": "Commented-code block (6 lines) in src/components/public/ThemeToggle.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/public/ThemeToggle.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-18e098cd2ee542c7", "name": "Commented-code block (5 lines) in src/components/consent/ConsentDialog.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/consent/ConsentDialog.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-eaf569923996ff49", "name": "Commented-code block (5 lines) in src/components/tutorial/TutorialLink.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/tutorial/TutorialLink.tsx: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-7c11d17afd82e991", "name": "Commented-code block (5 lines) in src/components/tutorial/TutorialVideoModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/tutorial/TutorialVideoModal.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-4431d3698cd197ed", "name": "Commented-code block (5 lines) in src/components/welcome/ProspectFormModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/welcome/ProspectFormModal.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-1853b85b61997a92", "name": "Commented-code block (5 lines) in src/lib/assessmentRecommendations.ts:731", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/assessmentRecommendations.ts:731"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c05726d926a1a76", "name": "Commented-code block (5 lines) in src/lib/assessmentNotesStorage.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/assessmentNotesStorage.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-7e8a2180c2ad1bc7", "name": "Commented-code block (5 lines) in src/lib/opportunityFunnelLabels.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/opportunityFunnelLabels.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-d5eeb133f968c65f", "name": "Commented-code block (5 lines) in src/lib/time-context.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/time-context.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-2b6b1f2a6c63aeab", "name": "Commented-code block (7 lines) in src/lib/messageTemplates.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/messageTemplates.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-5bd767f858cf98e9", "name": "Commented-code block (5 lines) in src/lib/calculations.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/calculations.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64d6cf0584a15b24", "name": "Commented-code block (7 lines) in src/lib/crmMessages.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/crmMessages.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-31b9f2d1ee3d5c97", "name": "Legacy-named symbol `too_old` in src/lib/followUpProtocolScheduler.ts:33", "shortDescription": {"text": "Legacy-named symbol `too_old` in src/lib/followUpProtocolScheduler.ts:33"}, "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-b492db0d4f029dc0", "name": "Commented-code block (10 lines) in src/lib/followUpProtocolScheduler.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/followUpProtocolScheduler.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-fe147a9c6f326ebf", "name": "Commented-code block (7 lines) in src/lib/clientQuickFilters.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/clientQuickFilters.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-f95a37b3e3876888", "name": "Commented-code block (7 lines) in src/lib/bilanOnlineScoring.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/bilanOnlineScoring.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-a0275a0634590c42", "name": "Commented-code block (6 lines) in src/lib/herbalifeFormulas.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/herbalifeFormulas.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-ce2a900bfd7c295a", "name": "Commented-code block (5 lines) in src/lib/herbalifeId.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/herbalifeId.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-74f921210d42c13e", "name": "Commented-code block (6 lines) in src/lib/productRecommendations.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/productRecommendations.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-89cc16bec6764f37", "name": "Commented-code block (5 lines) in src/lib/flexCalculations.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/flexCalculations.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-7feb38679efff30a", "name": "Commented-code block (7 lines) in src/lib/businessSimulator.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/businessSimulator.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-9a1af9b5563bfc5b", "name": "Commented-code block (6 lines) in src/lib/leadConversion.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/leadConversion.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-17fdf0560fda18f0", "name": "Legacy-named symbol `too_old` in src/lib/__tests__/followUpProtocolScheduler.test.ts:105", "shortDescription": {"text": "Legacy-named symbol `too_old` in src/lib/__tests__/followUpProtocolScheduler.test.ts:105"}, "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-2bf4515da2823013", "name": "Commented-code block (6 lines) in src/lib/utils/onKeyAction.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/utils/onKeyAction.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-a7dfc8a27652af30", "name": "Commented-code block (5 lines) in src/lib/utils/extractFunctionError.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/utils/extractFunctionError.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-06f8a1272ddcd824", "name": "Commented-code block (5 lines) in src/pages/RdvBookingPage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/RdvBookingPage.tsx: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-8cdbfb606ac378e9", "name": "Commented-code block (12 lines) in src/pages/BienvenuePage.tsx:3", "shortDescription": {"text": "Commented-code block (12 lines) in src/pages/BienvenuePage.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-7d582cc329f0c19b", "name": "Commented-code block (7 lines) in src/pages/FlexOnboardingPage.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/FlexOnboardingPage.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-ef07b7b244557d81", "name": "Commented-code block (6 lines) in src/pages/FlexExpliquePage.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/FlexExpliquePage.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-22912e16b1d4bfc3", "name": "Commented-code block (10 lines) in src/pages/FormationPage.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in src/pages/FormationPage.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-12b0f5a0be2c5989", "name": "Commented-code block (7 lines) in src/pages/ProspectionPage.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/ProspectionPage.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-af44f154ae940aeb", "name": "Commented-code block (5 lines) in src/pages/AdminCharterThumbsPage.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/AdminCharterThumbsPage.tsx: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-91827b4c75781409", "name": "Commented-code block (5 lines) in src/pages/OutilsProspectionInternationalPage.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionInternationalPage.tsx: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-fc8e230bd483c396", "name": "Commented-code block (11 lines) in src/pages/EditInitialAssessmentPage.tsx:181", "shortDescription": {"text": "Commented-code block (11 lines) in src/pages/EditInitialAssessmentPage.tsx:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46b429a0c4ecd282", "name": "Commented-code block (7 lines) in src/pages/FlexTeamPage.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/FlexTeamPage.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-ccd1439521a6eef9", "name": "Commented-code block (6 lines) in src/pages/RentabilitePage.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/RentabilitePage.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-85bafd364a6d4170", "name": "Commented-code block (7 lines) in src/pages/ClientsPage.tsx:891", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/ClientsPage.tsx:891"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-880f7b98336e7000", "name": "Commented-code block (8 lines) in src/pages/FormationToolkitPage.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/FormationToolkitPage.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-26db7506c523cb23", "name": "Commented-code block (8 lines) in src/pages/OpportunitePage.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/OpportunitePage.tsx: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-e93049d5881adef6", "name": "Commented-code block (5 lines) in src/pages/ClientDetailPage.tsx:63", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/ClientDetailPage.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-9768a8dfcf64ec97", "name": "Commented-code block (5 lines) in src/pages/EncaissementPage.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/EncaissementPage.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-68d7a3d92c07d4d0", "name": "Commented-code block (6 lines) in src/pages/TestimonialFormPage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/TestimonialFormPage.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-2e649f2ff10c8b4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/TestimonialFormPage.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/TestimonialFormPage.tsx:88"}, "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-bec574a0cfa88268", "name": "Commented-code block (6 lines) in src/pages/FormationRecognitionPage.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/FormationRecognitionPage.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-7b4cbda6d288ce37", "name": "Commented-code block (7 lines) in src/pages/AcademySectionPage.tsx:61", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/AcademySectionPage.tsx: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-d52063715a4a0b53", "name": "Commented-code block (12 lines) in src/pages/LoginPage.tsx:6", "shortDescription": {"text": "Commented-code block (12 lines) in src/pages/LoginPage.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-c1588e7ca2f2b18b", "name": "Commented-code block (6 lines) in src/pages/DistributorPortfolioPage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/DistributorPortfolioPage.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-38a7459541107bd9", "name": "Commented-code block (5 lines) in src/pages/FormationCalculatorPage.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/FormationCalculatorPage.tsx: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-c0738f35c0613cc9", "name": "Commented-code block (7 lines) in src/pages/FlexDashboardPage.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/FlexDashboardPage.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-ad6644ba657627d5", "name": "Commented-code block (7 lines) in src/pages/SharePage.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/SharePage.tsx: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-101a896900b846de", "name": "Commented-code block (5 lines) in src/pages/AutoLoginPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/AutoLoginPage.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-e1a9b6a94ac05ecc", "name": "Commented-code block (5 lines) in src/pages/AdminDistributorCharterPage.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/AdminDistributorCharterPage.tsx: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-e92be0e503e46f53", "name": "Commented-code block (5 lines) in src/pages/MesLiensPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/MesLiensPage.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-33703f3818424c1e", "name": "Commented-code block (7 lines) in src/pages/ClientAppPage.tsx:102", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/ClientAppPage.tsx: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-9d915a866b21941a", "name": "Commented-code block (5 lines) in src/pages/OutilsPage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/OutilsPage.tsx: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-f3b37276f5ea4be0", "name": "Commented-code block (5 lines) in src/pages/FormationToolkitDetailPage.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/FormationToolkitDetailPage.tsx: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-dd0c03c607b57c7b", "name": "Commented-code block (5 lines) in src/pages/OutilsProspectionPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionPage.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-2c78256a72541da2", "name": "Commented-code block (6 lines) in src/pages/BilanTermineePage.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/BilanTermineePage.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a99cebd51a06b140", "name": "Commented-code block (5 lines) in src/pages/OutilsProspectionBilanPage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionBilanPage.tsx: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-ba04f655af97fc94", "name": "Commented-code block (5 lines) in src/pages/SuivisDuJourPage.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/SuivisDuJourPage.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-62bda36f3b3f32ac", "name": "Commented-code block (6 lines) in src/pages/FormationModuleDetailPage.tsx:52", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/FormationModuleDetailPage.tsx: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-c134c711f0446e37", "name": "Commented-code block (10 lines) in src/pages/CrmPage.tsx:8", "shortDescription": {"text": "Commented-code block (10 lines) in src/pages/CrmPage.tsx: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-517c36d444d121f1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/AdminNewsletterEditPage.tsx:330", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/AdminNewsletterEditPage.tsx:330"}, "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-06d91a5c38001af6", "name": "Commented-code block (5 lines) in src/pages/BilanResultatPremiumPage.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/BilanResultatPremiumPage.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-625818bd02dec430", "name": "Commented-code block (5 lines) in src/pages/OutilsProspectionMerePage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionMerePage.tsx: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-a5a657b5379e8a54", "name": "Commented-code block (8 lines) in src/pages/BilanOnlinePage.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/BilanOnlinePage.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-1ce268fc8f11d33c", "name": "Commented-code block (5 lines) in src/pages/FormationGlossaryPage.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/FormationGlossaryPage.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-af94e9cabea85289", "name": "Commented-code block (8 lines) in src/pages/BienvenueDistriPage.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/BienvenueDistriPage.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-3e96ff60df444be1", "name": "Commented-code block (8 lines) in src/pages/ConversationView.tsx:49", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/ConversationView.tsx:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57932c491b16fe8f", "name": "Commented-code block (6 lines) in src/pages/TeamPage.tsx:239", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/TeamPage.tsx:239"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-219868751ab45923", "name": "Commented-code block (6 lines) in src/pages/DebugNotificationsPage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/DebugNotificationsPage.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-c1251f7b0d644e0b", "name": "Commented-code block (5 lines) in src/pages/RejoindreQuestionnairePage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/RejoindreQuestionnairePage.tsx: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-88d5de668373f7da", "name": "Commented-code block (11 lines) in src/pages/NewAssessmentPage.tsx:391", "shortDescription": {"text": "Commented-code block (11 lines) in src/pages/NewAssessmentPage.tsx:391"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88801a2ba2834252", "name": "Commented-code block (8 lines) in src/pages/ArborescenceHerbalifePage.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/ArborescenceHerbalifePage.tsx: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-9432402eee5088e4", "name": "Commented-code block (8 lines) in src/pages/WelcomePage.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/WelcomePage.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-4596579c75e638ad", "name": "Commented-code block (5 lines) in src/pages/BilanOnlineWelcomePage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/BilanOnlineWelcomePage.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-44d18c7a86340b79", "name": "Commented-code block (5 lines) in src/pages/SimulateurEbePage.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/SimulateurEbePage.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-20b4bfec610e0d75", "name": "Commented-code block (6 lines) in src/pages/ProspectionExpliquePage.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/ProspectionExpliquePage.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-f5daa825e7af0528", "name": "Commented-code block (5 lines) in src/pages/BusinessPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/BusinessPage.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-901229ee41a175cc", "name": "Commented-code block (8 lines) in src/pages/DeveloppementHubPage.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/pages/DeveloppementHubPage.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-b9f63db30d8d5d0a", "name": "Commented-code block (5 lines) in src/pages/RejoindreOpportunitePage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/RejoindreOpportunitePage.tsx: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-bac38553fdb610bf", "name": "Commented-code block (7 lines) in src/pages/BilanOnlineResultatsPage.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/BilanOnlineResultatsPage.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-460d83d8b65f5379", "name": "Commented-code block (5 lines) in src/pages/BilanOnlineMerciPage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/BilanOnlineMerciPage.tsx: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-d3e9170338bdf0d1", "name": "Commented-code block (5 lines) in src/pages/ResetPasswordPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/ResetPasswordPage.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-d17c2d10118ab99e", "name": "Commented-code block (6 lines) in src/pages/FormationAdminPage.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/FormationAdminPage.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-a85b9ce660f6de15", "name": "Commented-code block (5 lines) in src/pages/VipClubPage.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/VipClubPage.tsx: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-f14099eda991bf6e", "name": "Commented-code block (7 lines) in src/pages/AnalyticsPage.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/AnalyticsPage.tsx: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-20c5762e3dfacdc7", "name": "Commented-code block (5 lines) in src/pages/AgendaPage.tsx:176", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/AgendaPage.tsx:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4511cfcad5d96aed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/PublicNewsletterPage.tsx:690", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/PublicNewsletterPage.tsx:690"}, "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-cd0ed12ecd694518", "name": "Commented-code block (7 lines) in src/pages/PvOverviewPage.tsx:86", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/PvOverviewPage.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-e1ae223ffd3dcc69", "name": "Commented-code block (6 lines) in src/pages/CoachPublicProfilePage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/CoachPublicProfilePage.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-a85fb798f82eb775", "name": "Commented-code block (7 lines) in src/pages/academy-demo/DemoFicheClient.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/academy-demo/DemoFicheClient.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-11f0bd47ba52b6f8", "name": "Commented-code block (9 lines) in src/hooks/useCrmLeads.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/hooks/useCrmLeads.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-b81f75b736415bcf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/usePvBreakdowns.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/usePvBreakdowns.ts:47"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c11ffca1879e6c44", "name": "Commented-code block (6 lines) in src/hooks/useClientPriorityAction.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useClientPriorityAction.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-5342bc445c4a864e", "name": "Commented-code block (6 lines) in src/hooks/useUserRentability.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useUserRentability.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-c171f8a31186c467", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useUserRentability.ts:146", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useUserRentability.ts:146"}, "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-cb1ba3b95dc08a30", "name": "Commented-code block (5 lines) in src/hooks/useRentabilityHistory.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useRentabilityHistory.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-947fe681b38f0d5e", "name": "Commented-code block (5 lines) in src/hooks/useHaptic.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useHaptic.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-714a5a77423a974e", "name": "Commented-code block (6 lines) in src/hooks/useRealtimeMessages.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useRealtimeMessages.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-051702845d4e2cce", "name": "Commented-code block (5 lines) in src/hooks/useTeamEngagement.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useTeamEngagement.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-38b1b852063f638e", "name": "Legacy-named symbol `reactivation_old` in src/hooks/useProspectionData.ts:169", "shortDescription": {"text": "Legacy-named symbol `reactivation_old` in src/hooks/useProspectionData.ts:169"}, "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-c5fd6a5f0fd12b35", "name": "Commented-code block (6 lines) in src/hooks/useDailyActionChecklist.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useDailyActionChecklist.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-b5b293c2095f0425", "name": "Commented-code block (5 lines) in src/hooks/useFormationProgress.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useFormationProgress.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-78b20f87f518ee32", "name": "Commented-code block (6 lines) in src/hooks/useTeamData.ts:147", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useTeamData.ts:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e8bd49ca79e5a74", "name": "Commented-code block (6 lines) in src/hooks/useCharter.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useCharter.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-7bf8644c10df29f0", "name": "Commented-code block (6 lines) in src/hooks/useFormationStreak.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useFormationStreak.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-947128a22cce65c9", "name": "Commented-code block (7 lines) in src/hooks/usePvActionPlan.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/hooks/usePvActionPlan.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-d981e6a0c71c3f8e", "name": "Commented-code block (6 lines) in src/hooks/useClientConsent.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useClientConsent.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-b16c42db0c490d25", "name": "Commented-code block (6 lines) in src/hooks/useManualPvEntries.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/hooks/useManualPvEntries.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-aeede4e79c207fba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useManualPvEntries.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useManualPvEntries.ts:51"}, "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-d8d66ad401d306e3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDormantClients.ts:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDormantClients.ts:99"}, "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-307174331b9646c9", "name": "Commented-code block (5 lines) in src/hooks/useCrmBadge.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useCrmBadge.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-4641651ed16e7f22", "name": "Commented-code block (5 lines) in src/hooks/useRentabilitySummary.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useRentabilitySummary.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-171774b9f187bc73", "name": "Commented-code block (5 lines) in src/hooks/useClientLiveData.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/hooks/useClientLiveData.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-b2ec13a7dae53fa3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useClientLiveData.ts:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useClientLiveData.ts:99"}, "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-00e540ceca7aa853", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDistributorQualifications.ts:76", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDistributorQualifications.ts:76"}, "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-b6154124f48361b3", "name": "Legacy-named symbol `general_note_deprecated` in src/services/supabaseService.ts:115", "shortDescription": {"text": "Legacy-named symbol `general_note_deprecated` in src/services/supabaseService.ts:115"}, "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-b488b5555c4a5702", "name": "Commented-code block (8 lines) in src/services/supabaseService.ts:573", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/supabaseService.ts:573"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2bd5f558a4ffd92e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/supabaseService.ts:1391", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/supabaseService.ts:1391"}, "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-ce6a391e346be509", "name": "Legacy-named symbol `hs256_legacy` in src/services/supabaseClient.ts:11", "shortDescription": {"text": "Legacy-named symbol `hs256_legacy` in src/services/supabaseClient.ts:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4d8df807d124eb71", "name": "Commented-code block (8 lines) in src/services/appDataService.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/appDataService.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-90016d98f8f508e1", "name": "Commented-code block (5 lines) in src/services/sb/prospects.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/sb/prospects.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ba8b66b4306bd23", "name": "Commented-code block (6 lines) in src/context/AppContext.tsx:310", "shortDescription": {"text": "Commented-code block (6 lines) in src/context/AppContext.tsx:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed8703c74dbdd348", "name": "Commented-code block (5 lines) in src/features/measurements/ClientMeasurementsSection.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/measurements/ClientMeasurementsSection.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-83d41f495534d048", "name": "Commented-code block (5 lines) in src/features/measurements/SilhouetteSvg.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/measurements/SilhouetteSvg.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-857862450fdc9fc7", "name": "Commented-code block (5 lines) in src/features/academy/sections.ts:154", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/academy/sections.ts:154"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd989d24a75729a4", "name": "Commented-code block (5 lines) in src/features/academy/ActiveQuizContext.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/academy/ActiveQuizContext.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-83dbae86767e2ee1", "name": "Commented-code block (6 lines) in src/features/academy/utils/getDemoClientId.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/academy/utils/getDemoClientId.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-9f516e38869215b8", "name": "Commented-code block (5 lines) in src/features/academy/components/QuizModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/academy/components/QuizModal.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-bb36b9c40ec9dc11", "name": "Commented-code block (7 lines) in src/features/academy/hooks/useAcademyAutoTrigger.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/features/academy/hooks/useAcademyAutoTrigger.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-3ebea3b7f62e104d", "name": "Commented-code block (6 lines) in src/features/academy/hooks/useAcademyProgress.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/academy/hooks/useAcademyProgress.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-44df859f9d198956", "name": "Commented-code block (5 lines) in src/features/client-vip/VipProgramHelpModal.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/client-vip/VipProgramHelpModal.tsx: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-83f0f7f3617ccaf8", "name": "Commented-code block (6 lines) in src/features/client-vip/ClientVipCoachPanel.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/client-vip/ClientVipCoachPanel.tsx: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-196d29df79797976", "name": "Commented-code block (5 lines) in src/features/client-vip/ClientVipBadge.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/client-vip/ClientVipBadge.tsx: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-1a8a3fc5f2c7c67a", "name": "Commented-code block (8 lines) in src/features/client-vip/ClientVipExplainModal.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/features/client-vip/ClientVipExplainModal.tsx: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-3e8d64fee28556ff", "name": "Commented-code block (5 lines) in src/features/client-vip/ClientVipSandbox.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/client-vip/ClientVipSandbox.tsx: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-b117d01b822d3d3b", "name": "Commented-code block (6 lines) in src/features/client-xp/actions.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/client-xp/actions.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-8b52790ece107c1d", "name": "Commented-code block (5 lines) in src/features/client-xp/useClientXp.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/client-xp/useClientXp.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-71a1cfbf91a03af3", "name": "Commented-code block (5 lines) in src/features/copilote/v5/CoPiloteV5Page.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/CoPiloteV5Page.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-05ce9bd55d2d9aed", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/StatsRow3.tsx:97", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/StatsRow3.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-373afe1a035baff6", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/DailyBoost.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/DailyBoost.tsx: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-7e6981b445b1425c", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/WeatherPopup.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/WeatherPopup.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-8bca0955ae8ba350", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/HeroEditorial.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/HeroEditorial.tsx:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-736967b5e9b30959", "name": "Commented-code block (6 lines) in src/features/copilote/v5/components/SideStack.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/copilote/v5/components/SideStack.tsx: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-528dc81978acd5aa", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/AvatarWithRing.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/AvatarWithRing.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-90969d6fe594a6f5", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/PlanDuJour.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/PlanDuJour.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-0d2d5c56aeda7954", "name": "Commented-code block (5 lines) in src/features/copilote/v5/components/TodayTimeline.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/TodayTimeline.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-9a9c4111753d19a3", "name": "Commented-code block (6 lines) in src/features/copilote/v5/components/PinAWTCinematic.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/copilote/v5/components/PinAWTCinematic.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-6c8d9912d5d792ea", "name": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useNextAction.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useNextAction.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-0d9a9d45a0e95b9b", "name": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useWeatherForecast.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useWeatherForecast.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-5278f04f0fe853ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/copilote/v5/hooks/useWeatherForecast.ts:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/copilote/v5/hooks/useWeatherForecast.ts:103"}, "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-7049d5dc11bd991f", "name": "Commented-code block (5 lines) in src/features/onboarding/TourRunner.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/onboarding/TourRunner.tsx: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-a3b26d813fd4fdd6", "name": "Commented-code block (5 lines) in src/features/onboarding/ActiveTourContext.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/onboarding/ActiveTourContext.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-8535aef7d5d170d2", "name": "Commented-code block (10 lines) in src/features/onboarding/OnboardingTutorial.tsx:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/features/onboarding/OnboardingTutorial.tsx: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-a884a4f310958837", "name": "Commented-code block (5 lines) in src/features/onboarding/utils/substituteTemplate.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/onboarding/utils/substituteTemplate.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-eea298ee576887f2", "name": "Commented-code block (5 lines) in src/features/onboarding/components/TutorialTooltip.tsx:365", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/onboarding/components/TutorialTooltip.tsx:365"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ea98cde47f47bd9", "name": "Commented-code block (5 lines) in src/features/onboarding/hooks/useTourProgress.ts:144", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/onboarding/hooks/useTourProgress.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b216064c3928ecb7", "name": "Commented-code block (6 lines) in src/features/gamification/components/WeeklyRecapCard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/gamification/components/WeeklyRecapCard.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-ee2cf5fa9d0d58ba", "name": "Commented-code block (7 lines) in src/features/gamification/hooks/useStreak.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/features/gamification/hooks/useStreak.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-c3dc8fa23ef4e2e8", "name": "Commented-code block (5 lines) in src/features/gamification/hooks/useSessionTracker.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/gamification/hooks/useSessionTracker.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-1b5a76780c3df9aa", "name": "1 env vars used in code but missing from .env.example", "shortDescription": {"text": "1 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `VITE_VAPID_PUBLIC_KEY`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-531147160e6236ae", "name": "Frontend route `/bilan-online` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online` has no Link/navigate to it \u2014 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-59c6a41c38adb4c9", "name": "Frontend route `/bilan-online/resultats` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/resultats` has no Link/navigate to it \u2014 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-c2c1f42abd975154", "name": "Frontend route `/bilan-online/merci` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/merci` has no Link/navigate to it \u2014 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-de41ce3d3e6ef71f", "name": "Frontend route `/bilan-online/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/:coachSlug` has no Link/navigate to it \u2014 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-3bde50aa475185ea", "name": "Frontend route `/bilan-online/:coachSlug/formulaire` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/:coachSlug/formulaire` has no Link/navigate to it \u2014 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-e4e9993687365a07", "name": "Frontend route `/bilan-online/:coachSlug/resultats` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/:coachSlug/resultats` has no Link/navigate to it \u2014 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-6adf683117e4cbb7", "name": "Frontend route `/bilan-online/:coachSlug/merci` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bilan-online/:coachSlug/merci` has no Link/navigate to it \u2014 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-b987243e305ca92a", "name": "Frontend route `/resultat-bilan/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/resultat-bilan/:token` has no Link/navigate to it \u2014 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-e43cf6b6e32fe3f8", "name": "Frontend route `/rdv` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rdv` has no Link/navigate to it \u2014 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-a780788776dc16c4", "name": "Frontend route `/rdv/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rdv/:coachSlug` has no Link/navigate to it \u2014 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-7dd4be3847112dac", "name": "Frontend route `/news/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/news/:slug` has no Link/navigate to it \u2014 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-f95469175fca87d7", "name": "Frontend route `/business` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/business` has no Link/navigate to it \u2014 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-a21aa310c105f975", "name": "Frontend route `/coach/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/coach/:slug` has no Link/navigate to it \u2014 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-ce10e5e928200a0d", "name": "Frontend route `/vip/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/vip/:coachSlug` has no Link/navigate to it \u2014 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-b65b0b8ed54d3376", "name": "Frontend route `/rejoindre/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rejoindre/:coachSlug` has no Link/navigate to it \u2014 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-868ec63484418dbd", "name": "Frontend route `/rejoindre/:coachSlug/questionnaire` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rejoindre/:coachSlug/questionnaire` has no Link/navigate to it \u2014 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-70c1856aeef11c6c", "name": "Frontend route `/rejoindre/questionnaire` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rejoindre/questionnaire` has no Link/navigate to it \u2014 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-903d3d6a848001ee", "name": "Frontend route `/auto-login` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/auto-login` has no Link/navigate to it \u2014 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-7f1bec1fd65c0879", "name": "Frontend route `/reset-password` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/reset-password` has no Link/navigate to it \u2014 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-30176f7a0d314123", "name": "Frontend route `/partage/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/partage/:token` has no Link/navigate to it \u2014 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-62b1e1fa5ac942c1", "name": "Frontend route `co-pilote` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `co-pilote` has no Link/navigate to it \u2014 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-cef386312d50c26d", "name": "Frontend route `dashboard` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `dashboard` has no Link/navigate to it \u2014 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-9ab1ecd9228623c1", "name": "Frontend route `flex` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `flex` has no Link/navigate to it \u2014 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-caa4036c394482a4", "name": "Frontend route `flex/onboarding` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `flex/onboarding` has no Link/navigate to it \u2014 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-f92e682663491792", "name": "Frontend route `flex/equipe` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `flex/equipe` has no Link/navigate to it \u2014 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-8399a4b1d46bfc88", "name": "Frontend route `charte` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `charte` has no Link/navigate to it \u2014 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-5f1c30dcab066cf6", "name": "Frontend route `distributors/:id/charte` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `distributors/:id/charte` has no Link/navigate to it \u2014 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-56a055f905cb3847", "name": "Frontend route `formation/charte` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/charte` has no Link/navigate to it \u2014 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-8550554d04a1b895", "name": "Frontend route `admin/charter-thumbs` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/charter-thumbs` has no Link/navigate to it \u2014 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-a32a2a8bced9c12f", "name": "Frontend route `cahier-de-bord` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `cahier-de-bord` has no Link/navigate to it \u2014 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-787164c11c187867", "name": "Frontend route `simulateur-ebe` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `simulateur-ebe` has no Link/navigate to it \u2014 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-a085b7c1787ff23c", "name": "Frontend route `developpement` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement` has no Link/navigate to it \u2014 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-d8108648e8584c17", "name": "Frontend route `developpement/flex-explique` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement/flex-explique` has no Link/navigate to it \u2014 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-5f2b8fc1c50b450b", "name": "Frontend route `developpement/prospection-explique` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement/prospection-explique` has no Link/navigate to it \u2014 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-447440cfed72a968", "name": "Frontend route `developpement/check-list-explique` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement/check-list-explique` has no Link/navigate to it \u2014 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-c1f275c3abf53824", "name": "Frontend route `developpement/club-vip-explique` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement/club-vip-explique` has no Link/navigate to it \u2014 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-e4376109c7e89fcd", "name": "Frontend route `routine-du-jour` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `routine-du-jour` has no Link/navigate to it \u2014 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-5db2aecd04558f50", "name": "Frontend route `suivis-du-jour` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `suivis-du-jour` has no Link/navigate to it \u2014 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-c1e208162fb59c5a", "name": "Frontend route `travaux` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `travaux` has no Link/navigate to it \u2014 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-18342acfdc0e7818", "name": "Frontend route `developpement/nouveautes` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `developpement/nouveautes` has no Link/navigate to it \u2014 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-b4691e4417df68fd", "name": "Frontend route `outils-prospection` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `outils-prospection` has no Link/navigate to it \u2014 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-eb7e437ebf9bf84a", "name": "Frontend route `outils-prospection/bilan-online` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `outils-prospection/bilan-online` has no Link/navigate to it \u2014 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-b633a062d2dfb701", "name": "Frontend route `outils-prospection/liens` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `outils-prospection/liens` has no Link/navigate to it \u2014 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-dbd9c4231177896e", "name": "Frontend route `outils-prospection/international` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `outils-prospection/international` has no Link/navigate to it \u2014 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-5b1ccafb49588a2d", "name": "Frontend route `prospection` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `prospection` has no Link/navigate to it \u2014 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-d75c0dd3559f42f4", "name": "Frontend route `admin/prospection` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/prospection` has no Link/navigate to it \u2014 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-fafeffec890c21dd", "name": "Frontend route `rentabilite` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `rentabilite` has no Link/navigate to it \u2014 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-3bf11a6166f5baa1", "name": "Frontend route `academy` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy` has no Link/navigate to it \u2014 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-0641fdacff53995b", "name": "Frontend route `academy/certificat` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/certificat` has no Link/navigate to it \u2014 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-4a31ce812027443f", "name": "Frontend route `academy/playbook` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/playbook` has no Link/navigate to it \u2014 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-d58d7a0bdaca0368", "name": "Frontend route `academy/sandbox` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/sandbox` has no Link/navigate to it \u2014 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-e96c68c1999c6663", "name": "Frontend route `academy/:sectionId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/:sectionId` has no Link/navigate to it \u2014 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-7ef5e2040b42a46d", "name": "Frontend route `academy/demo/fiche-client` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/demo/fiche-client` has no Link/navigate to it \u2014 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-78d0b4f92f087a21", "name": "Frontend route `academy/demo/agenda` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `academy/demo/agenda` has no Link/navigate to it \u2014 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-a8212e6c16666241", "name": "Frontend route `formation` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation` has no Link/navigate to it \u2014 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-847a7320aea9121c", "name": "Frontend route `formation/mon-equipe` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/mon-equipe` has no Link/navigate to it \u2014 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-0ec6b0044ad6cdb7", "name": "Frontend route `formation/admin` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/admin` has no Link/navigate to it \u2014 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-203582deffca2e17", "name": "Frontend route `formation/certificat` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/certificat` has no Link/navigate to it \u2014 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-0891532b88e6fa4c", "name": "Frontend route `formation/calculateur` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/calculateur` has no Link/navigate to it \u2014 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-a294e57c1e16bcd1", "name": "Frontend route `formation/glossaire` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/glossaire` has no Link/navigate to it \u2014 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-153d263755c55c3a", "name": "Frontend route `formation/boite-a-outils` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/boite-a-outils` has no Link/navigate to it \u2014 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-d69e067fb5f4e4c9", "name": "Frontend route `formation/boite-a-outils/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/boite-a-outils/:slug` has no Link/navigate to it \u2014 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-883e1205244cccef", "name": "Frontend route `formation/reconnaissance` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/reconnaissance` has no Link/navigate to it \u2014 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-70d1abddb6a1aa75", "name": "Frontend route `formation/parcours/:levelSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/parcours/:levelSlug` has no Link/navigate to it \u2014 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-b2df0668840afa98", "name": "Frontend route `formation/parcours/:levelSlug/:moduleSlug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `formation/parcours/:levelSlug/:moduleSlug` has no Link/navigate to it \u2014 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-0626b4c2e4efcb82", "name": "Frontend route `settings` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 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-3915b0fcfd0aca54", "name": "Frontend route `guide` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `guide` has no Link/navigate to it \u2014 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-5c3ffe8061f27d68", "name": "Frontend route `guide-suivi` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `guide-suivi` has no Link/navigate to it \u2014 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-47efaf44f7e611c5", "name": "Frontend route `pv` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `pv` has no Link/navigate to it \u2014 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-24c66f6edd13a449", "name": "Frontend route `messages` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `messages` has no Link/navigate to it \u2014 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-a508b7da9a8a58be", "name": "Frontend route `messagerie/conversation/:messageId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `messagerie/conversation/:messageId` has no Link/navigate to it \u2014 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-bd09324e4eea275b", "name": "Frontend route `agenda` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `agenda` has no Link/navigate to it \u2014 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-b113530310976905", "name": "Frontend route `clients` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients` has no Link/navigate to it \u2014 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-140963512b795f3e", "name": "Frontend route `crm` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `crm` has no Link/navigate to it \u2014 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-704726d7579ec77a", "name": "Frontend route `outils` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `outils` has no Link/navigate to it \u2014 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-1042cdece2bc5221", "name": "Frontend route `encaissement` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `encaissement` has no Link/navigate to it \u2014 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-dc4afdfc33ff6453", "name": "Frontend route `mes-liens` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `mes-liens` has no Link/navigate to it \u2014 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-6817da8bc22f01f1", "name": "Frontend route `panier` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `panier` has no Link/navigate to it \u2014 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-fea04209d8ae8555", "name": "Frontend route `users` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `users` has no Link/navigate to it \u2014 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-4c7d270cd56e31f7", "name": "Frontend route `admin/testimonials` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/testimonials` has no Link/navigate to it \u2014 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-f4f12518ece86faf", "name": "Frontend route `admin/newsletters` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/newsletters` has no Link/navigate to it \u2014 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-6234249efc0ff446", "name": "Frontend route `admin/newsletters/:id/edit` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/newsletters/:id/edit` has no Link/navigate to it \u2014 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-8d1aceb803d4d55c", "name": "Frontend route `admin/newsletters/:id/stats` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `admin/newsletters/:id/stats` has no Link/navigate to it \u2014 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-130f20804b3b07fb", "name": "Frontend route `team` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `team` has no Link/navigate to it \u2014 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-fc581fba234ac95e", "name": "Frontend route `pv/team` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `pv/team` has no Link/navigate to it \u2014 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-ddc1f0e866f6323f", "name": "Frontend route `analytics` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `analytics` has no Link/navigate to it \u2014 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-199edb63b241122d", "name": "Frontend route `debug/notifications` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `debug/notifications` has no Link/navigate to it \u2014 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-dfcc0477553bf4f0", "name": "Frontend route `parametres` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `parametres` has no Link/navigate to it \u2014 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-1868792fdf3b3388", "name": "Frontend route `parametres/arborescence-herbalife` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `parametres/arborescence-herbalife` has no Link/navigate to it \u2014 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-de6e9141f259ab97", "name": "Frontend route `distributors/:distributorId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `distributors/:distributorId` has no Link/navigate to it \u2014 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-490c1b91b12c7991", "name": "Frontend route `clients/:clientId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId` has no Link/navigate to it \u2014 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-55a9ad8453f79afd", "name": "Frontend route `clients/:clientId/start-assessment/edit` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId/start-assessment/edit` has no Link/navigate to it \u2014 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-8b7805f286dc101b", "name": "Frontend route `clients/:clientId/assessments/:assessmentId/edit` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId/assessments/:assessmentId/edit` has no Link/navigate to it \u2014 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-0983bbc89e7a7ae1", "name": "Frontend route `clients/:clientId/follow-up/new` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId/follow-up/new` has no Link/navigate to it \u2014 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-ebb4f04c7df9f0ca", "name": "Frontend route `clients/:clientId/schedule/edit` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId/schedule/edit` has no Link/navigate to it \u2014 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-f0dbe0cbd0210891", "name": "Frontend route `clients/:clientId/bilan-termine` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:clientId/bilan-termine` has no Link/navigate to it \u2014 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-c9f9515c70036bb4", "name": "Frontend route `assessments/new` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `assessments/new` has no Link/navigate to it \u2014 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-f8cb126becc841e0", "name": "Frontend route `/temoignage/coach/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/temoignage/coach/:slug` has no Link/navigate to it \u2014 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-53b1991691a9271e", "name": "Frontend route `/temoignage/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/temoignage/:token` has no Link/navigate to it \u2014 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-04b4353475098c1b", "name": "Frontend route `/recap/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/recap/:token` has no Link/navigate to it \u2014 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-713f414d9690745c", "name": "Frontend route `/rapport/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/rapport/:token` has no Link/navigate to it \u2014 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-a01d1708ff6d5073", "name": "Frontend route `/client/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/client/:token` has no Link/navigate to it \u2014 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-361c7e562528cdde", "name": "Frontend route `/client/:token/sandbox` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/client/:token/sandbox` has no Link/navigate to it \u2014 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-2da7c7f99ba6f021", "name": "Frontend route `/bienvenue` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bienvenue` has no Link/navigate to it \u2014 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-360891676605fbf7", "name": "Frontend route `/bienvenue-distri` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/bienvenue-distri` has no Link/navigate to it \u2014 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}}]}}, "automationDetails": {"id": "repobility/21490"}, "properties": {"repository": "tomkoss31/Lor-Squad-Wellness", "repoUrl": "https://github.com/tomkoss31/Lor-Squad-Wellness", "branch": "main"}, "results": [{"ruleId": "scanner-3fe9870512115f6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backup-supabase.ts:68"}, "properties": {"repobilityId": "c4e823ad56d497e5", "scanner": "scanner-primary", "fingerprint": "3fe9870512115f6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-30a9f26cca4f46a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/restore-supabase.ts:43"}, "properties": {"repobilityId": "621698eed3c18da0", "scanner": "scanner-primary", "fingerprint": "30a9f26cca4f46a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-406392af4d4c2894", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/coach-tips-dispatcher/index.ts:269"}, "properties": {"repobilityId": "284e987924dd319b", "scanner": "scanner-primary", "fingerprint": "406392af4d4c2894", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7acedd3f20034a62", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-anniversary-check/index.ts:48"}, "properties": {"repobilityId": "0612d52a310331cf", "scanner": "scanner-primary", "fingerprint": "7acedd3f20034a62", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aad1ae941fa206bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/pv-month-end-reminder/index.ts:152"}, "properties": {"repobilityId": "813dbb7c930162b5", "scanner": "scanner-primary", "fingerprint": "aad1ae941fa206bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7884812e1c92a240", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/formation-relay-to-admin/index.ts:128"}, "properties": {"repobilityId": "1676c4be7872dd0f", "scanner": "scanner-primary", "fingerprint": "7884812e1c92a240", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a9a7955f2236f1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/client-app-data/index.ts:31"}, "properties": {"repobilityId": "2e2e29c59844035b", "scanner": "scanner-primary", "fingerprint": "3a9a7955f2236f1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7fde802c9cffdae9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/daily-actions-notifier/index.ts:125"}, "properties": {"repobilityId": "e29b9d7a02102abd", "scanner": "scanner-primary", "fingerprint": "7fde802c9cffdae9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a86e5cf0feb800ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/rank-threshold-notifier/index.ts:174"}, "properties": {"repobilityId": "2ac691d97c10f782", "scanner": "scanner-primary", "fingerprint": "a86e5cf0feb800ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39d279827eb6e33d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/flex-notifier/index.ts:194"}, "properties": {"repobilityId": "d8a48f730f90f7d3", "scanner": "scanner-primary", "fingerprint": "39d279827eb6e33d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-099b13786635a070", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/sw.js:214"}, "properties": {"repobilityId": "19ecb22d48da856c", "scanner": "scanner-primary", "fingerprint": "099b13786635a070", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-659860b0d28222aa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/client/DistributorBadge.tsx:61"}, "properties": {"repobilityId": "4bc35304288f9560", "scanner": "scanner-primary", "fingerprint": "659860b0d28222aa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d2b7aed29e413fb", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/client/EditScheduleModal.tsx:120"}, "properties": {"repobilityId": "5ba017cbc37d5c4e", "scanner": "scanner-primary", "fingerprint": "1d2b7aed29e413fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c94c6299fa6ccb52", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/ProspectionPage.tsx:1090"}, "properties": {"repobilityId": "8f9758246ff327b1", "scanner": "scanner-primary", "fingerprint": "c94c6299fa6ccb52", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f80240f4c3d95a30", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EditInitialAssessmentPage.tsx:964"}, "properties": {"repobilityId": "9c75eb68e1510ea6", "scanner": "scanner-primary", "fingerprint": "f80240f4c3d95a30", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e463d57233715adf", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/ClientsPage.tsx:371"}, "properties": {"repobilityId": "42ab02694d6d2540", "scanner": "scanner-primary", "fingerprint": "e463d57233715adf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-95dfcd4ae9287dc2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/pages/AdminProspectionPage.tsx:627"}, "properties": {"repobilityId": "b5c9e389611d10e2", "scanner": "scanner-primary", "fingerprint": "95dfcd4ae9287dc2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-89305b622f41ced1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/pages/AcademyOverviewPage.tsx:614"}, "properties": {"repobilityId": "8d3dfde68ef2e923", "scanner": "scanner-primary", "fingerprint": "89305b622f41ced1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cb2a739b8071f61b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/DebugNotificationsPage.tsx:305"}, "properties": {"repobilityId": "c0750f0be912bc92", "scanner": "scanner-primary", "fingerprint": "cb2a739b8071f61b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08c5680238fdb60c", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/pages/GuidePage.tsx:391"}, "properties": {"repobilityId": "2ac0ba3083191130", "scanner": "scanner-primary", "fingerprint": "08c5680238fdb60c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-f1033d12c308ed3b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype-v3.js:40"}, "properties": {"repobilityId": "2d96ea135c0a7a7e", "scanner": "scanner-primary", "fingerprint": "f1033d12c308ed3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/mockups/prospection-v4-prototype-v3.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-e44d42587b242560", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-refonte-design.html:1654"}, "properties": {"repobilityId": "257ec232c48eff75", "scanner": "scanner-primary", "fingerprint": "e44d42587b242560", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/mockups/prospection-v4-refonte-design.html"}, "region": {"startLine": 1654}}}]}, {"ruleId": "scanner-484ac3a54364af11", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-v4-prototype.js:40"}, "properties": {"repobilityId": "dbb8aba39385cf58", "scanner": "scanner-primary", "fingerprint": "484ac3a54364af11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/mockups/prospection-v4-prototype.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-bcf4c1727973d257", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/mockups/prospection-internationale.html:957"}, "properties": {"repobilityId": "676ebd9282d1556c", "scanner": "scanner-primary", "fingerprint": "bcf4c1727973d257", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/mockups/prospection-internationale.html"}, "region": {"startLine": 957}}}]}, {"ruleId": "scanner-b9d5a9a6a1824eed", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-set-baseline/index.ts:23"}, "properties": {"repobilityId": "a3256f80e8a75164", "scanner": "scanner-primary", "fingerprint": "b9d5a9a6a1824eed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/client-app-set-baseline/index.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-644d9d455e799f99", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-confirm-calendar/index.ts:17"}, "properties": {"repobilityId": "06948db651d8eea7", "scanner": "scanner-primary", "fingerprint": "644d9d455e799f99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/client-app-confirm-calendar/index.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-cadad1730e898490", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/request-testimonial/index.ts:20"}, "properties": {"repobilityId": "faa34c10ed74b3ee", "scanner": "scanner-primary", "fingerprint": "cadad1730e898490", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/request-testimonial/index.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-e542adb4f729afa5", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-anniversary-check/index.ts:24"}, "properties": {"repobilityId": "0dcc7d569c166966", "scanner": "scanner-primary", "fingerprint": "e542adb4f729afa5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/client-anniversary-check/index.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-1e77aa3e60d844bd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/get-testimonial-context/index.ts:18"}, "properties": {"repobilityId": "78323d9345b1b998", "scanner": "scanner-primary", "fingerprint": "1e77aa3e60d844bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/get-testimonial-context/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-7dcae51edbd3a884", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-auto-login-token/index.ts:18"}, "properties": {"repobilityId": "8c679bc5110dc507", "scanner": "scanner-primary", "fingerprint": "7dcae51edbd3a884", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/consume-auto-login-token/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-f46186a1f873af96", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-distributor-invite-token/index.ts:24"}, "properties": {"repobilityId": "7c9a1270f36a3fb2", "scanner": "scanner-primary", "fingerprint": "f46186a1f873af96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/validate-distributor-invite-token/index.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-01e3b3fe6d6f5661", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/upload-newsletter-og/index.ts:18"}, "properties": {"repobilityId": "b695ad9ef7db34ee", "scanner": "scanner-primary", "fingerprint": "01e3b3fe6d6f5661", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/upload-newsletter-og/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-2ac65aa17620e245", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/confirm-stripe-payment/index.ts:28"}, "properties": {"repobilityId": "0b10dab09ff9332c", "scanner": "scanner-primary", "fingerprint": "2ac65aa17620e245", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/confirm-stripe-payment/index.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-fbb044ad12085956", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-newsletter-email/index.ts:26"}, "properties": {"repobilityId": "8de399eb821bdae6", "scanner": "scanner-primary", "fingerprint": "fbb044ad12085956", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/send-newsletter-email/index.ts"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-f5d68c386d772ebe", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-distributor-invite-token/index.ts:28"}, "properties": {"repobilityId": "697b486e2a65769d", "scanner": "scanner-primary", "fingerprint": "f5d68c386d772ebe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/consume-distributor-invite-token/index.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-a59049319a6acac4", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/noaly/index.ts:41"}, "properties": {"repobilityId": "b9e4e892b1152ebd", "scanner": "scanner-primary", "fingerprint": "a59049319a6acac4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/noaly/index.ts"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-31ff44b985b1524a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/track-newsletter-view/index.ts:18"}, "properties": {"repobilityId": "dd09ae8f3ea44164", "scanner": "scanner-primary", "fingerprint": "31ff44b985b1524a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/track-newsletter-view/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-eb7683082fb89939", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-prospect-lead/index.ts:18"}, "properties": {"repobilityId": "fe124deef41b8f14", "scanner": "scanner-primary", "fingerprint": "eb7683082fb89939", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/submit-prospect-lead/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-25716d7535e4d73e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/consume-invitation-token/index.ts:27"}, "properties": {"repobilityId": "a64690466922454b", "scanner": "scanner-primary", "fingerprint": "25716d7535e4d73e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/consume-invitation-token/index.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-1d1dfdee6510776f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/dispatch-newsletter/index.ts:29"}, "properties": {"repobilityId": "cc0aa0a04cbc8378", "scanner": "scanner-primary", "fingerprint": "1d1dfdee6510776f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/dispatch-newsletter/index.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-d8bca86052ef7529", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/validate-invitation-token/index.ts:24"}, "properties": {"repobilityId": "5fe7fef49f4a90c1", "scanner": "scanner-primary", "fingerprint": "d8bca86052ef7529", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/validate-invitation-token/index.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-39fd2bff577b868b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/resolve-public-share/index.ts:25"}, "properties": {"repobilityId": "c2e100e69c60d8c8", "scanner": "scanner-primary", "fingerprint": "39fd2bff577b868b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/resolve-public-share/index.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-8a5d162760b2b1cd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-data/index.ts:20"}, "properties": {"repobilityId": "70b6d47e568533fc", "scanner": "scanner-primary", "fingerprint": "8a5d162760b2b1cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/client-app-data/index.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-033b26e6d8e61ab0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-public-share-token/index.ts:18"}, "properties": {"repobilityId": "47ac66c8e9f2eb70", "scanner": "scanner-primary", "fingerprint": "033b26e6d8e61ab0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/create-public-share-token/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-edf4e72b6915e860", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-online-bilan/index.ts:81"}, "properties": {"repobilityId": "e1e10ec0101895d2", "scanner": "scanner-primary", "fingerprint": "edf4e72b6915e860", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/submit-online-bilan/index.ts"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-843090708dc3962b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-auto-login-token/index.ts:18"}, "properties": {"repobilityId": "c69a4f9f391f9620", "scanner": "scanner-primary", "fingerprint": "843090708dc3962b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/generate-auto-login-token/index.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-f8f13e9bdda330e8", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/client-app-mark-onboarded/index.ts:16"}, "properties": {"repobilityId": "6f4f3088deb29f81", "scanner": "scanner-primary", "fingerprint": "f8f13e9bdda330e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/client-app-mark-onboarded/index.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-3ea66e838c11abf1", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-push/index.ts:50"}, "properties": {"repobilityId": "062c204fd8b048af", "scanner": "scanner-primary", "fingerprint": "3ea66e838c11abf1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/send-push/index.ts"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-e239ccf155843719", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/generate-distributor-invite-token/index.ts:19"}, "properties": {"repobilityId": "68b71527bc82a231", "scanner": "scanner-primary", "fingerprint": "e239ccf155843719", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/generate-distributor-invite-token/index.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-7026d1849b8f5a11", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/submit-testimonial/index.ts:23"}, "properties": {"repobilityId": "274f8b11ff6b9fbe", "scanner": "scanner-primary", "fingerprint": "7026d1849b8f5a11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/submit-testimonial/index.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-ce6f471136f0d36c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/get-online-bilan-results/index.ts:23"}, "properties": {"repobilityId": "7c7389816c839125", "scanner": "scanner-primary", "fingerprint": "ce6f471136f0d36c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/get-online-bilan-results/index.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-34425bda36d2c390", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-manual-payment-link/index.ts:31"}, "properties": {"repobilityId": "4e184e2f452392ef", "scanner": "scanner-primary", "fingerprint": "34425bda36d2c390", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/create-manual-payment-link/index.ts"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-89cd3f11516d2b83", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/create-payment-link/index.ts:27"}, "properties": {"repobilityId": "6fa3214b8a8fa39e", "scanner": "scanner-primary", "fingerprint": "89cd3f11516d2b83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/create-payment-link/index.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-5d0e19d336c72eb7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/_shared/push.ts:205"}, "properties": {"repobilityId": "76b8c79f658f42ea", "scanner": "scanner-primary", "fingerprint": "5d0e19d336c72eb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/_shared/push.ts"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-0e450ee75c7b027b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v6-preview.html:1646"}, "properties": {"repobilityId": "a7a8289afe959f69", "scanner": "scanner-primary", "fingerprint": "0e450ee75c7b027b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/copilote-v6-preview.html"}, "region": {"startLine": 1646}}}]}, {"ruleId": "scanner-416c4415f76a2bed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/copilote-v7-preview.html:1847"}, "properties": {"repobilityId": "9fa480185f11f754", "scanner": "scanner-primary", "fingerprint": "416c4415f76a2bed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/copilote-v7-preview.html"}, "region": {"startLine": 1847}}}]}, {"ruleId": "scanner-91c590c27b84e4a1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/ProspectionPage.tsx:1090"}, "properties": {"repobilityId": "6f4d3eed031711ed", "scanner": "scanner-primary", "fingerprint": "91c590c27b84e4a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/ProspectionPage.tsx"}, "region": {"startLine": 1090}}}]}, {"ruleId": "scanner-16e148725ba5f6ee", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/features/gamification/hooks/useSessionTracker.ts:111"}, "properties": {"repobilityId": "2ca0501b05529c86", "scanner": "scanner-primary", "fingerprint": "16e148725ba5f6ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/features/gamification/hooks/useSessionTracker.ts"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-5e9d4a7e1b0eabc1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e6c3a7843406f079", "scanner": "scanner-primary", "fingerprint": "5e9d4a7e1b0eabc1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backup.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-ea73f7bd8a7bbda2", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "a9d7fe1b5b83ec78", "scanner": "scanner-primary", "fingerprint": "ea73f7bd8a7bbda2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/backup.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bda6deb11902724f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "52fa6a3933670e49", "scanner": "scanner-primary", "fingerprint": "bda6deb11902724f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-merge.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f2e423566bc11c2", "level": "note", "message": {"text": "Very large file: src/components/pv/PvClientFullPage.tsx (1660 lines)"}, "properties": {"repobilityId": "4bbbbb0cacd579b5", "scanner": "scanner-primary", "fingerprint": "3f2e423566bc11c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b8fb34ae2e332b5b", "level": "note", "message": {"text": "Very large file: src/components/prospection/ProspectionHub.tsx (1371 lines)"}, "properties": {"repobilityId": "904bf66dee43d5ea", "scanner": "scanner-primary", "fingerprint": "b8fb34ae2e332b5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b59fa0f4824aa0fd", "level": "note", "message": {"text": "Very large file: src/components/client-detail/ActionsTab.tsx (1557 lines)"}, "properties": {"repobilityId": "c023ee1c9ac12945", "scanner": "scanner-primary", "fingerprint": "b59fa0f4824aa0fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8435264e701ae3be", "level": "note", "message": {"text": "Very large file: src/pages/UsersPage.tsx (1233 lines)"}, "properties": {"repobilityId": "53ce1005e35fe6ba", "scanner": "scanner-primary", "fingerprint": "8435264e701ae3be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-31918fb6e29d90e2", "level": "note", "message": {"text": "Very large file: src/pages/ProspectionPage.tsx (1651 lines)"}, "properties": {"repobilityId": "b0abb6bd3daee3f8", "scanner": "scanner-primary", "fingerprint": "31918fb6e29d90e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a53f9390bad41733", "level": "note", "message": {"text": "Very large file: src/pages/EditInitialAssessmentPage.tsx (1261 lines)"}, "properties": {"repobilityId": "3c7772847c60f206", "scanner": "scanner-primary", "fingerprint": "a53f9390bad41733", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c43a901bc44f1577", "level": "note", "message": {"text": "Very large file: src/pages/OpportunitePage.tsx (1021 lines)"}, "properties": {"repobilityId": "147878b26fb6df39", "scanner": "scanner-primary", "fingerprint": "c43a901bc44f1577", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3ba65432e0c39f7", "level": "note", "message": {"text": "Very large file: src/pages/ClientDetailPage.tsx (1593 lines)"}, "properties": {"repobilityId": "06556fcde0e9282a", "scanner": "scanner-primary", "fingerprint": "d3ba65432e0c39f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3558647abfcb41b", "level": "note", "message": {"text": "Very large file: src/pages/ClientAppPage.tsx (1410 lines)"}, "properties": {"repobilityId": "7a437c0f1860f5f4", "scanner": "scanner-primary", "fingerprint": "d3558647abfcb41b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00b055ca71435d2f", "level": "note", "message": {"text": "Very large file: src/pages/CrmPage.tsx (1385 lines)"}, "properties": {"repobilityId": "841e955501f58797", "scanner": "scanner-primary", "fingerprint": "00b055ca71435d2f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71b2bff7a5bd34af", "level": "note", "message": {"text": "Very large file: src/pages/AdminNewsletterEditPage.tsx (1860 lines)"}, "properties": {"repobilityId": "281c4d1307c087d5", "scanner": "scanner-primary", "fingerprint": "71b2bff7a5bd34af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ac506822cc1401ef", "level": "note", "message": {"text": "Very large file: src/pages/BilanOnlinePage.tsx (1333 lines)"}, "properties": {"repobilityId": "85dd2a81a041f844", "scanner": "scanner-primary", "fingerprint": "ac506822cc1401ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ba47f8f5331c77d", "level": "note", "message": {"text": "Very large file: src/pages/TeamPage.tsx (1511 lines)"}, "properties": {"repobilityId": "361e497fb8eb314c", "scanner": "scanner-primary", "fingerprint": "6ba47f8f5331c77d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59c4f74ad6d5152a", "level": "note", "message": {"text": "Very large file: src/pages/NewAssessmentPage.tsx (4431 lines)"}, "properties": {"repobilityId": "e6deb76098f28818", "scanner": "scanner-primary", "fingerprint": "59c4f74ad6d5152a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8a0151bbc1a948a1", "level": "note", "message": {"text": "Very large file: src/pages/ArborescenceHerbalifePage.tsx (1892 lines)"}, "properties": {"repobilityId": "1990615f11ec3182", "scanner": "scanner-primary", "fingerprint": "8a0151bbc1a948a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8d1bc414ff4d32c6", "level": "note", "message": {"text": "Very large file: src/pages/BusinessPage.tsx (1345 lines)"}, "properties": {"repobilityId": "380ebe85fa166a68", "scanner": "scanner-primary", "fingerprint": "8d1bc414ff4d32c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2ab1197ccafa51f3", "level": "note", "message": {"text": "Very large file: src/pages/AgendaPage.tsx (2286 lines)"}, "properties": {"repobilityId": "4d1bc94170ed0d57", "scanner": "scanner-primary", "fingerprint": "2ab1197ccafa51f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fc08b8c0bfbcb715", "level": "note", "message": {"text": "Very large file: src/services/supabaseService.ts (2714 lines)"}, "properties": {"repobilityId": "909b6722cba3bb46", "scanner": "scanner-primary", "fingerprint": "fc08b8c0bfbcb715", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ff209c7b20a8765", "level": "note", "message": {"text": "Very large file: src/features/academy/sections.ts (1698 lines)"}, "properties": {"repobilityId": "fc970a7e2516ae86", "scanner": "scanner-primary", "fingerprint": "3ff209c7b20a8765", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "d8260ece079c4b97", "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": "6629431841442eab", "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": "575aed472a7486d9", "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": "654726f20e311d3d", "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": "52991e0360e06adb", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "9a2b03504146dcfe", "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": "233ef7e1d7becba9", "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": "3745e05075324c99", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"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-478734530777971a", "level": "none", "message": {"text": "Commented-code block (5 lines) in vite.config.ts:18"}, "properties": {"repobilityId": "f04c6afa2b951f4c", "scanner": "scanner-primary", "fingerprint": "478734530777971a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d676d374229091be", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/og/coach.ts:1"}, "properties": {"repobilityId": "b9cb0ae050f59e69", "scanner": "scanner-primary", "fingerprint": "d676d374229091be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae6ab3b21d1caf0f", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:2"}, "properties": {"repobilityId": "9e3240cc4806dc66", "scanner": "scanner-primary", "fingerprint": "ae6ab3b21d1caf0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d30a2919a92d6c9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design-v2/rentabilit/project/design-canvas.jsx:128"}, "properties": {"repobilityId": "be3f87e2dfc69cf6", "scanner": "scanner-primary", "fingerprint": "d30a2919a92d6c9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d19870ea3a03ad6e", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:2"}, "properties": {"repobilityId": "b5fb090b68c44fbc", "scanner": "scanner-primary", "fingerprint": "d19870ea3a03ad6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-650d2e9c6658701a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/mockups/rentabilite-design/rentabilit/project/design-canvas.jsx:128"}, "properties": {"repobilityId": "0edf5e32491c246d", "scanner": "scanner-primary", "fingerprint": "650d2e9c6658701a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c3ec43d15b18fc3", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/client-app-set-baseline/index.ts:3"}, "properties": {"repobilityId": "49a82bf907b7b7e5", "scanner": "scanner-primary", "fingerprint": "4c3ec43d15b18fc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-278192b0c770dc39", "level": "none", "message": {"text": "Commented-code block (8 lines) in supabase/functions/morning-suivis-digest/index.ts:4"}, "properties": {"repobilityId": "317953520c419fa5", "scanner": "scanner-primary", "fingerprint": "278192b0c770dc39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8ceac1d4e42c111", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/request-testimonial/index.ts:1"}, "properties": {"repobilityId": "e57aea3796766288", "scanner": "scanner-primary", "fingerprint": "d8ceac1d4e42c111", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7924ca1e80653319", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/resend-webhook/index.ts:13"}, "properties": {"repobilityId": "7a2bfbf1429017cd", "scanner": "scanner-primary", "fingerprint": "7924ca1e80653319", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-469e2a9344a271b3", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/client-anniversary-check/index.ts:5"}, "properties": {"repobilityId": "e53619621c89d9cf", "scanner": "scanner-primary", "fingerprint": "469e2a9344a271b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41704a242a70ab0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/get-testimonial-context/index.ts:1"}, "properties": {"repobilityId": "071f62d2b313750f", "scanner": "scanner-primary", "fingerprint": "41704a242a70ab0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74bf79a14e5aae34", "level": "none", "message": {"text": "Commented-code block (9 lines) in supabase/functions/validate-distributor-invite-token/index.ts:4"}, "properties": {"repobilityId": "464317b61158a9c0", "scanner": "scanner-primary", "fingerprint": "74bf79a14e5aae34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afeac2da7e0f75ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/confirm-stripe-payment/index.ts:5"}, "properties": {"repobilityId": "67d0ccaeab957dde", "scanner": "scanner-primary", "fingerprint": "afeac2da7e0f75ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9110fe9b65a16aea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-newsletter-email/index.ts:100"}, "properties": {"repobilityId": "f31b22857ddb307d", "scanner": "scanner-primary", "fingerprint": "9110fe9b65a16aea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-07eeeb478985fac0", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/consume-distributor-invite-token/index.ts:4"}, "properties": {"repobilityId": "b7b587a89e994f8a", "scanner": "scanner-primary", "fingerprint": "07eeeb478985fac0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b6ec05e89c1e33c", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/book-rdv/index.ts:4"}, "properties": {"repobilityId": "da60d4113c841e48", "scanner": "scanner-primary", "fingerprint": "4b6ec05e89c1e33c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4546c525b634e721", "level": "none", "message": {"text": "Commented-code block (16 lines) in supabase/functions/noaly/index.ts:4"}, "properties": {"repobilityId": "a368576e1d4190dc", "scanner": "scanner-primary", "fingerprint": "4546c525b634e721", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2465b26313c9746a", "level": "none", "message": {"text": "Commented-code block (11 lines) in supabase/functions/consume-invitation-token/index.ts:1"}, "properties": {"repobilityId": "998a753399f66ca3", "scanner": "scanner-primary", "fingerprint": "2465b26313c9746a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6b9666f7b0a47c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/dispatch-newsletter/index.ts:4"}, "properties": {"repobilityId": "22888593c17e3a3c", "scanner": "scanner-primary", "fingerprint": "a6b9666f7b0a47c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8cbac686fe24162", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/square-payment-webhook/index.ts:8"}, "properties": {"repobilityId": "c919ec8dbfba6001", "scanner": "scanner-primary", "fingerprint": "d8cbac686fe24162", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6adabf77d1298341", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/validate-invitation-token/index.ts:6"}, "properties": {"repobilityId": "1223f9cc82e020cb", "scanner": "scanner-primary", "fingerprint": "6adabf77d1298341", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f388dc30682972a", "level": "none", "message": {"text": "Commented-code block (9 lines) in supabase/functions/pv-month-end-reminder/index.ts:8"}, "properties": {"repobilityId": "d89b64eda8f3d286", "scanner": "scanner-primary", "fingerprint": "7f388dc30682972a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50f7f405708268ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/resolve-public-share/index.ts:1"}, "properties": {"repobilityId": "cf9ca70c778bdf00", "scanner": "scanner-primary", "fingerprint": "50f7f405708268ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-386abe3bf82919e8", "level": "none", "message": {"text": "Commented-code block (11 lines) in supabase/functions/formation-relay-to-admin/index.ts:7"}, "properties": {"repobilityId": "41f803bfc16b5993", "scanner": "scanner-primary", "fingerprint": "386abe3bf82919e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6928964cc6ff6e7", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/client-app-data/index.ts:1"}, "properties": {"repobilityId": "7c2ef15fc629ba75", "scanner": "scanner-primary", "fingerprint": "b6928964cc6ff6e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-950cb6eb9b741764", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/submit-online-bilan/index.ts:1"}, "properties": {"repobilityId": "d1efa3da20ce1948", "scanner": "scanner-primary", "fingerprint": "950cb6eb9b741764", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb16157ebacae4b9", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/daily-actions-notifier/index.ts:7"}, "properties": {"repobilityId": "3a81ace7133227a5", "scanner": "scanner-primary", "fingerprint": "cb16157ebacae4b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6359e6fdc99db50", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/send-push/index.ts:4"}, "properties": {"repobilityId": "500c75ccccb83e48", "scanner": "scanner-primary", "fingerprint": "c6359e6fdc99db50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-185c110eb1133132", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/rank-threshold-notifier/index.ts:8"}, "properties": {"repobilityId": "d376521943a9cbbe", "scanner": "scanner-primary", "fingerprint": "185c110eb1133132", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36da01b745995b97", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/crm-relance-notifier/index.ts:8"}, "properties": {"repobilityId": "e379739763319318", "scanner": "scanner-primary", "fingerprint": "36da01b745995b97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30ffd7104eb8952f", "level": "none", "message": {"text": "Commented-code block (9 lines) in supabase/functions/submit-testimonial/index.ts:1"}, "properties": {"repobilityId": "06bec741a5ff0f77", "scanner": "scanner-primary", "fingerprint": "30ffd7104eb8952f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4dccd526f6ceada", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/create-manual-payment-link/index.ts:8"}, "properties": {"repobilityId": "71f1b4eaa958744d", "scanner": "scanner-primary", "fingerprint": "f4dccd526f6ceada", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc54bb890e4c12ae", "level": "none", "message": {"text": "Commented-code block (8 lines) in supabase/functions/formation-validation-notifier/index.ts:9"}, "properties": {"repobilityId": "5f26ff7acfb74229", "scanner": "scanner-primary", "fingerprint": "fc54bb890e4c12ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6102606e3e90ecc5", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/create-payment-link/index.ts:4"}, "properties": {"repobilityId": "f2f91796ea5ac31d", "scanner": "scanner-primary", "fingerprint": "6102606e3e90ecc5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eff57c7af3209456", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/_shared/push.ts:8"}, "properties": {"repobilityId": "275d4f72730f490f", "scanner": "scanner-primary", "fingerprint": "eff57c7af3209456", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a683668e86733c9", "level": "none", "message": {"text": "Commented-code block (10 lines) in public/sw.js:9"}, "properties": {"repobilityId": "4cf3b6c414fd3193", "scanner": "scanner-primary", "fingerprint": "0a683668e86733c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da045d8a2613481d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/main.tsx:44"}, "properties": {"repobilityId": "e9069efac7a0acbc", "scanner": "scanner-primary", "fingerprint": "da045d8a2613481d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39b5510136602ef1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/types/domain.ts:262"}, "properties": {"repobilityId": "475d1cd4ec06f7f7", "scanner": "scanner-primary", "fingerprint": "39b5510136602ef1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04bea34e5b9ef7e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/cahier.ts:100"}, "properties": {"repobilityId": "e0dfa1fd16013001", "scanner": "scanner-primary", "fingerprint": "04bea34e5b9ef7e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8da74e5b480ccb02", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/config/teamConfig.ts:1"}, "properties": {"repobilityId": "1077534a809f6cf3", "scanner": "scanner-primary", "fingerprint": "8da74e5b480ccb02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e55bc04fb045a31", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/ErrorBoundary.tsx:3"}, "properties": {"repobilityId": "1b77dacf8334a2ae", "scanner": "scanner-primary", "fingerprint": "7e55bc04fb045a31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e17fcfb463cfbc6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/error-boundary/errorTips.ts:8"}, "properties": {"repobilityId": "a5c85310cd0a46cd", "scanner": "scanner-primary", "fingerprint": "2e17fcfb463cfbc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bd31e8225a2b8ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/settings/ManualPaymentLinkCard.tsx:5"}, "properties": {"repobilityId": "f486c20ba624384a", "scanner": "scanner-primary", "fingerprint": "6bd31e8225a2b8ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a37d9ba4eabc40ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/settings/PaymentSettingsCard.tsx:5"}, "properties": {"repobilityId": "b6d0b6d02e83ab13", "scanner": "scanner-primary", "fingerprint": "a37d9ba4eabc40ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ea5ec138dbf140f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/settings/DebugTab.tsx:3"}, "properties": {"repobilityId": "9c5f64e341673774", "scanner": "scanner-primary", "fingerprint": "2ea5ec138dbf140f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35e62b016a46c313", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/settings/RdvAvailabilityCard.tsx:1"}, "properties": {"repobilityId": "419d49a91fca0256", "scanner": "scanner-primary", "fingerprint": "35e62b016a46c313", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7d487d727de5352", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/assessment/AssessmentFieldV2.tsx:7"}, "properties": {"repobilityId": "51d89826369a6272", "scanner": "scanner-primary", "fingerprint": "a7d487d727de5352", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3bc386b3fc1b7cd", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/assessment/SelectableProductCard.tsx:1"}, "properties": {"repobilityId": "aeb3418fee9b983a", "scanner": "scanner-primary", "fingerprint": "f3bc386b3fc1b7cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad925020c2440814", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/ThankYouStep.tsx:5"}, "properties": {"repobilityId": "8de53d4ecdeba88f", "scanner": "scanner-primary", "fingerprint": "ad925020c2440814", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bb4f7d8bd15e768", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/assessment/FollowUpStepV2.tsx:8"}, "properties": {"repobilityId": "2d80dec601661d9f", "scanner": "scanner-primary", "fingerprint": "5bb4f7d8bd15e768", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca36c7f1e9b379bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/BusinessCuriosityCard.tsx:4"}, "properties": {"repobilityId": "1173b535cda7de0a", "scanner": "scanner-primary", "fingerprint": "ca36c7f1e9b379bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42859e111143be40", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/assessment/NoalyBilanPanel.tsx:4"}, "properties": {"repobilityId": "91c8052c549a99a3", "scanner": "scanner-primary", "fingerprint": "42859e111143be40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3b05a8fb87c4c3c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/BodyMetricCard.tsx:6"}, "properties": {"repobilityId": "8a754f8d71734ba8", "scanner": "scanner-primary", "fingerprint": "f3b05a8fb87c4c3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c42b5e70361621e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/ProductCatalogModal.tsx:3"}, "properties": {"repobilityId": "66d53af0d3265f30", "scanner": "scanner-primary", "fingerprint": "c42b5e70361621e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-affb09fca3d1ba67", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/RecommendationStepV2.tsx:4"}, "properties": {"repobilityId": "c2aad7679a1fba33", "scanner": "scanner-primary", "fingerprint": "affb09fca3d1ba67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71228f7f6608c023", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/assessment/StepRail.tsx:1"}, "properties": {"repobilityId": "ac45b0562570edfb", "scanner": "scanner-primary", "fingerprint": "71228f7f6608c023", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e8336aa79a3e126", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/assessment/ProgrammeTicket.tsx:1"}, "properties": {"repobilityId": "c9fdb12f1d3e43f0", "scanner": "scanner-primary", "fingerprint": "3e8336aa79a3e126", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d7ca4d352251ca3", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/assessment/EvolutionReportModal.tsx:1"}, "properties": {"repobilityId": "be22bdca34f0185f", "scanner": "scanner-primary", "fingerprint": "0d7ca4d352251ca3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52cf6eaf0c392176", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/assessment/AssessmentSectionV2.tsx:7"}, "properties": {"repobilityId": "1a154adde5c99172", "scanner": "scanner-primary", "fingerprint": "52cf6eaf0c392176", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-198483cae9efb2f9", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/assessment/BilanSectionDivider.tsx:1"}, "properties": {"repobilityId": "d80596697f9dc323", "scanner": "scanner-primary", "fingerprint": "198483cae9efb2f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42ba994cd5fe406d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/layout/MobileDrawer.tsx:7"}, "properties": {"repobilityId": "bb60a9922ef56ab4", "scanner": "scanner-primary", "fingerprint": "42ba994cd5fe406d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ce6f78f304f1e2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/layout/BottomNav.tsx:1"}, "properties": {"repobilityId": "ca67cc0f01b51254", "scanner": "scanner-primary", "fingerprint": "8ce6f78f304f1e2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a81144a439ceb00f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/layout/MobileHeader.tsx:7"}, "properties": {"repobilityId": "a37aa5cc58abba8b", "scanner": "scanner-primary", "fingerprint": "a81144a439ceb00f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ac7d1c663633bea", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/components/layout/AppLayout.tsx:82"}, "properties": {"repobilityId": "9de1d3e32adaafdf", "scanner": "scanner-primary", "fingerprint": "2ac7d1c663633bea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b1a878cd1b5502d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/layout/StaleHostBanner.tsx:1"}, "properties": {"repobilityId": "4184dfe2392933fd", "scanner": "scanner-primary", "fingerprint": "4b1a878cd1b5502d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05a26d209ae5b657", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientPublicShareConsent.tsx:1"}, "properties": {"repobilityId": "011c58de3166d064", "scanner": "scanner-primary", "fingerprint": "05a26d209ae5b657", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9524f111f95c9a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientMoodCheckIn.tsx:5"}, "properties": {"repobilityId": "b53bf2d486d89e28", "scanner": "scanner-primary", "fingerprint": "f9524f111f95c9a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45b0ab81791cf0f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientAppFallbackBanner.tsx:1"}, "properties": {"repobilityId": "954ec25b3b62826a", "scanner": "scanner-primary", "fingerprint": "45b0ab81791cf0f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c1e56fc20612f43", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-app/ClubVipPresentation.tsx:10"}, "properties": {"repobilityId": "b0f52af5d3ff43a7", "scanner": "scanner-primary", "fingerprint": "7c1e56fc20612f43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34eac543713c80da", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientChatTab.tsx:1"}, "properties": {"repobilityId": "b7960fc1b233a05d", "scanner": "scanner-primary", "fingerprint": "34eac543713c80da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad58cd91e6c85ba3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientAppMeasurementsBlock.tsx:1"}, "properties": {"repobilityId": "38050612d762caac", "scanner": "scanner-primary", "fingerprint": "ad58cd91e6c85ba3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb4793b9b6459983", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientPushOptIn.tsx:1"}, "properties": {"repobilityId": "1f4e0b0ba0bfb532", "scanner": "scanner-primary", "fingerprint": "eb4793b9b6459983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9321756beffb4157", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientMetricChartModal.tsx:5"}, "properties": {"repobilityId": "3a211d58026b7584", "scanner": "scanner-primary", "fingerprint": "9321756beffb4157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68355c61109ed60c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client-app/ClientOnboardingTour.tsx:7"}, "properties": {"repobilityId": "3bffe5e26f90159e", "scanner": "scanner-primary", "fingerprint": "68355c61109ed60c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e59ae2a5ed792a21", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/client-app/ClientFaqChatbot.tsx:5"}, "properties": {"repobilityId": "ef0b23042a7e3f11", "scanner": "scanner-primary", "fingerprint": "e59ae2a5ed792a21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84db0eac8ee6fc6b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-app/ClientHomeTab.tsx:169"}, "properties": {"repobilityId": "4ea785ccc2e7909c", "scanner": "scanner-primary", "fingerprint": "84db0eac8ee6fc6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d17c383c9a044112", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client/CoachNotesBlock.tsx:1"}, "properties": {"repobilityId": "1b34b3980739a5ee", "scanner": "scanner-primary", "fingerprint": "d17c383c9a044112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7ca95a80f286898", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/client/ClientAccessModal.tsx:1"}, "properties": {"repobilityId": "0f10fb6b3a8baac2", "scanner": "scanner-primary", "fingerprint": "f7ca95a80f286898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-009781cec0e03171", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client/ClientAppPreviewButton.tsx:5"}, "properties": {"repobilityId": "7576a1a07364ccd5", "scanner": "scanner-primary", "fingerprint": "009781cec0e03171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c35e2670e2f9a286", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/client/WeightSummaryBlock.tsx:135"}, "properties": {"repobilityId": "6dda9d9c27f37ece", "scanner": "scanner-primary", "fingerprint": "c35e2670e2f9a286", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f25c806f0799abc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client/BodyCompositionGauges.tsx:1"}, "properties": {"repobilityId": "ca8d6c469d0a5272", "scanner": "scanner-primary", "fingerprint": "4f25c806f0799abc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfacf168fa822576", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/client/ClientInvitationButton.tsx:1"}, "properties": {"repobilityId": "f99b65acabbbbb2e", "scanner": "scanner-primary", "fingerprint": "cfacf168fa822576", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2b925b2cc266101", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/analytics/DistriDrillDownModal.tsx:5"}, "properties": {"repobilityId": "41f3d44fcb858c0f", "scanner": "scanner-primary", "fingerprint": "d2b925b2cc266101", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0125588b063c47c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/analytics/ProductDrilldownModal.tsx:1"}, "properties": {"repobilityId": "aae3e86994856df1", "scanner": "scanner-primary", "fingerprint": "0125588b063c47c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22e3561450e2a4b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/leads/LeadResponsePanel.tsx:5"}, "properties": {"repobilityId": "cbe1d9454541aa6e", "scanner": "scanner-primary", "fingerprint": "22e3561450e2a4b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d4d0c473da9583b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/leads/LeadScheduleModal.tsx:5"}, "properties": {"repobilityId": "c1678fd1765f9d75", "scanner": "scanner-primary", "fingerprint": "7d4d0c473da9583b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc81083455fb39e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/leads/LeadConvertModal.tsx:10"}, "properties": {"repobilityId": "e268b92c72e34512", "scanner": "scanner-primary", "fingerprint": "dc81083455fb39e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0247f778e8e9ef55", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/follow-up/FollowUpProtocolCard.tsx:40"}, "properties": {"repobilityId": "b8b58dae28f281f2", "scanner": "scanner-primary", "fingerprint": "0247f778e8e9ef55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a17334551ae4536", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/prospect/ProspectCard.tsx:170"}, "properties": {"repobilityId": "155305293a54e935", "scanner": "scanner-primary", "fingerprint": "8a17334551ae4536", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1400d1d578a6a7e", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/components/ui/ConfirmDialog.tsx:7"}, "properties": {"repobilityId": "c0d391b3988f2170", "scanner": "scanner-primary", "fingerprint": "d1400d1d578a6a7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21d220b6bb3d6aed", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/ui/PremiumHero.tsx:10"}, "properties": {"repobilityId": "52df08a0d61f77a0", "scanner": "scanner-primary", "fingerprint": "21d220b6bb3d6aed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dd6513b7cab8966", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/ui/EmptyState.tsx:1"}, "properties": {"repobilityId": "2b545c996a71e992", "scanner": "scanner-primary", "fingerprint": "0dd6513b7cab8966", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88c45b2b20208818", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ui/Button.tsx:10"}, "properties": {"repobilityId": "222772aa81f174c3", "scanner": "scanner-primary", "fingerprint": "88c45b2b20208818", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc88e79fc2cd2d70", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ui/CountrySelect.tsx:6"}, "properties": {"repobilityId": "70c8b878d1117665", "scanner": "scanner-primary", "fingerprint": "dc88e79fc2cd2d70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f63c6190f5f7f0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ui/KebabMenu.tsx:6"}, "properties": {"repobilityId": "6f78b27d695d2371", "scanner": "scanner-primary", "fingerprint": "4f63c6190f5f7f0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-168f970559807f71", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/team/DistriQuickModal.tsx:1"}, "properties": {"repobilityId": "ba07421f4c128798", "scanner": "scanner-primary", "fingerprint": "168f970559807f71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4092434339e6a4bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/team/LearningGrid.tsx:18"}, "properties": {"repobilityId": "774ae66ca8a22ff4", "scanner": "scanner-primary", "fingerprint": "4092434339e6a4bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dccebbf75da7c9f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/noaly/NoalyFab.tsx:5"}, "properties": {"repobilityId": "fb7526625780324b", "scanner": "scanner-primary", "fingerprint": "5dccebbf75da7c9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78017021554ad9c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/pwa/InstallPwaInstructions.tsx:1"}, "properties": {"repobilityId": "ed6fc16775464cdf", "scanner": "scanner-primary", "fingerprint": "78017021554ad9c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93d8bbcdbbe2b07d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/pwa/CoachInstallPwaButton.tsx:4"}, "properties": {"repobilityId": "5cd56a69be0d788f", "scanner": "scanner-primary", "fingerprint": "93d8bbcdbbe2b07d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2d7aa6071d7c5bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/pwa/SwUpdatePrompt.tsx:4"}, "properties": {"repobilityId": "b639703b970abb54", "scanner": "scanner-primary", "fingerprint": "e2d7aa6071d7c5bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de57854abec8ce32", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/copilote/InboxWidget.tsx:40"}, "properties": {"repobilityId": "899c4c1b7261d2c5", "scanner": "scanner-primary", "fingerprint": "de57854abec8ce32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93634dfeae7ea67b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/copilote/ReferrerStatsCard.tsx:5"}, "properties": {"repobilityId": "69cb5cffe62d574d", "scanner": "scanner-primary", "fingerprint": "93634dfeae7ea67b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-898e6ae0abb8d860", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/copilote/CoachTipOfDayCard.tsx:5"}, "properties": {"repobilityId": "eccd6fa327bc493f", "scanner": "scanner-primary", "fingerprint": "898e6ae0abb8d860", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2badca775eed970", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/copilote/ClockHeader.tsx:26"}, "properties": {"repobilityId": "266d8f93d6951ba7", "scanner": "scanner-primary", "fingerprint": "d2badca775eed970", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-758599e0fa8e6b97", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/copilote/PvActionPlanAlert.tsx:9"}, "properties": {"repobilityId": "47f51e0de70872ec", "scanner": "scanner-primary", "fingerprint": "758599e0fa8e6b97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed04d35e61d0d476", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/copilote/CelebrationDialog.tsx:6"}, "properties": {"repobilityId": "f65477ded4c06a08", "scanner": "scanner-primary", "fingerprint": "ed04d35e61d0d476", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fc55bae76c7bf91", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/pv/PvClientFullPage.tsx:5"}, "properties": {"repobilityId": "97b912e0950e4f40", "scanner": "scanner-primary", "fingerprint": "3fc55bae76c7bf91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63ec56c52fc3f74f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/pv/PvKanban.tsx:143"}, "properties": {"repobilityId": "bcc4a897337507f6", "scanner": "scanner-primary", "fingerprint": "63ec56c52fc3f74f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e34cc8236120080d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/pv/PvFiltersMenu.tsx:1"}, "properties": {"repobilityId": "7cec002cc7dbd901", "scanner": "scanner-primary", "fingerprint": "e34cc8236120080d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d9a8728f7c4093c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/testimonials/TestimonialsCarousel.tsx:1"}, "properties": {"repobilityId": "c704bca7d9224302", "scanner": "scanner-primary", "fingerprint": "6d9a8728f7c4093c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-490e7b46893f1313", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/announcements/AnnouncementSpotlight.tsx:4"}, "properties": {"repobilityId": "bed371a7f007fd2d", "scanner": "scanner-primary", "fingerprint": "490e7b46893f1313", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6a204f41c5835e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/bilan-online/CoachCredibilityBadges.tsx:4"}, "properties": {"repobilityId": "73018425d2ec2b07", "scanner": "scanner-primary", "fingerprint": "b6a204f41c5835e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a86c2ad3d7723fc2", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/prospection/ProspectionHub.tsx:7"}, "properties": {"repobilityId": "d3362e7763b71d52", "scanner": "scanner-primary", "fingerprint": "a86c2ad3d7723fc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e37d133fffb909c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/QuickSaleEditModal.tsx:5"}, "properties": {"repobilityId": "32f5970a591ac6e0", "scanner": "scanner-primary", "fingerprint": "e37d133fffb909c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-faac4fd7855bf370", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityTeamLeaderboard.tsx:4"}, "properties": {"repobilityId": "cd0b4cd8b6280b02", "scanner": "scanner-primary", "fingerprint": "faac4fd7855bf370", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e490dc81e3acce01", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityPvTeamTab.tsx:8"}, "properties": {"repobilityId": "336b0063319a574b", "scanner": "scanner-primary", "fingerprint": "e490dc81e3acce01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f4547096006d81c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/rentability/ManualPvEntriesSection.tsx:1"}, "properties": {"repobilityId": "3936c35dd8931700", "scanner": "scanner-primary", "fingerprint": "5f4547096006d81c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a879c6408e4a6c2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/rentability/RentabilityDetailModal.tsx:4"}, "properties": {"repobilityId": "a3ae81de440f1a29", "scanner": "scanner-primary", "fingerprint": "3a879c6408e4a6c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42a44cef06dd9bfc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityHorizontalWidget.tsx:6"}, "properties": {"repobilityId": "af60e801ad88eeda", "scanner": "scanner-primary", "fingerprint": "42a44cef06dd9bfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ada826b1a43c6c55", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/RentabilityWalletCard.tsx:8"}, "properties": {"repobilityId": "377941b22ff58060", "scanner": "scanner-primary", "fingerprint": "ada826b1a43c6c55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74c8e8b61684c3e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/rentability/shared/GaugeProjection.tsx:1"}, "properties": {"repobilityId": "d45c430f6a9dfc80", "scanner": "scanner-primary", "fingerprint": "74c8e8b61684c3e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d793c2120f2a380", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/messages/StartConversationModal.tsx:1"}, "properties": {"repobilityId": "c23b2d8101f36db2", "scanner": "scanner-primary", "fingerprint": "2d793c2120f2a380", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-688f5406568c9b70", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/flex/FlexHistoryCard.tsx:4"}, "properties": {"repobilityId": "8439417b4115b1c2", "scanner": "scanner-primary", "fingerprint": "688f5406568c9b70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3da37285eda745e1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/flex/FlexMidpointRecalcCard.tsx:8"}, "properties": {"repobilityId": "cd7159371a91df3a", "scanner": "scanner-primary", "fingerprint": "3da37285eda745e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a94051c8bf23aa8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/clients/ClientsFiltersMenu.tsx:6"}, "properties": {"repobilityId": "2767abfc93b362f1", "scanner": "scanner-primary", "fingerprint": "0a94051c8bf23aa8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87bf8ac28b5c401a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/clients/FiltersBottomSheet.tsx:7"}, "properties": {"repobilityId": "3004a2e526da1f4c", "scanner": "scanner-primary", "fingerprint": "87bf8ac28b5c401a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f7da824a58bf55c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/clients/ClientsMobileView.tsx:7"}, "properties": {"repobilityId": "9f858d490f1bf8e1", "scanner": "scanner-primary", "fingerprint": "9f7da824a58bf55c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-682745d89386a8cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/clients/BulkMessageModal.tsx:5"}, "properties": {"repobilityId": "6f63307dff7a2cdc", "scanner": "scanner-primary", "fingerprint": "682745d89386a8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27e6bcbdb6949a0e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/clients/ClientsKanban.tsx:5"}, "properties": {"repobilityId": "d48de7a0b6382e0e", "scanner": "scanner-primary", "fingerprint": "27e6bcbdb6949a0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f30ee1081abcd8a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/crm/RdvBookingsWidget.tsx:1"}, "properties": {"repobilityId": "8a35a7c33eefff4d", "scanner": "scanner-primary", "fingerprint": "f30ee1081abcd8a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7757252c9a0e672f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/client-detail/ClientVipPitchTab.tsx:4"}, "properties": {"repobilityId": "06da11a254968e79", "scanner": "scanner-primary", "fingerprint": "7757252c9a0e672f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86bb3d3abaec86f2", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/client-detail/ActionsRdvBlock.tsx:5"}, "properties": {"repobilityId": "2aa412c1a6839086", "scanner": "scanner-primary", "fingerprint": "86bb3d3abaec86f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b97514137fc64785", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-detail/MessageTemplatesModal.tsx:9"}, "properties": {"repobilityId": "0cc5e2947e2852df", "scanner": "scanner-primary", "fingerprint": "b97514137fc64785", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66f619c316239495", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/client-detail/HerbalifeUplinkPanel.tsx:4"}, "properties": {"repobilityId": "67cd985a38edcbcd", "scanner": "scanner-primary", "fingerprint": "66f619c316239495", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03a4ddbdcb703402", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/client-detail/ActionsTab.tsx:6"}, "properties": {"repobilityId": "4e36ed862ac94a1e", "scanner": "scanner-primary", "fingerprint": "03a4ddbdcb703402", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-067c1efd56f0a450", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/cahier/EditListe100ContactModal.tsx:1"}, "properties": {"repobilityId": "53986f2297975e78", "scanner": "scanner-primary", "fingerprint": "067c1efd56f0a450", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-311464fdaee34a89", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/EngagementTotalBlock.tsx:1"}, "properties": {"repobilityId": "df17aa04fb0e9df0", "scanner": "scanner-primary", "fingerprint": "311464fdaee34a89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17f2e46a9c8781c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/distributor-blocks/DistriQuickLink.tsx:1"}, "properties": {"repobilityId": "ff324f31946078ea", "scanner": "scanner-primary", "fingerprint": "17f2e46a9c8781c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a9224f0d6cab405", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/EngagementBlock.tsx:1"}, "properties": {"repobilityId": "34bb828218648e57", "scanner": "scanner-primary", "fingerprint": "1a9224f0d6cab405", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37223b1fdcda2dcc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/ActiviteRecenteBlock.tsx:1"}, "properties": {"repobilityId": "d929504a15b2d336", "scanner": "scanner-primary", "fingerprint": "37223b1fdcda2dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bff193896f65c82a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/ApprentissageBlock.tsx:1"}, "properties": {"repobilityId": "7d1a5efc18aad216", "scanner": "scanner-primary", "fingerprint": "bff193896f65c82a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bf497ad0a2f3ce8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/distributor-blocks/PvOverrideBlock.tsx:1"}, "properties": {"repobilityId": "33ed976ea64f91c4", "scanner": "scanner-primary", "fingerprint": "3bf497ad0a2f3ce8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a22a6ae2dd2ded4", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/_shared.tsx:1"}, "properties": {"repobilityId": "da28e0573ed5ba50", "scanner": "scanner-primary", "fingerprint": "6a22a6ae2dd2ded4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aa1374a6fb495e9", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/distributor-blocks/ProgressionRangBlock.tsx:1"}, "properties": {"repobilityId": "c8f91a5c190a42e9", "scanner": "scanner-primary", "fingerprint": "5aa1374a6fb495e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7a74c08c932fbf2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/distributor-blocks/PvBizworksBlock.tsx:1"}, "properties": {"repobilityId": "ca704395f6d893b0", "scanner": "scanner-primary", "fingerprint": "a7a74c08c932fbf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82539be5e933ddea", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/CompteActifBlock.tsx:1"}, "properties": {"repobilityId": "3f2c2a42f249ef77", "scanner": "scanner-primary", "fingerprint": "82539be5e933ddea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c73613811ce36fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/distributor-blocks/RangHerbalifeBlock.tsx:1"}, "properties": {"repobilityId": "cc0f52a83e462e1c", "scanner": "scanner-primary", "fingerprint": "2c73613811ce36fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ba48523c983f048", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/charter/CharterStory.tsx:4"}, "properties": {"repobilityId": "462e42a1d39e138d", "scanner": "scanner-primary", "fingerprint": "6ba48523c983f048", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ad26b52f8507757", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/charter/CharterManifeste.tsx:4"}, "properties": {"repobilityId": "ed94b00d8ec8b5c4", "scanner": "scanner-primary", "fingerprint": "4ad26b52f8507757", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cba20e3b6ab43a18", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/formation/MarkdownRenderer.tsx:4"}, "properties": {"repobilityId": "148ed710ab84d22d", "scanner": "scanner-primary", "fingerprint": "cba20e3b6ab43a18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-563a841aae153c79", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/formation/ParcoursLevelCard.tsx:4"}, "properties": {"repobilityId": "c547ad836e6bdb54", "scanner": "scanner-primary", "fingerprint": "563a841aae153c79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9699eaf3332dfa69", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/formation/ToolkitItemPopup.tsx:5"}, "properties": {"repobilityId": "bca7495a7f6070c9", "scanner": "scanner-primary", "fingerprint": "9699eaf3332dfa69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9ccf48665a74f55", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/formation/DistriOnboardingChecklist.tsx:7"}, "properties": {"repobilityId": "ff82fe73d0219199", "scanner": "scanner-primary", "fingerprint": "c9ccf48665a74f55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f15cc5ec76a4693", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/formation/FormationRoadmapCard.tsx:9"}, "properties": {"repobilityId": "86f6a900a03c4ce4", "scanner": "scanner-primary", "fingerprint": "5f15cc5ec76a4693", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b436f3bc8fb8e05", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/formation/ModuleNotesPanel.tsx:11"}, "properties": {"repobilityId": "3dbcdb7a3fc16d8b", "scanner": "scanner-primary", "fingerprint": "5b436f3bc8fb8e05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da145580f7dce8d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/formation/RecruteFormationCard.tsx:4"}, "properties": {"repobilityId": "93980af2dc91c890", "scanner": "scanner-primary", "fingerprint": "da145580f7dce8d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6a31061fbac4b0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/formation/ModuleCompletionPanel.tsx:4"}, "properties": {"repobilityId": "2df24a82e1201527", "scanner": "scanner-primary", "fingerprint": "b6a31061fbac4b0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3d03a1ff05db440", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/formation/LessonCard.tsx:4"}, "properties": {"repobilityId": "d4b8cdbace190ee4", "scanner": "scanner-primary", "fingerprint": "d3d03a1ff05db440", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02be16c455dc2c0a", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/components/formation/QuizRunner.tsx:7"}, "properties": {"repobilityId": "a7a28d8372330d18", "scanner": "scanner-primary", "fingerprint": "02be16c455dc2c0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-443fce33d03b4e75", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/formation/FormationStatusBadge.tsx:4"}, "properties": {"repobilityId": "f755571d905f2cce", "scanner": "scanner-primary", "fingerprint": "443fce33d03b4e75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44636c99eff2b4fa", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/public/PublicShell.tsx:9"}, "properties": {"repobilityId": "410b384d6ace1c8a", "scanner": "scanner-primary", "fingerprint": "44636c99eff2b4fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cacdccd9ab02d546", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/public/LaBase360Logo.tsx:10"}, "properties": {"repobilityId": "ce7d6e9889564748", "scanner": "scanner-primary", "fingerprint": "cacdccd9ab02d546", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-675ae5f0600c32b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/public/ThemeToggle.tsx:1"}, "properties": {"repobilityId": "d868aad8200b877c", "scanner": "scanner-primary", "fingerprint": "675ae5f0600c32b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18e098cd2ee542c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/consent/ConsentDialog.tsx:1"}, "properties": {"repobilityId": "bdde931782af0cae", "scanner": "scanner-primary", "fingerprint": "18e098cd2ee542c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaf569923996ff49", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/tutorial/TutorialLink.tsx:8"}, "properties": {"repobilityId": "798c2230ebb18be6", "scanner": "scanner-primary", "fingerprint": "eaf569923996ff49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c11d17afd82e991", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/tutorial/TutorialVideoModal.tsx:1"}, "properties": {"repobilityId": "280d31216892379e", "scanner": "scanner-primary", "fingerprint": "7c11d17afd82e991", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4431d3698cd197ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/welcome/ProspectFormModal.tsx:1"}, "properties": {"repobilityId": "b0cde365281c91f7", "scanner": "scanner-primary", "fingerprint": "4431d3698cd197ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1853b85b61997a92", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/assessmentRecommendations.ts:731"}, "properties": {"repobilityId": "2b2099d36d1568e3", "scanner": "scanner-primary", "fingerprint": "1853b85b61997a92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c05726d926a1a76", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/assessmentNotesStorage.ts:1"}, "properties": {"repobilityId": "652da00fcc0f7c28", "scanner": "scanner-primary", "fingerprint": "7c05726d926a1a76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e8a2180c2ad1bc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/opportunityFunnelLabels.ts:9"}, "properties": {"repobilityId": "a55f46e8a08df336", "scanner": "scanner-primary", "fingerprint": "7e8a2180c2ad1bc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5eeb133f968c65f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/time-context.ts:4"}, "properties": {"repobilityId": "22b73af62ece1fdb", "scanner": "scanner-primary", "fingerprint": "d5eeb133f968c65f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b6b1f2a6c63aeab", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/messageTemplates.ts:9"}, "properties": {"repobilityId": "714b03db52edbfaa", "scanner": "scanner-primary", "fingerprint": "2b6b1f2a6c63aeab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bd767f858cf98e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/calculations.ts:49"}, "properties": {"repobilityId": "8a719109059ad53d", "scanner": "scanner-primary", "fingerprint": "5bd767f858cf98e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64d6cf0584a15b24", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/crmMessages.ts:5"}, "properties": {"repobilityId": "7893d91e8b912cdf", "scanner": "scanner-primary", "fingerprint": "64d6cf0584a15b24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31b9f2d1ee3d5c97", "level": "note", "message": {"text": "Legacy-named symbol `too_old` in src/lib/followUpProtocolScheduler.ts:33"}, "properties": {"repobilityId": "d4ccb8256c3cd51f", "scanner": "scanner-primary", "fingerprint": "31b9f2d1ee3d5c97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b492db0d4f029dc0", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/followUpProtocolScheduler.ts:5"}, "properties": {"repobilityId": "321208aca0d81283", "scanner": "scanner-primary", "fingerprint": "b492db0d4f029dc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe147a9c6f326ebf", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/clientQuickFilters.ts:13"}, "properties": {"repobilityId": "4f0527f033778eae", "scanner": "scanner-primary", "fingerprint": "fe147a9c6f326ebf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f95a37b3e3876888", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/bilanOnlineScoring.ts:4"}, "properties": {"repobilityId": "3d232e83f4bbc59a", "scanner": "scanner-primary", "fingerprint": "f95a37b3e3876888", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0275a0634590c42", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/herbalifeFormulas.ts:9"}, "properties": {"repobilityId": "df2a185abb58245a", "scanner": "scanner-primary", "fingerprint": "a0275a0634590c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce2a900bfd7c295a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/herbalifeId.ts:3"}, "properties": {"repobilityId": "8b81a9ec6f798058", "scanner": "scanner-primary", "fingerprint": "ce2a900bfd7c295a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74f921210d42c13e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/productRecommendations.ts:1"}, "properties": {"repobilityId": "4b7359bab8dc5b89", "scanner": "scanner-primary", "fingerprint": "74f921210d42c13e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89cc16bec6764f37", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/flexCalculations.ts:13"}, "properties": {"repobilityId": "a08712387aacc046", "scanner": "scanner-primary", "fingerprint": "89cc16bec6764f37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7feb38679efff30a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/businessSimulator.ts:9"}, "properties": {"repobilityId": "4bf9081998fbe1ac", "scanner": "scanner-primary", "fingerprint": "7feb38679efff30a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a1af9b5563bfc5b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/leadConversion.ts:6"}, "properties": {"repobilityId": "09be3f64f9d1a271", "scanner": "scanner-primary", "fingerprint": "9a1af9b5563bfc5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17fdf0560fda18f0", "level": "note", "message": {"text": "Legacy-named symbol `too_old` in src/lib/__tests__/followUpProtocolScheduler.test.ts:105"}, "properties": {"repobilityId": "e8913a57ef53c29f", "scanner": "scanner-primary", "fingerprint": "17fdf0560fda18f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2bf4515da2823013", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/utils/onKeyAction.ts:7"}, "properties": {"repobilityId": "9c550b5abc1c5d05", "scanner": "scanner-primary", "fingerprint": "2bf4515da2823013", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7dfc8a27652af30", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/utils/extractFunctionError.ts:4"}, "properties": {"repobilityId": "d61be5abc042143a", "scanner": "scanner-primary", "fingerprint": "a7dfc8a27652af30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06f8a1272ddcd824", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/RdvBookingPage.tsx:5"}, "properties": {"repobilityId": "a8aa97f17531c9f6", "scanner": "scanner-primary", "fingerprint": "06f8a1272ddcd824", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cdbfb606ac378e9", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/pages/BienvenuePage.tsx:3"}, "properties": {"repobilityId": "2936eb9a4abca24d", "scanner": "scanner-primary", "fingerprint": "8cdbfb606ac378e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d582cc329f0c19b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/FlexOnboardingPage.tsx:7"}, "properties": {"repobilityId": "8def8a0bf00e6160", "scanner": "scanner-primary", "fingerprint": "7d582cc329f0c19b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef07b7b244557d81", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/FlexExpliquePage.tsx:4"}, "properties": {"repobilityId": "ca97aa0bdd32ca12", "scanner": "scanner-primary", "fingerprint": "ef07b7b244557d81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22912e16b1d4bfc3", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/pages/FormationPage.tsx:4"}, "properties": {"repobilityId": "d765ab1060c57939", "scanner": "scanner-primary", "fingerprint": "22912e16b1d4bfc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12b0f5a0be2c5989", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/ProspectionPage.tsx:4"}, "properties": {"repobilityId": "f541249872c2eb54", "scanner": "scanner-primary", "fingerprint": "12b0f5a0be2c5989", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af44f154ae940aeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/AdminCharterThumbsPage.tsx:9"}, "properties": {"repobilityId": "f336dc9258fff1fb", "scanner": "scanner-primary", "fingerprint": "af44f154ae940aeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91827b4c75781409", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionInternationalPage.tsx:8"}, "properties": {"repobilityId": "b50d6cb0da58b4af", "scanner": "scanner-primary", "fingerprint": "91827b4c75781409", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc8e230bd483c396", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/pages/EditInitialAssessmentPage.tsx:181"}, "properties": {"repobilityId": "3d09425d8d58aeea", "scanner": "scanner-primary", "fingerprint": "fc8e230bd483c396", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46b429a0c4ecd282", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/FlexTeamPage.tsx:6"}, "properties": {"repobilityId": "5d096a199e99bdff", "scanner": "scanner-primary", "fingerprint": "46b429a0c4ecd282", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccd1439521a6eef9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/RentabilitePage.tsx:4"}, "properties": {"repobilityId": "de5b352fa1a94c0c", "scanner": "scanner-primary", "fingerprint": "ccd1439521a6eef9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85bafd364a6d4170", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/ClientsPage.tsx:891"}, "properties": {"repobilityId": "b72cba50ca3898b7", "scanner": "scanner-primary", "fingerprint": "85bafd364a6d4170", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-880f7b98336e7000", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/FormationToolkitPage.tsx:4"}, "properties": {"repobilityId": "98c3b811990a939f", "scanner": "scanner-primary", "fingerprint": "880f7b98336e7000", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26db7506c523cb23", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/OpportunitePage.tsx:5"}, "properties": {"repobilityId": "f3925e97e3c3828d", "scanner": "scanner-primary", "fingerprint": "26db7506c523cb23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e93049d5881adef6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/ClientDetailPage.tsx:63"}, "properties": {"repobilityId": "83510df7ec02bb8a", "scanner": "scanner-primary", "fingerprint": "e93049d5881adef6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9768a8dfcf64ec97", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/EncaissementPage.tsx:4"}, "properties": {"repobilityId": "fc4cfff1c1cecef2", "scanner": "scanner-primary", "fingerprint": "9768a8dfcf64ec97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68d7a3d92c07d4d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/TestimonialFormPage.tsx:1"}, "properties": {"repobilityId": "11ef5cfe56624a25", "scanner": "scanner-primary", "fingerprint": "68d7a3d92c07d4d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e649f2ff10c8b4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/TestimonialFormPage.tsx:88"}, "properties": {"repobilityId": "0e4297bf022c5259", "scanner": "scanner-primary", "fingerprint": "2e649f2ff10c8b4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bec574a0cfa88268", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/FormationRecognitionPage.tsx:4"}, "properties": {"repobilityId": "d71e8e24be554e91", "scanner": "scanner-primary", "fingerprint": "bec574a0cfa88268", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b4cbda6d288ce37", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/AcademySectionPage.tsx:61"}, "properties": {"repobilityId": "38b80ffff12e0d8e", "scanner": "scanner-primary", "fingerprint": "7b4cbda6d288ce37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d52063715a4a0b53", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/pages/LoginPage.tsx:6"}, "properties": {"repobilityId": "6d883adab4d27c36", "scanner": "scanner-primary", "fingerprint": "d52063715a4a0b53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1588e7ca2f2b18b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/DistributorPortfolioPage.tsx:1"}, "properties": {"repobilityId": "bf46d0c40f6d1fe4", "scanner": "scanner-primary", "fingerprint": "c1588e7ca2f2b18b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38a7459541107bd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/FormationCalculatorPage.tsx:11"}, "properties": {"repobilityId": "a66b52de052ee00b", "scanner": "scanner-primary", "fingerprint": "38a7459541107bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0738f35c0613cc9", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/FlexDashboardPage.tsx:4"}, "properties": {"repobilityId": "5bab5e6e5c5864fb", "scanner": "scanner-primary", "fingerprint": "c0738f35c0613cc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad6644ba657627d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/SharePage.tsx:5"}, "properties": {"repobilityId": "682a7b9ae721a2b8", "scanner": "scanner-primary", "fingerprint": "ad6644ba657627d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-101a896900b846de", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/AutoLoginPage.tsx:1"}, "properties": {"repobilityId": "feac19e1ecf82678", "scanner": "scanner-primary", "fingerprint": "101a896900b846de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1a9b6a94ac05ecc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/AdminDistributorCharterPage.tsx:8"}, "properties": {"repobilityId": "717e7e47e7cbeeeb", "scanner": "scanner-primary", "fingerprint": "e1a9b6a94ac05ecc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e92be0e503e46f53", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/MesLiensPage.tsx:1"}, "properties": {"repobilityId": "c68afcf819527dce", "scanner": "scanner-primary", "fingerprint": "e92be0e503e46f53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33703f3818424c1e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/ClientAppPage.tsx:102"}, "properties": {"repobilityId": "c15f0197587c4520", "scanner": "scanner-primary", "fingerprint": "33703f3818424c1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d915a866b21941a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/OutilsPage.tsx:5"}, "properties": {"repobilityId": "014c5bdb2c4c0b83", "scanner": "scanner-primary", "fingerprint": "9d915a866b21941a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3b37276f5ea4be0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/FormationToolkitDetailPage.tsx:10"}, "properties": {"repobilityId": "589cc97443b76096", "scanner": "scanner-primary", "fingerprint": "f3b37276f5ea4be0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd0c03c607b57c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionPage.tsx:1"}, "properties": {"repobilityId": "64afd86962e6b9fc", "scanner": "scanner-primary", "fingerprint": "dd0c03c607b57c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c78256a72541da2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/BilanTermineePage.tsx:25"}, "properties": {"repobilityId": "eed62c8f626ff125", "scanner": "scanner-primary", "fingerprint": "2c78256a72541da2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a99cebd51a06b140", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionBilanPage.tsx:5"}, "properties": {"repobilityId": "d078cb58495d9766", "scanner": "scanner-primary", "fingerprint": "a99cebd51a06b140", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba04f655af97fc94", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/SuivisDuJourPage.tsx:4"}, "properties": {"repobilityId": "b914f808e73d80ff", "scanner": "scanner-primary", "fingerprint": "ba04f655af97fc94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62bda36f3b3f32ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/FormationModuleDetailPage.tsx:52"}, "properties": {"repobilityId": "ae5256fa71a18577", "scanner": "scanner-primary", "fingerprint": "62bda36f3b3f32ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c134c711f0446e37", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/pages/CrmPage.tsx:8"}, "properties": {"repobilityId": "d0ba6a9f3ca56fea", "scanner": "scanner-primary", "fingerprint": "c134c711f0446e37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-517c36d444d121f1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/AdminNewsletterEditPage.tsx:330"}, "properties": {"repobilityId": "811cb07eb6b04d2e", "scanner": "scanner-primary", "fingerprint": "517c36d444d121f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-06d91a5c38001af6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/BilanResultatPremiumPage.tsx:6"}, "properties": {"repobilityId": "72321306f784c00c", "scanner": "scanner-primary", "fingerprint": "06d91a5c38001af6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-625818bd02dec430", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/OutilsProspectionMerePage.tsx:5"}, "properties": {"repobilityId": "79e7598e008f998d", "scanner": "scanner-primary", "fingerprint": "625818bd02dec430", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5a657b5379e8a54", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/BilanOnlinePage.tsx:4"}, "properties": {"repobilityId": "7adf983dfb3a0263", "scanner": "scanner-primary", "fingerprint": "a5a657b5379e8a54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ce268fc8f11d33c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/FormationGlossaryPage.tsx:7"}, "properties": {"repobilityId": "7acbd029c79927dd", "scanner": "scanner-primary", "fingerprint": "1ce268fc8f11d33c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af94e9cabea85289", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/BienvenueDistriPage.tsx:3"}, "properties": {"repobilityId": "15f350beb22c014a", "scanner": "scanner-primary", "fingerprint": "af94e9cabea85289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e96ff60df444be1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/ConversationView.tsx:49"}, "properties": {"repobilityId": "903120e554e9c173", "scanner": "scanner-primary", "fingerprint": "3e96ff60df444be1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57932c491b16fe8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/TeamPage.tsx:239"}, "properties": {"repobilityId": "0fe3e708aedeb64e", "scanner": "scanner-primary", "fingerprint": "57932c491b16fe8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-219868751ab45923", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/DebugNotificationsPage.tsx:1"}, "properties": {"repobilityId": "375b01ecac58fa74", "scanner": "scanner-primary", "fingerprint": "219868751ab45923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1251f7b0d644e0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/RejoindreQuestionnairePage.tsx:5"}, "properties": {"repobilityId": "374f9687448f0a77", "scanner": "scanner-primary", "fingerprint": "c1251f7b0d644e0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88d5de668373f7da", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/pages/NewAssessmentPage.tsx:391"}, "properties": {"repobilityId": "a8ca11c42e1f3031", "scanner": "scanner-primary", "fingerprint": "88d5de668373f7da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88801a2ba2834252", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/ArborescenceHerbalifePage.tsx:8"}, "properties": {"repobilityId": "2cc0a7f08c17a7fa", "scanner": "scanner-primary", "fingerprint": "88801a2ba2834252", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9432402eee5088e4", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/WelcomePage.tsx:4"}, "properties": {"repobilityId": "a77083f4d1febaf0", "scanner": "scanner-primary", "fingerprint": "9432402eee5088e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4596579c75e638ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/BilanOnlineWelcomePage.tsx:1"}, "properties": {"repobilityId": "a1ff8420fe610c5e", "scanner": "scanner-primary", "fingerprint": "4596579c75e638ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44d18c7a86340b79", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/SimulateurEbePage.tsx:4"}, "properties": {"repobilityId": "4d2f20a1d5a2a0fb", "scanner": "scanner-primary", "fingerprint": "44d18c7a86340b79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20b4bfec610e0d75", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/ProspectionExpliquePage.tsx:4"}, "properties": {"repobilityId": "bd9d5393c91c5a1a", "scanner": "scanner-primary", "fingerprint": "20b4bfec610e0d75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5daa825e7af0528", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/BusinessPage.tsx:1"}, "properties": {"repobilityId": "daee643399e1fb3f", "scanner": "scanner-primary", "fingerprint": "f5daa825e7af0528", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-901229ee41a175cc", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/pages/DeveloppementHubPage.tsx:4"}, "properties": {"repobilityId": "ac315a57d627494e", "scanner": "scanner-primary", "fingerprint": "901229ee41a175cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9f63db30d8d5d0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/RejoindreOpportunitePage.tsx:5"}, "properties": {"repobilityId": "e832c6dc22757969", "scanner": "scanner-primary", "fingerprint": "b9f63db30d8d5d0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bac38553fdb610bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/BilanOnlineResultatsPage.tsx:7"}, "properties": {"repobilityId": "75ec5323f225126d", "scanner": "scanner-primary", "fingerprint": "bac38553fdb610bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-460d83d8b65f5379", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/BilanOnlineMerciPage.tsx:5"}, "properties": {"repobilityId": "cddc865193359355", "scanner": "scanner-primary", "fingerprint": "460d83d8b65f5379", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3e9170338bdf0d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/ResetPasswordPage.tsx:1"}, "properties": {"repobilityId": "0baebc2949b48e3b", "scanner": "scanner-primary", "fingerprint": "d3e9170338bdf0d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d17c2d10118ab99e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/FormationAdminPage.tsx:4"}, "properties": {"repobilityId": "f721f03153de535d", "scanner": "scanner-primary", "fingerprint": "d17c2d10118ab99e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a85b9ce660f6de15", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/VipClubPage.tsx:8"}, "properties": {"repobilityId": "d8d9625961300881", "scanner": "scanner-primary", "fingerprint": "a85b9ce660f6de15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f14099eda991bf6e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/AnalyticsPage.tsx:5"}, "properties": {"repobilityId": "6273530f0dd39029", "scanner": "scanner-primary", "fingerprint": "f14099eda991bf6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20c5762e3dfacdc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/AgendaPage.tsx:176"}, "properties": {"repobilityId": "d28ce9161ac40e9c", "scanner": "scanner-primary", "fingerprint": "20c5762e3dfacdc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4511cfcad5d96aed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/PublicNewsletterPage.tsx:690"}, "properties": {"repobilityId": "868ab28d86e31d85", "scanner": "scanner-primary", "fingerprint": "4511cfcad5d96aed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd0ed12ecd694518", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/PvOverviewPage.tsx:86"}, "properties": {"repobilityId": "cac8483406eea4dc", "scanner": "scanner-primary", "fingerprint": "cd0ed12ecd694518", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1ae223ffd3dcc69", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/CoachPublicProfilePage.tsx:1"}, "properties": {"repobilityId": "6e668345bfdd873f", "scanner": "scanner-primary", "fingerprint": "e1ae223ffd3dcc69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a85fb798f82eb775", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/academy-demo/DemoFicheClient.tsx:1"}, "properties": {"repobilityId": "2ea485088ca1381a", "scanner": "scanner-primary", "fingerprint": "a85fb798f82eb775", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11f0bd47ba52b6f8", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/hooks/useCrmLeads.ts:5"}, "properties": {"repobilityId": "b406e9f5180a7034", "scanner": "scanner-primary", "fingerprint": "11f0bd47ba52b6f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b81f75b736415bcf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/usePvBreakdowns.ts:47"}, "properties": {"repobilityId": "a89d11541f660daa", "scanner": "scanner-primary", "fingerprint": "b81f75b736415bcf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c11ffca1879e6c44", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useClientPriorityAction.ts:6"}, "properties": {"repobilityId": "4e520e7f8d13890e", "scanner": "scanner-primary", "fingerprint": "c11ffca1879e6c44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5342bc445c4a864e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useUserRentability.ts:8"}, "properties": {"repobilityId": "4d11b6e8438772c9", "scanner": "scanner-primary", "fingerprint": "5342bc445c4a864e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c171f8a31186c467", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useUserRentability.ts:146"}, "properties": {"repobilityId": "43243363bbe9f5c6", "scanner": "scanner-primary", "fingerprint": "c171f8a31186c467", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb1ba3b95dc08a30", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useRentabilityHistory.ts:1"}, "properties": {"repobilityId": "7f953300fe60b015", "scanner": "scanner-primary", "fingerprint": "cb1ba3b95dc08a30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-947fe681b38f0d5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useHaptic.ts:4"}, "properties": {"repobilityId": "a16f8fc5a4e035d8", "scanner": "scanner-primary", "fingerprint": "947fe681b38f0d5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-714a5a77423a974e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useRealtimeMessages.ts:8"}, "properties": {"repobilityId": "6c6a104ab304d399", "scanner": "scanner-primary", "fingerprint": "714a5a77423a974e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-051702845d4e2cce", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useTeamEngagement.ts:4"}, "properties": {"repobilityId": "76e62dc5290425dd", "scanner": "scanner-primary", "fingerprint": "051702845d4e2cce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38b1b852063f638e", "level": "note", "message": {"text": "Legacy-named symbol `reactivation_old` in src/hooks/useProspectionData.ts:169"}, "properties": {"repobilityId": "cdd40740112f9baa", "scanner": "scanner-primary", "fingerprint": "38b1b852063f638e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c5fd6a5f0fd12b35", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useDailyActionChecklist.ts:4"}, "properties": {"repobilityId": "399484ad057282e3", "scanner": "scanner-primary", "fingerprint": "c5fd6a5f0fd12b35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5b293c2095f0425", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useFormationProgress.ts:4"}, "properties": {"repobilityId": "8806e23528029240", "scanner": "scanner-primary", "fingerprint": "b5b293c2095f0425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78b20f87f518ee32", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useTeamData.ts:147"}, "properties": {"repobilityId": "96b65431c840a302", "scanner": "scanner-primary", "fingerprint": "78b20f87f518ee32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e8bd49ca79e5a74", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useCharter.ts:4"}, "properties": {"repobilityId": "72c96975b636fe3d", "scanner": "scanner-primary", "fingerprint": "4e8bd49ca79e5a74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bf8644c10df29f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useFormationStreak.ts:10"}, "properties": {"repobilityId": "39b32bf5b1d87c30", "scanner": "scanner-primary", "fingerprint": "7bf8644c10df29f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-947128a22cce65c9", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/hooks/usePvActionPlan.ts:5"}, "properties": {"repobilityId": "edd466963e16e39d", "scanner": "scanner-primary", "fingerprint": "947128a22cce65c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d981e6a0c71c3f8e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useClientConsent.ts:1"}, "properties": {"repobilityId": "eb8e80dc01eb2cb8", "scanner": "scanner-primary", "fingerprint": "d981e6a0c71c3f8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b16c42db0c490d25", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hooks/useManualPvEntries.ts:1"}, "properties": {"repobilityId": "ac3b5f6a31e61126", "scanner": "scanner-primary", "fingerprint": "b16c42db0c490d25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aeede4e79c207fba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useManualPvEntries.ts:51"}, "properties": {"repobilityId": "55bd5a433f1924c8", "scanner": "scanner-primary", "fingerprint": "aeede4e79c207fba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8d66ad401d306e3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDormantClients.ts:99"}, "properties": {"repobilityId": "04cc35408005cfb3", "scanner": "scanner-primary", "fingerprint": "d8d66ad401d306e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-307174331b9646c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useCrmBadge.ts:6"}, "properties": {"repobilityId": "46be1bad3a3d43db", "scanner": "scanner-primary", "fingerprint": "307174331b9646c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4641651ed16e7f22", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useRentabilitySummary.ts:4"}, "properties": {"repobilityId": "b76a63c375252bc6", "scanner": "scanner-primary", "fingerprint": "4641651ed16e7f22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-171774b9f187bc73", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/hooks/useClientLiveData.ts:1"}, "properties": {"repobilityId": "361db84eca69d971", "scanner": "scanner-primary", "fingerprint": "171774b9f187bc73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2ec13a7dae53fa3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useClientLiveData.ts:99"}, "properties": {"repobilityId": "b1e93bf3ba967b2f", "scanner": "scanner-primary", "fingerprint": "b2ec13a7dae53fa3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00e540ceca7aa853", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/hooks/useDistributorQualifications.ts:76"}, "properties": {"repobilityId": "b54d37e82965f42e", "scanner": "scanner-primary", "fingerprint": "00e540ceca7aa853", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6154124f48361b3", "level": "note", "message": {"text": "Legacy-named symbol `general_note_deprecated` in src/services/supabaseService.ts:115"}, "properties": {"repobilityId": "07985f1a718b2260", "scanner": "scanner-primary", "fingerprint": "b6154124f48361b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b488b5555c4a5702", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/supabaseService.ts:573"}, "properties": {"repobilityId": "1b1ade39c27a0c1d", "scanner": "scanner-primary", "fingerprint": "b488b5555c4a5702", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bd5f558a4ffd92e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/supabaseService.ts:1391"}, "properties": {"repobilityId": "5caa19964cdeb215", "scanner": "scanner-primary", "fingerprint": "2bd5f558a4ffd92e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce6a391e346be509", "level": "note", "message": {"text": "Legacy-named symbol `hs256_legacy` in src/services/supabaseClient.ts:11"}, "properties": {"repobilityId": "411704440170f2f3", "scanner": "scanner-primary", "fingerprint": "ce6a391e346be509", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d8df807d124eb71", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/appDataService.ts:4"}, "properties": {"repobilityId": "ce33c393ab95534e", "scanner": "scanner-primary", "fingerprint": "4d8df807d124eb71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90016d98f8f508e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/sb/prospects.ts:141"}, "properties": {"repobilityId": "cb4eb8122c4d2243", "scanner": "scanner-primary", "fingerprint": "90016d98f8f508e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ba8b66b4306bd23", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/context/AppContext.tsx:310"}, "properties": {"repobilityId": "8f7054f8c1f2b1b3", "scanner": "scanner-primary", "fingerprint": "9ba8b66b4306bd23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed8703c74dbdd348", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/measurements/ClientMeasurementsSection.tsx:1"}, "properties": {"repobilityId": "306c74455e1d926d", "scanner": "scanner-primary", "fingerprint": "ed8703c74dbdd348", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83d41f495534d048", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/measurements/SilhouetteSvg.tsx:1"}, "properties": {"repobilityId": "59200d577bd4938f", "scanner": "scanner-primary", "fingerprint": "83d41f495534d048", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-857862450fdc9fc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/academy/sections.ts:154"}, "properties": {"repobilityId": "fd6d400fd58d313a", "scanner": "scanner-primary", "fingerprint": "857862450fdc9fc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd989d24a75729a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/academy/ActiveQuizContext.tsx:1"}, "properties": {"repobilityId": "0be35b330ba32bb9", "scanner": "scanner-primary", "fingerprint": "dd989d24a75729a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83dbae86767e2ee1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/academy/utils/getDemoClientId.ts:1"}, "properties": {"repobilityId": "4d164604aa98ce58", "scanner": "scanner-primary", "fingerprint": "83dbae86767e2ee1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f516e38869215b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/academy/components/QuizModal.tsx:1"}, "properties": {"repobilityId": "5c77c51d7624881a", "scanner": "scanner-primary", "fingerprint": "9f516e38869215b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb36b9c40ec9dc11", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/features/academy/hooks/useAcademyAutoTrigger.ts:5"}, "properties": {"repobilityId": "ae97674a75ca1bae", "scanner": "scanner-primary", "fingerprint": "bb36b9c40ec9dc11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ebea3b7f62e104d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/academy/hooks/useAcademyProgress.ts:1"}, "properties": {"repobilityId": "15c92f2628a96a48", "scanner": "scanner-primary", "fingerprint": "3ebea3b7f62e104d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44df859f9d198956", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/client-vip/VipProgramHelpModal.tsx:5"}, "properties": {"repobilityId": "ef1e822568537f69", "scanner": "scanner-primary", "fingerprint": "44df859f9d198956", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83f0f7f3617ccaf8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/client-vip/ClientVipCoachPanel.tsx:5"}, "properties": {"repobilityId": "1c6d40c37375399c", "scanner": "scanner-primary", "fingerprint": "83f0f7f3617ccaf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-196d29df79797976", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/client-vip/ClientVipBadge.tsx:5"}, "properties": {"repobilityId": "70f1b1ca848ea950", "scanner": "scanner-primary", "fingerprint": "196d29df79797976", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a8a3fc5f2c7c67a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/features/client-vip/ClientVipExplainModal.tsx:5"}, "properties": {"repobilityId": "62828e755ac9ff11", "scanner": "scanner-primary", "fingerprint": "1a8a3fc5f2c7c67a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e8d64fee28556ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/client-vip/ClientVipSandbox.tsx:10"}, "properties": {"repobilityId": "9286d41131a590fa", "scanner": "scanner-primary", "fingerprint": "3e8d64fee28556ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b117d01b822d3d3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/client-xp/actions.ts:8"}, "properties": {"repobilityId": "026b79e9235aeab2", "scanner": "scanner-primary", "fingerprint": "b117d01b822d3d3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b52790ece107c1d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/client-xp/useClientXp.ts:5"}, "properties": {"repobilityId": "427cc80e671d84bb", "scanner": "scanner-primary", "fingerprint": "8b52790ece107c1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71a1cfbf91a03af3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/CoPiloteV5Page.tsx:7"}, "properties": {"repobilityId": "bb26eaf0d02934e7", "scanner": "scanner-primary", "fingerprint": "71a1cfbf91a03af3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05ce9bd55d2d9aed", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/StatsRow3.tsx:97"}, "properties": {"repobilityId": "26ab464b1cfdd864", "scanner": "scanner-primary", "fingerprint": "05ce9bd55d2d9aed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-373afe1a035baff6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/DailyBoost.tsx:8"}, "properties": {"repobilityId": "58284202a71b1b57", "scanner": "scanner-primary", "fingerprint": "373afe1a035baff6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e6981b445b1425c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/WeatherPopup.tsx:4"}, "properties": {"repobilityId": "c46fbbc94dd21f06", "scanner": "scanner-primary", "fingerprint": "7e6981b445b1425c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bca0955ae8ba350", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/HeroEditorial.tsx:16"}, "properties": {"repobilityId": "8aab8c55a555ca95", "scanner": "scanner-primary", "fingerprint": "8bca0955ae8ba350", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-736967b5e9b30959", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/copilote/v5/components/SideStack.tsx:9"}, "properties": {"repobilityId": "9c04e2027a94fa79", "scanner": "scanner-primary", "fingerprint": "736967b5e9b30959", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-528dc81978acd5aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/AvatarWithRing.tsx:7"}, "properties": {"repobilityId": "cefeb3f728060df5", "scanner": "scanner-primary", "fingerprint": "528dc81978acd5aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90969d6fe594a6f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/PlanDuJour.tsx:4"}, "properties": {"repobilityId": "362d996ac5ef616c", "scanner": "scanner-primary", "fingerprint": "90969d6fe594a6f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d2d5c56aeda7954", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/components/TodayTimeline.tsx:4"}, "properties": {"repobilityId": "d67b0f09f72cd046", "scanner": "scanner-primary", "fingerprint": "0d2d5c56aeda7954", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a9c4111753d19a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/copilote/v5/components/PinAWTCinematic.tsx:1"}, "properties": {"repobilityId": "7238df95d7b337f4", "scanner": "scanner-primary", "fingerprint": "9a9c4111753d19a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c8d9912d5d792ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useNextAction.ts:9"}, "properties": {"repobilityId": "849e367d1c2ba1d4", "scanner": "scanner-primary", "fingerprint": "6c8d9912d5d792ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d9a9d45a0e95b9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/copilote/v5/hooks/useWeatherForecast.ts:4"}, "properties": {"repobilityId": "8cd4092a88f4016d", "scanner": "scanner-primary", "fingerprint": "0d9a9d45a0e95b9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5278f04f0fe853ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/copilote/v5/hooks/useWeatherForecast.ts:103"}, "properties": {"repobilityId": "356bc263e82cd53d", "scanner": "scanner-primary", "fingerprint": "5278f04f0fe853ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7049d5dc11bd991f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/onboarding/TourRunner.tsx:5"}, "properties": {"repobilityId": "7bb9a9df6591f07b", "scanner": "scanner-primary", "fingerprint": "7049d5dc11bd991f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3b26d813fd4fdd6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/onboarding/ActiveTourContext.tsx:1"}, "properties": {"repobilityId": "d8a37cd992530dee", "scanner": "scanner-primary", "fingerprint": "a3b26d813fd4fdd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8535aef7d5d170d2", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/features/onboarding/OnboardingTutorial.tsx:5"}, "properties": {"repobilityId": "cc66dc10c14bdcb0", "scanner": "scanner-primary", "fingerprint": "8535aef7d5d170d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a884a4f310958837", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/onboarding/utils/substituteTemplate.ts:1"}, "properties": {"repobilityId": "c7ad0907ea0cb14c", "scanner": "scanner-primary", "fingerprint": "a884a4f310958837", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eea298ee576887f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/onboarding/components/TutorialTooltip.tsx:365"}, "properties": {"repobilityId": "b3a727d9601854f2", "scanner": "scanner-primary", "fingerprint": "eea298ee576887f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ea98cde47f47bd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/onboarding/hooks/useTourProgress.ts:144"}, "properties": {"repobilityId": "5e0fc88cc18a22dc", "scanner": "scanner-primary", "fingerprint": "9ea98cde47f47bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b216064c3928ecb7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/gamification/components/WeeklyRecapCard.tsx:1"}, "properties": {"repobilityId": "6ea0aaa2f3058efa", "scanner": "scanner-primary", "fingerprint": "b216064c3928ecb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee2cf5fa9d0d58ba", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/features/gamification/hooks/useStreak.ts:1"}, "properties": {"repobilityId": "3fe5ee9c0f0995c8", "scanner": "scanner-primary", "fingerprint": "ee2cf5fa9d0d58ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3dc8fa23ef4e2e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/gamification/hooks/useSessionTracker.ts:10"}, "properties": {"repobilityId": "96e38de1a656e85c", "scanner": "scanner-primary", "fingerprint": "c3dc8fa23ef4e2e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b5a76780c3df9aa", "level": "none", "message": {"text": "1 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d04379b337b44a15", "scanner": "scanner-primary", "fingerprint": "1b5a76780c3df9aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-531147160e6236ae", "level": "warning", "message": {"text": "Frontend route `/bilan-online` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "511ffd5469302a3f", "scanner": "scanner-primary", "fingerprint": "531147160e6236ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-59c6a41c38adb4c9", "level": "warning", "message": {"text": "Frontend route `/bilan-online/resultats` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f39913b5bffe124a", "scanner": "scanner-primary", "fingerprint": "59c6a41c38adb4c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c2c1f42abd975154", "level": "warning", "message": {"text": "Frontend route `/bilan-online/merci` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d7894572e6ec736a", "scanner": "scanner-primary", "fingerprint": "c2c1f42abd975154", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-de41ce3d3e6ef71f", "level": "warning", "message": {"text": "Frontend route `/bilan-online/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ef1255a426009188", "scanner": "scanner-primary", "fingerprint": "de41ce3d3e6ef71f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3bde50aa475185ea", "level": "warning", "message": {"text": "Frontend route `/bilan-online/:coachSlug/formulaire` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "961798fd371ae09b", "scanner": "scanner-primary", "fingerprint": "3bde50aa475185ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e4e9993687365a07", "level": "warning", "message": {"text": "Frontend route `/bilan-online/:coachSlug/resultats` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "8f47d7aea106ca58", "scanner": "scanner-primary", "fingerprint": "e4e9993687365a07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6adf683117e4cbb7", "level": "warning", "message": {"text": "Frontend route `/bilan-online/:coachSlug/merci` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "2163370c89fbd495", "scanner": "scanner-primary", "fingerprint": "6adf683117e4cbb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b987243e305ca92a", "level": "warning", "message": {"text": "Frontend route `/resultat-bilan/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "575bab5b6560c900", "scanner": "scanner-primary", "fingerprint": "b987243e305ca92a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e43cf6b6e32fe3f8", "level": "warning", "message": {"text": "Frontend route `/rdv` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "083779250cfdcda9", "scanner": "scanner-primary", "fingerprint": "e43cf6b6e32fe3f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a780788776dc16c4", "level": "warning", "message": {"text": "Frontend route `/rdv/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f091a5991910241b", "scanner": "scanner-primary", "fingerprint": "a780788776dc16c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7dd4be3847112dac", "level": "warning", "message": {"text": "Frontend route `/news/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "418e7fa5bf22e51f", "scanner": "scanner-primary", "fingerprint": "7dd4be3847112dac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f95469175fca87d7", "level": "warning", "message": {"text": "Frontend route `/business` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "eb2371eb7dd8dcbc", "scanner": "scanner-primary", "fingerprint": "f95469175fca87d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a21aa310c105f975", "level": "warning", "message": {"text": "Frontend route `/coach/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "4aef227d5c6f9525", "scanner": "scanner-primary", "fingerprint": "a21aa310c105f975", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ce10e5e928200a0d", "level": "warning", "message": {"text": "Frontend route `/vip/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "cf2c4a74eb9ee583", "scanner": "scanner-primary", "fingerprint": "ce10e5e928200a0d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b65b0b8ed54d3376", "level": "warning", "message": {"text": "Frontend route `/rejoindre/:coachSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "46e27bf52acba553", "scanner": "scanner-primary", "fingerprint": "b65b0b8ed54d3376", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-868ec63484418dbd", "level": "warning", "message": {"text": "Frontend route `/rejoindre/:coachSlug/questionnaire` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "b3bf60ebdc2e73ee", "scanner": "scanner-primary", "fingerprint": "868ec63484418dbd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-70c1856aeef11c6c", "level": "warning", "message": {"text": "Frontend route `/rejoindre/questionnaire` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e1c7433c46c7e8ee", "scanner": "scanner-primary", "fingerprint": "70c1856aeef11c6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-903d3d6a848001ee", "level": "warning", "message": {"text": "Frontend route `/auto-login` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "a8d20f4e1d4f659a", "scanner": "scanner-primary", "fingerprint": "903d3d6a848001ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7f1bec1fd65c0879", "level": "warning", "message": {"text": "Frontend route `/reset-password` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "934747c714145754", "scanner": "scanner-primary", "fingerprint": "7f1bec1fd65c0879", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-30176f7a0d314123", "level": "warning", "message": {"text": "Frontend route `/partage/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "00a010eb973cdbbf", "scanner": "scanner-primary", "fingerprint": "30176f7a0d314123", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-62b1e1fa5ac942c1", "level": "warning", "message": {"text": "Frontend route `co-pilote` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "4aa9c2ca10bd2bcb", "scanner": "scanner-primary", "fingerprint": "62b1e1fa5ac942c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cef386312d50c26d", "level": "warning", "message": {"text": "Frontend route `dashboard` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "7176b9e63e301c9b", "scanner": "scanner-primary", "fingerprint": "cef386312d50c26d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9ab1ecd9228623c1", "level": "warning", "message": {"text": "Frontend route `flex` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d63f96f440772860", "scanner": "scanner-primary", "fingerprint": "9ab1ecd9228623c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-caa4036c394482a4", "level": "warning", "message": {"text": "Frontend route `flex/onboarding` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ee0fb77ad6a71cf3", "scanner": "scanner-primary", "fingerprint": "caa4036c394482a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f92e682663491792", "level": "warning", "message": {"text": "Frontend route `flex/equipe` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "a01e3e9e789fd736", "scanner": "scanner-primary", "fingerprint": "f92e682663491792", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8399a4b1d46bfc88", "level": "warning", "message": {"text": "Frontend route `charte` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c97372b824993cd1", "scanner": "scanner-primary", "fingerprint": "8399a4b1d46bfc88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5f1c30dcab066cf6", "level": "warning", "message": {"text": "Frontend route `distributors/:id/charte` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3f5f0fcdcb419871", "scanner": "scanner-primary", "fingerprint": "5f1c30dcab066cf6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-56a055f905cb3847", "level": "warning", "message": {"text": "Frontend route `formation/charte` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f0b1fb87d39e389b", "scanner": "scanner-primary", "fingerprint": "56a055f905cb3847", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8550554d04a1b895", "level": "warning", "message": {"text": "Frontend route `admin/charter-thumbs` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d1d7660092e7854a", "scanner": "scanner-primary", "fingerprint": "8550554d04a1b895", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a32a2a8bced9c12f", "level": "warning", "message": {"text": "Frontend route `cahier-de-bord` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "fb674d1a0b9e954b", "scanner": "scanner-primary", "fingerprint": "a32a2a8bced9c12f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-787164c11c187867", "level": "warning", "message": {"text": "Frontend route `simulateur-ebe` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5bfaa1973a652a33", "scanner": "scanner-primary", "fingerprint": "787164c11c187867", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a085b7c1787ff23c", "level": "warning", "message": {"text": "Frontend route `developpement` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "fcc2853ecf47f692", "scanner": "scanner-primary", "fingerprint": "a085b7c1787ff23c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d8108648e8584c17", "level": "warning", "message": {"text": "Frontend route `developpement/flex-explique` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "8b7afed4da7852d3", "scanner": "scanner-primary", "fingerprint": "d8108648e8584c17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5f2b8fc1c50b450b", "level": "warning", "message": {"text": "Frontend route `developpement/prospection-explique` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1e9caae85cf35ebb", "scanner": "scanner-primary", "fingerprint": "5f2b8fc1c50b450b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-447440cfed72a968", "level": "warning", "message": {"text": "Frontend route `developpement/check-list-explique` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "26be54145835fc2e", "scanner": "scanner-primary", "fingerprint": "447440cfed72a968", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c1f275c3abf53824", "level": "warning", "message": {"text": "Frontend route `developpement/club-vip-explique` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "b491306462fb8df9", "scanner": "scanner-primary", "fingerprint": "c1f275c3abf53824", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e4376109c7e89fcd", "level": "warning", "message": {"text": "Frontend route `routine-du-jour` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "bf1dd73e40536d08", "scanner": "scanner-primary", "fingerprint": "e4376109c7e89fcd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5db2aecd04558f50", "level": "warning", "message": {"text": "Frontend route `suivis-du-jour` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5caaed39e4b7f651", "scanner": "scanner-primary", "fingerprint": "5db2aecd04558f50", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c1e208162fb59c5a", "level": "warning", "message": {"text": "Frontend route `travaux` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1ae8d128bb86f7a8", "scanner": "scanner-primary", "fingerprint": "c1e208162fb59c5a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-18342acfdc0e7818", "level": "warning", "message": {"text": "Frontend route `developpement/nouveautes` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3779d4df7f506b84", "scanner": "scanner-primary", "fingerprint": "18342acfdc0e7818", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b4691e4417df68fd", "level": "warning", "message": {"text": "Frontend route `outils-prospection` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3d83d28c0a6aa564", "scanner": "scanner-primary", "fingerprint": "b4691e4417df68fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-eb7e437ebf9bf84a", "level": "warning", "message": {"text": "Frontend route `outils-prospection/bilan-online` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c452871cdb8bdaee", "scanner": "scanner-primary", "fingerprint": "eb7e437ebf9bf84a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b633a062d2dfb701", "level": "warning", "message": {"text": "Frontend route `outils-prospection/liens` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e2599ce3c084117d", "scanner": "scanner-primary", "fingerprint": "b633a062d2dfb701", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-dbd9c4231177896e", "level": "warning", "message": {"text": "Frontend route `outils-prospection/international` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1918c50d3a01063f", "scanner": "scanner-primary", "fingerprint": "dbd9c4231177896e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5b1ccafb49588a2d", "level": "warning", "message": {"text": "Frontend route `prospection` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "22db7428b13a31cb", "scanner": "scanner-primary", "fingerprint": "5b1ccafb49588a2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d75c0dd3559f42f4", "level": "warning", "message": {"text": "Frontend route `admin/prospection` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1f8133b1d65aa300", "scanner": "scanner-primary", "fingerprint": "d75c0dd3559f42f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fafeffec890c21dd", "level": "warning", "message": {"text": "Frontend route `rentabilite` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "dd1c79d05ceaf6ed", "scanner": "scanner-primary", "fingerprint": "fafeffec890c21dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3bf11a6166f5baa1", "level": "warning", "message": {"text": "Frontend route `academy` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1c45ff805ccd591c", "scanner": "scanner-primary", "fingerprint": "3bf11a6166f5baa1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0641fdacff53995b", "level": "warning", "message": {"text": "Frontend route `academy/certificat` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "50d2fc18c342ef56", "scanner": "scanner-primary", "fingerprint": "0641fdacff53995b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4a31ce812027443f", "level": "warning", "message": {"text": "Frontend route `academy/playbook` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "7683b3c91f615b0a", "scanner": "scanner-primary", "fingerprint": "4a31ce812027443f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d58d7a0bdaca0368", "level": "warning", "message": {"text": "Frontend route `academy/sandbox` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "796b23c981376db0", "scanner": "scanner-primary", "fingerprint": "d58d7a0bdaca0368", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e96c68c1999c6663", "level": "warning", "message": {"text": "Frontend route `academy/:sectionId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d11b7d61886829e9", "scanner": "scanner-primary", "fingerprint": "e96c68c1999c6663", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7ef5e2040b42a46d", "level": "warning", "message": {"text": "Frontend route `academy/demo/fiche-client` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1265b4e77d0a2351", "scanner": "scanner-primary", "fingerprint": "7ef5e2040b42a46d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-78d0b4f92f087a21", "level": "warning", "message": {"text": "Frontend route `academy/demo/agenda` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3130f5df7fd51072", "scanner": "scanner-primary", "fingerprint": "78d0b4f92f087a21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a8212e6c16666241", "level": "warning", "message": {"text": "Frontend route `formation` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "2c4a273135edd04e", "scanner": "scanner-primary", "fingerprint": "a8212e6c16666241", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-847a7320aea9121c", "level": "warning", "message": {"text": "Frontend route `formation/mon-equipe` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "18f78a8685381c8f", "scanner": "scanner-primary", "fingerprint": "847a7320aea9121c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0ec6b0044ad6cdb7", "level": "warning", "message": {"text": "Frontend route `formation/admin` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e5b3eeff5f965ce9", "scanner": "scanner-primary", "fingerprint": "0ec6b0044ad6cdb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-203582deffca2e17", "level": "warning", "message": {"text": "Frontend route `formation/certificat` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "0da91fef2b95bf58", "scanner": "scanner-primary", "fingerprint": "203582deffca2e17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0891532b88e6fa4c", "level": "warning", "message": {"text": "Frontend route `formation/calculateur` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "bc1d35c033d2539a", "scanner": "scanner-primary", "fingerprint": "0891532b88e6fa4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a294e57c1e16bcd1", "level": "warning", "message": {"text": "Frontend route `formation/glossaire` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "bf5c6e9ed283a834", "scanner": "scanner-primary", "fingerprint": "a294e57c1e16bcd1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-153d263755c55c3a", "level": "warning", "message": {"text": "Frontend route `formation/boite-a-outils` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c20da1822a579037", "scanner": "scanner-primary", "fingerprint": "153d263755c55c3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d69e067fb5f4e4c9", "level": "warning", "message": {"text": "Frontend route `formation/boite-a-outils/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "247fdfa72a2e4918", "scanner": "scanner-primary", "fingerprint": "d69e067fb5f4e4c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-883e1205244cccef", "level": "warning", "message": {"text": "Frontend route `formation/reconnaissance` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "83aa2eb5a0af7870", "scanner": "scanner-primary", "fingerprint": "883e1205244cccef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-70d1abddb6a1aa75", "level": "warning", "message": {"text": "Frontend route `formation/parcours/:levelSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "32003cdda5f5ec28", "scanner": "scanner-primary", "fingerprint": "70d1abddb6a1aa75", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b2df0668840afa98", "level": "warning", "message": {"text": "Frontend route `formation/parcours/:levelSlug/:moduleSlug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "951c873eac98dce2", "scanner": "scanner-primary", "fingerprint": "b2df0668840afa98", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0626b4c2e4efcb82", "level": "warning", "message": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "9badda3b3a471962", "scanner": "scanner-primary", "fingerprint": "0626b4c2e4efcb82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3915b0fcfd0aca54", "level": "warning", "message": {"text": "Frontend route `guide` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f0baa4560a7736df", "scanner": "scanner-primary", "fingerprint": "3915b0fcfd0aca54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5c3ffe8061f27d68", "level": "warning", "message": {"text": "Frontend route `guide-suivi` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "4359fbd64cef4c4f", "scanner": "scanner-primary", "fingerprint": "5c3ffe8061f27d68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-47efaf44f7e611c5", "level": "warning", "message": {"text": "Frontend route `pv` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "7a13f58d0e22ca50", "scanner": "scanner-primary", "fingerprint": "47efaf44f7e611c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-24c66f6edd13a449", "level": "warning", "message": {"text": "Frontend route `messages` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f986c9175ccda8f3", "scanner": "scanner-primary", "fingerprint": "24c66f6edd13a449", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a508b7da9a8a58be", "level": "warning", "message": {"text": "Frontend route `messagerie/conversation/:messageId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3babcb2ae192c92a", "scanner": "scanner-primary", "fingerprint": "a508b7da9a8a58be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bd09324e4eea275b", "level": "warning", "message": {"text": "Frontend route `agenda` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "0de523604a3645c7", "scanner": "scanner-primary", "fingerprint": "bd09324e4eea275b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b113530310976905", "level": "warning", "message": {"text": "Frontend route `clients` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "6c9162acfa5ee47e", "scanner": "scanner-primary", "fingerprint": "b113530310976905", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-140963512b795f3e", "level": "warning", "message": {"text": "Frontend route `crm` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e94a89315fc97329", "scanner": "scanner-primary", "fingerprint": "140963512b795f3e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-704726d7579ec77a", "level": "warning", "message": {"text": "Frontend route `outils` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "22b752ed69e9a2ef", "scanner": "scanner-primary", "fingerprint": "704726d7579ec77a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1042cdece2bc5221", "level": "warning", "message": {"text": "Frontend route `encaissement` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ad908d1ab333bea0", "scanner": "scanner-primary", "fingerprint": "1042cdece2bc5221", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-dc4afdfc33ff6453", "level": "warning", "message": {"text": "Frontend route `mes-liens` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "834c763ec19b6e32", "scanner": "scanner-primary", "fingerprint": "dc4afdfc33ff6453", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6817da8bc22f01f1", "level": "warning", "message": {"text": "Frontend route `panier` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c490db4335399798", "scanner": "scanner-primary", "fingerprint": "6817da8bc22f01f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fea04209d8ae8555", "level": "warning", "message": {"text": "Frontend route `users` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "77ef62fee89e9f10", "scanner": "scanner-primary", "fingerprint": "fea04209d8ae8555", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4c7d270cd56e31f7", "level": "warning", "message": {"text": "Frontend route `admin/testimonials` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "97d19f28d4aebd95", "scanner": "scanner-primary", "fingerprint": "4c7d270cd56e31f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f4f12518ece86faf", "level": "warning", "message": {"text": "Frontend route `admin/newsletters` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "fcea2e2a1ec09ca5", "scanner": "scanner-primary", "fingerprint": "f4f12518ece86faf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6234249efc0ff446", "level": "warning", "message": {"text": "Frontend route `admin/newsletters/:id/edit` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c929d7b27c52777e", "scanner": "scanner-primary", "fingerprint": "6234249efc0ff446", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8d1aceb803d4d55c", "level": "warning", "message": {"text": "Frontend route `admin/newsletters/:id/stats` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "6b2d408bea231716", "scanner": "scanner-primary", "fingerprint": "8d1aceb803d4d55c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-130f20804b3b07fb", "level": "warning", "message": {"text": "Frontend route `team` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "52c423083ee907e8", "scanner": "scanner-primary", "fingerprint": "130f20804b3b07fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fc581fba234ac95e", "level": "warning", "message": {"text": "Frontend route `pv/team` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "68e2280297c4bc95", "scanner": "scanner-primary", "fingerprint": "fc581fba234ac95e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ddc1f0e866f6323f", "level": "warning", "message": {"text": "Frontend route `analytics` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5dd95ee593452334", "scanner": "scanner-primary", "fingerprint": "ddc1f0e866f6323f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-199edb63b241122d", "level": "warning", "message": {"text": "Frontend route `debug/notifications` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "b6ea1c78b87f3aae", "scanner": "scanner-primary", "fingerprint": "199edb63b241122d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-dfcc0477553bf4f0", "level": "warning", "message": {"text": "Frontend route `parametres` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "05d6548ecc1bf9c8", "scanner": "scanner-primary", "fingerprint": "dfcc0477553bf4f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1868792fdf3b3388", "level": "warning", "message": {"text": "Frontend route `parametres/arborescence-herbalife` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ff1e45b39880434a", "scanner": "scanner-primary", "fingerprint": "1868792fdf3b3388", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-de6e9141f259ab97", "level": "warning", "message": {"text": "Frontend route `distributors/:distributorId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "87f397a364a1d666", "scanner": "scanner-primary", "fingerprint": "de6e9141f259ab97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-490c1b91b12c7991", "level": "warning", "message": {"text": "Frontend route `clients/:clientId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "310d5fa129968fda", "scanner": "scanner-primary", "fingerprint": "490c1b91b12c7991", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-55a9ad8453f79afd", "level": "warning", "message": {"text": "Frontend route `clients/:clientId/start-assessment/edit` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d79293ab04a2e9a3", "scanner": "scanner-primary", "fingerprint": "55a9ad8453f79afd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8b7805f286dc101b", "level": "warning", "message": {"text": "Frontend route `clients/:clientId/assessments/:assessmentId/edit` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c5eb98880e250840", "scanner": "scanner-primary", "fingerprint": "8b7805f286dc101b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0983bbc89e7a7ae1", "level": "warning", "message": {"text": "Frontend route `clients/:clientId/follow-up/new` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "6cb8dbea3e9b3c01", "scanner": "scanner-primary", "fingerprint": "0983bbc89e7a7ae1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ebb4f04c7df9f0ca", "level": "warning", "message": {"text": "Frontend route `clients/:clientId/schedule/edit` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ddd74c84b00a1d01", "scanner": "scanner-primary", "fingerprint": "ebb4f04c7df9f0ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f0dbe0cbd0210891", "level": "warning", "message": {"text": "Frontend route `clients/:clientId/bilan-termine` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "041b8cae57213ce4", "scanner": "scanner-primary", "fingerprint": "f0dbe0cbd0210891", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c9f9515c70036bb4", "level": "warning", "message": {"text": "Frontend route `assessments/new` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d242ba7a5afecb04", "scanner": "scanner-primary", "fingerprint": "c9f9515c70036bb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f8cb126becc841e0", "level": "warning", "message": {"text": "Frontend route `/temoignage/coach/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "35a609098fb84ee6", "scanner": "scanner-primary", "fingerprint": "f8cb126becc841e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-53b1991691a9271e", "level": "warning", "message": {"text": "Frontend route `/temoignage/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "2935e2e2ed2b6311", "scanner": "scanner-primary", "fingerprint": "53b1991691a9271e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-04b4353475098c1b", "level": "warning", "message": {"text": "Frontend route `/recap/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "40b60975b77dfe78", "scanner": "scanner-primary", "fingerprint": "04b4353475098c1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-713f414d9690745c", "level": "warning", "message": {"text": "Frontend route `/rapport/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c57f5bc7d8cb65f5", "scanner": "scanner-primary", "fingerprint": "713f414d9690745c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a01d1708ff6d5073", "level": "warning", "message": {"text": "Frontend route `/client/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "aa101446a8f44e5a", "scanner": "scanner-primary", "fingerprint": "a01d1708ff6d5073", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-361c7e562528cdde", "level": "warning", "message": {"text": "Frontend route `/client/:token/sandbox` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "15f6539bbadfee82", "scanner": "scanner-primary", "fingerprint": "361c7e562528cdde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2da7c7f99ba6f021", "level": "warning", "message": {"text": "Frontend route `/bienvenue` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e409b6c5f3982427", "scanner": "scanner-primary", "fingerprint": "2da7c7f99ba6f021", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-360891676605fbf7", "level": "warning", "message": {"text": "Frontend route `/bienvenue-distri` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "de79fd1bc6faf9fd", "scanner": "scanner-primary", "fingerprint": "360891676605fbf7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}]}]}