{"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-cda3e2d683ce3a73", "name": "Possibly dead Python function: semantic_splitter", "shortDescription": {"text": "Possibly dead Python function: semantic_splitter"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a699c6c0ab251d69", "name": "Possibly dead Python function: build_evaluators", "shortDescription": {"text": "Possibly dead Python function: build_evaluators"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf91b39612d7f65c", "name": "Possibly dead Python function: load_model", "shortDescription": {"text": "Possibly dead Python function: load_model"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9bdef17df22d223", "name": "Possibly dead Python function: a_generate", "shortDescription": {"text": "Possibly dead Python function: a_generate"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac44ff1e55017b4d", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4dbf6127f9a63a28", "name": "Possibly dead Python function: generate_mnemonic", "shortDescription": {"text": "Possibly dead Python function: generate_mnemonic"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7e2ac12cb0af00b", "name": "Possibly dead Python function: mnemonic_hook", "shortDescription": {"text": "Possibly dead Python function: mnemonic_hook"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51ecfcd8e0792a38", "name": "Possibly dead Python function: export_all", "shortDescription": {"text": "Possibly dead Python function: export_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-572f681741363e1c", "name": "Possibly dead Python function: elaborative_prompt", "shortDescription": {"text": "Possibly dead Python function: elaborative_prompt"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89863b3e58715364", "name": "Possibly dead Python function: public_url", "shortDescription": {"text": "Possibly dead Python function: public_url"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50c080edeb4c90f8", "name": "Possibly dead Python function: put_bytes", "shortDescription": {"text": "Possibly dead Python function: put_bytes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30934ee8a96c1944", "name": "Possibly dead Python function: wav_to_mp3", "shortDescription": {"text": "Possibly dead Python function: wav_to_mp3"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a9116225c4f2b43f", "name": "Possibly dead Python function: progress", "shortDescription": {"text": "Possibly dead Python function: progress"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-629f3d65691922b2", "name": "Stray `console.log` in TS/JS \u2014 scripts/gen-purge-roadmap-decks.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-purge-roadmap-decks.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d66aa58b3e54a3cd", "name": "Stray `console.log` in TS/JS \u2014 scripts/gen-lesson-memorize.ts:484", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-lesson-memorize.ts:484"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d56a7901553aae3", "name": "Stray `console.log` in TS/JS \u2014 scripts/scrape-udemy-courses.ts:698", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-udemy-courses.ts:698"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d61cde0208a6bd46", "name": "Stray `console.log` in TS/JS \u2014 scripts/email-status.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/email-status.ts:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85c861dc61f3adb4", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-concepts.ts:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-concepts.ts:177"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fbc1695894bc2ab4", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed.ts:87"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7f09fd438e07249", "name": "Stray `console.log` in TS/JS \u2014 scripts/scrape-deeplearning-course.ts:208", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-deeplearning-course.ts:208"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61af89e88107c848", "name": "Stray `console.log` in TS/JS \u2014 scripts/gen-agentic-sales-memorize.ts:473", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-agentic-sales-memorize.ts:473"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d23ebeb8b4e5dbba", "name": "Stray `console.log` in TS/JS \u2014 scripts/apply-d1-ddl.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-d1-ddl.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b0e1e1f0bb196467", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-ampcus-cards.ts:2273", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-ampcus-cards.ts:2273"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97ef23546a94c528", "name": "Stray `console.log` in TS/JS \u2014 scripts/eval-scheduler.ts:367", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-scheduler.ts:367"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d960238f55910626", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-app-prep-seed.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-app-prep-seed.ts:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-474eacd0e8d87474", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-invite.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-invite.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8526a8804a584e5a", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-send-email.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-send-email.ts:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-021a112e7d6965ff", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-css-concepts.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-css-concepts.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8359c1e26e65c09", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-sql.ts:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-sql.ts:161"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-266bc6aab0314262", "name": "Stray `console.log` in TS/JS \u2014 scripts/gen-roadmap-meta.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-roadmap-meta.ts:47"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7464799ce0ff24b", "name": "Stray `console.log` in TS/JS \u2014 scripts/send-andrew-ng.ts:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-andrew-ng.ts:72"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94fe137ed399c24d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide-tabs.tsx:41", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide-tabs.tsx:41"}, "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-ff632f2055b6aecb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/auth-status-badge.tsx:26", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/auth-status-badge.tsx:26"}, "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-77adf3e0ab0a1fea", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/agentic-sales-guide-nav.tsx:98", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/agentic-sales-guide-nav.tsx:98"}, "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-a4cbcb7733e2b13e", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 components/xyflow-direct/index.tsx:54", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 components/xyflow-direct/index.tsx:54"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bf65eef4f0e6675", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide/GuideTextPage.tsx:30", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide/GuideTextPage.tsx:30"}, "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-3b98ed59e270f8ec", "name": "Stray `console.log` in TS/JS \u2014 app/api/audio/[...path]/route.ts:195", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/audio/[...path]/route.ts:195"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1880de3f605a0209", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/glossary/page.tsx:30", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/glossary/page.tsx:30"}, "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-ad7f7b41f5b7a1d2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/page.tsx:105", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/page.tsx:105"}, "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-2bda869515d6ed27", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/[slug]/page.tsx:156", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/[slug]/page.tsx:156"}, "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-a3c833c741253699", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/page.tsx:42", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/page.tsx:42"}, "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-9ba6723571719846", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/audio/page.tsx:51", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/audio/page.tsx:51"}, "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-e877481cd34bef15", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/text/page.tsx:39", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/text/page.tsx:39"}, "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-45ddbebedb4f4bb2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/audio/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/audio/page.tsx:40"}, "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-01f60b72a32a0fca", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/star/page.tsx:42", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/star/page.tsx:42"}, "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-e264c9326ca74a93", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/page.tsx:39", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/page.tsx:39"}, "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-e6258fbcb130b95e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/audio/page.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/audio/page.tsx:52"}, "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-379db8d0edbf598f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/first-principles/page.tsx:46", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/first-principles/page.tsx:46"}, "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-f6bdac6a8406284f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langgraph/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langgraph/page.tsx:67"}, "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-386411da5719fba1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/experience.ts:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/experience.ts:40"}, "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-763f9fa1af305353", "name": "Stray `console.log` in TS/JS \u2014 crates/udemy/scripts/scrape-udemy.ts:427", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 crates/udemy/scripts/scrape-udemy.ts:427"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c808583a705c6852", "name": "Insecure pattern 'eval_used' in Makefile:1717", "shortDescription": {"text": "Insecure pattern 'eval_used' in Makefile:1717"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e0d28cdb136fdc8", "name": "Insecure pattern 'node_child_process' in scripts/codemod-radix-to-shadcn.mjs:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/codemod-radix-to-shadcn.mjs:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cecbda763557cf78", "name": "Insecure pattern 'exec_used' in scripts/generate-ampcus-cards.ts:1040", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/generate-ampcus-cards.ts:1040"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db889999582f4f2c", "name": "Insecure pattern 'node_child_process' in scripts/eval-scheduler.ts:55", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eval-scheduler.ts:55"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abb9ec4df139f734", "name": "Insecure pattern 'node_child_process' in scripts/test-audio-meta.mjs:55", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-audio-meta.mjs:55"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-940991874a8781f9", "name": "Insecure pattern 'node_child_process' in scripts/add-application.mjs:52", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/add-application.mjs:52"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcd33bf5e941d6dc", "name": "Insecure pattern 'dangerous_innerhtml' in components/guide-tabs.tsx:41", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/guide-tabs.tsx:41"}, "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-964071fab9895cd3", "name": "Insecure pattern 'dangerous_innerhtml' in components/auth-status-badge.tsx:26", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/auth-status-badge.tsx:26"}, "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-e348a3b922bbe9ec", "name": "Insecure pattern 'dangerous_innerhtml' in components/agentic-sales-guide-nav.tsx:98", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/agentic-sales-guide-nav.tsx:98"}, "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-7f7f86d78a8158dd", "name": "Insecure pattern 'dangerous_innerhtml' in components/guide/GuideTextPage.tsx:30", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/guide/GuideTextPage.tsx:30"}, "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-0e0c9e88f36b6234", "name": "Insecure pattern 'dangerous_innerhtml' in app/glossary/page.tsx:30", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/glossary/page.tsx:30"}, "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-f797d6582ec41e66", "name": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/page.tsx:105", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/page.tsx:105"}, "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-d1e8cca077f3c4f8", "name": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/[slug]/page.tsx:156", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/[slug]/page.tsx:156"}, "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-9f4f342f0ce996d7", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/page.tsx:42", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/page.tsx:42"}, "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-9cdc0864f87bcdfb", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/audio/page.tsx:51", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/audio/page.tsx:51"}, "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-bc84fdfeef1c0c64", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/text/page.tsx:39", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/text/page.tsx:39"}, "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-4a5ef095b75bfa92", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/audio/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/audio/page.tsx:40"}, "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-51ec5f2680aa26de", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/star/page.tsx:42", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/star/page.tsx:42"}, "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-9672ef7bb97b9afc", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/page.tsx:39", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/page.tsx:39"}, "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-b00f12d52e556f41", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/audio/page.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/audio/page.tsx:52"}, "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-87ec6d54e6d766ff", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/first-principles/page.tsx:46", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/first-principles/page.tsx:46"}, "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-d9a1a91499971ad0", "name": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langgraph/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langgraph/page.tsx:67"}, "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-4093aaa9c69bdeb2", "name": "Insecure pattern 'eval_used' in lib/articles.ts:264", "shortDescription": {"text": "Insecure pattern 'eval_used' in lib/articles.ts:264"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97ffbb4270df2d2e", "name": "Insecure pattern 'domparser_html_parse' in lib/html-sanitizer.ts:19", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in lib/html-sanitizer.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ada933b6dc5c62dd", "name": "Insecure pattern 'new_function_used' in lib/problems/runner.ts:47", "shortDescription": {"text": "Insecure pattern 'new_function_used' in lib/problems/runner.ts:47"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c08a4e363524a02f", "name": "Insecure pattern 'eval_used' in services/llamaindex/rag_service/eval/audio_source_eval.py:564", "shortDescription": {"text": "Insecure pattern 'eval_used' in services/llamaindex/rag_service/eval/audio_source_eval.py:564"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4cf15338f75f3cc", "name": "Insecure pattern 'exec_used' in roadmap-kg/kg/triage_compat.py:60", "shortDescription": {"text": "Insecure pattern 'exec_used' in roadmap-kg/kg/triage_compat.py:60"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-afd824eca109563f", "name": "Insecure pattern 'eval_used' in roadmap-kg/kg/memory_retrieval_eval.py:305", "shortDescription": {"text": "Insecure pattern 'eval_used' in roadmap-kg/kg/memory_retrieval_eval.py:305"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6719249cd98a587e", "name": "Very large file: scripts/generate-ampcus-cards.ts (2334 lines)", "shortDescription": {"text": "Very large file: scripts/generate-ampcus-cards.ts (2334 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-e53d4fa152d25db4", "name": "Very large file: components/audio-player.tsx (1536 lines)", "shortDescription": {"text": "Very large file: components/audio-player.tsx (1536 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-898c72dfbbe58db3", "name": "Very large file: app/langgraph/lead-gen/sd/_content.ts (1525 lines)", "shortDescription": {"text": "Very large file: app/langgraph/lead-gen/sd/_content.ts (1525 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-4fa3d64cfc84ef5d", "name": "Very large file: lib/css-properties.ts (2482 lines)", "shortDescription": {"text": "Very large file: lib/css-properties.ts (2482 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-5f6237da7af16e3c", "name": "Very large file: crates/ml/src/audio_guide/gate.rs (1809 lines)", "shortDescription": {"text": "Very large file: crates/ml/src/audio_guide/gate.rs (1809 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-714a1eb1b830eb3c", "name": "Very large file: crates/ml/src/audio_guide/markdown.rs (1687 lines)", "shortDescription": {"text": "Very large file: crates/ml/src/audio_guide/markdown.rs (1687 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-0469e74ee3309bbf", "name": "Very large file: crates/ml/src/audio_guide/tts_quality.rs (1759 lines)", "shortDescription": {"text": "Very large file: crates/ml/src/audio_guide/tts_quality.rs (1759 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-60dec5269eabae24", "name": "Very large file: crates/ml/src/udemy/coursera.rs (1408 lines)", "shortDescription": {"text": "Very large file: crates/ml/src/udemy/coursera.rs (1408 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-4be2e99000ccf523", "name": "Very large file: roadmap-kg/kg/audio_gate.py (1235 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/audio_gate.py (1235 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-121fe70b14bd6243", "name": "Very large file: roadmap-kg/kg/ground.py (2405 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/ground.py (2405 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-a0099a6d9cafca47", "name": "Very large file: roadmap-kg/kg/enhance_inline_memory.py (1564 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/enhance_inline_memory.py (1564 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-0926609e7489162c", "name": "Very large file: roadmap-kg/kg/mnemonics.py (1299 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/mnemonics.py (1299 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-89f91566538ee6b9", "name": "Very large file: roadmap-kg/kg/audio_memory.py (1665 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/audio_memory.py (1665 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-d940e57d3e940a83", "name": "Very large file: roadmap-kg/kg/mnemonic_gate_core.py (1009 lines)", "shortDescription": {"text": "Very large file: roadmap-kg/kg/mnemonic_gate_core.py (1009 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": "60 test file(s) for 921 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3ed68815bca2f8c", "name": "Node manifest has dependencies but no lockfile: package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c161bdbedd6b8851", "name": "Node manifest has dependencies but no lockfile: crates/udemy/scripts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: crates/udemy/scripts/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 1406 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 101 placeholder/mock markers across 34 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. 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-beacb4349ec8d99f", "name": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_04_article-loop-convergence.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_04_article-loop-convergence.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-027c7fbefe1b0e1c", "name": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_03_kg-edges-cycles-paths.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_03_kg-edges-cycles-paths.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66d547740b2abb03", "name": "Commented-code block (5 lines) in next.config.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in next.config.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-01d29df91900394b", "name": "Commented-code block (5 lines) in scripts/gen-lesson-memorize.ts:228", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-lesson-memorize.ts:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d45633c57fb17038", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-lesson-memorize.ts:252", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-lesson-memorize.ts:252"}, "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-f0a2b55636d7e93d", "name": "Commented-code block (7 lines) in scripts/scope-neon-auth-css.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/scope-neon-auth-css.mjs: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-8bc2f970adade1cf", "name": "Commented-code block (7 lines) in scripts/merge-reading.mjs:6", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/merge-reading.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22ee3c5f13e1616f", "name": "Commented-code block (5 lines) in scripts/gate-content.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gate-content.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1743efc335eef852", "name": "Commented-code block (5 lines) in scripts/build-audio-meta-langgraph.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build-audio-meta-langgraph.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35c0568da7ca46f0", "name": "Commented-code block (7 lines) in scripts/gen-agentic-sales-memorize.ts:35", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/gen-agentic-sales-memorize.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afded42a4500a24c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-agentic-sales-memorize.ts:288", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-agentic-sales-memorize.ts:288"}, "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-c63dbe157b48d24f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-ampcus-cards.ts:244", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-ampcus-cards.ts:244"}, "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-e32927857d92b90d", "name": "Commented-code block (7 lines) in scripts/build-postgres-interview.mjs:5", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/build-postgres-interview.mjs: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-fdc795246088f62b", "name": "Commented-code block (5 lines) in scripts/eval-scheduler.ts:73", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/eval-scheduler.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87aab7bc1a3f3d3b", "name": "Commented-code block (9 lines) in scripts/sanitize-spoken.mjs:2", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/sanitize-spoken.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7776672dffcd393d", "name": "Commented-code block (5 lines) in scripts/test-audio-meta.mjs:253", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-audio-meta.mjs:253"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f349196aa807b04", "name": "Commented-code block (8 lines) in scripts/sync-agentic-sales.mjs:5", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/sync-agentic-sales.mjs: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-0d5259d33530dc65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/prep-enhance.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/prep-enhance.mjs:17"}, "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-bd8ebae925110b6c", "name": "Commented-code block (5 lines) in scripts/build-postgres-exercises-audio.mjs:11", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build-postgres-exercises-audio.mjs: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-cc9f45991f62c21c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/push-prep-md-to-d1.mjs:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/push-prep-md-to-d1.mjs:27"}, "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-491f850f769f3c62", "name": "Commented-code block (5 lines) in scripts/add-application.mjs:15", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/add-application.mjs:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6eb5559cc6d9525d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-application.mjs:126", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-application.mjs:126"}, "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-4541809abc8cee48", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-content-langgraph.mjs:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-content-langgraph.mjs:62"}, "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-63efceae0f9201d1", "name": "Commented-code block (6 lines) in components/story-deep-dives.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/story-deep-dives.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-80eac6deb12d75f2", "name": "Commented-code block (9 lines) in components/annotated-sql.tsx:112", "shortDescription": {"text": "Commented-code block (9 lines) in components/annotated-sql.tsx:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a70d785d7c6fb076", "name": "Commented-code block (5 lines) in components/explain-popover.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in components/explain-popover.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-adb264e66bef2e59", "name": "Commented-code block (6 lines) in components/lesson-explain.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/lesson-explain.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-1ead34aca2e83f69", "name": "Commented-code block (6 lines) in components/guide-tabs.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/guide-tabs.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-d68e22d1040cdfe9", "name": "Commented-code block (5 lines) in components/audio-player.tsx:139", "shortDescription": {"text": "Commented-code block (5 lines) in components/audio-player.tsx:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f4f21908863e9aa", "name": "Commented-code block (5 lines) in components/markdown-prose.tsx:22", "shortDescription": {"text": "Commented-code block (5 lines) in components/markdown-prose.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d410bbed96667de", "name": "Commented-code block (6 lines) in components/explain-actions.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/explain-actions.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-b994032f5a174997", "name": "Commented-code block (5 lines) in components/sql-annotations-context.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in components/sql-annotations-context.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-8728cce4e2982c4b", "name": "Commented-code block (5 lines) in components/pillar-glossary.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in components/pillar-glossary.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dd6982c56f6f47f", "name": "Commented-code block (5 lines) in components/agentic-sales-transcript.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in components/agentic-sales-transcript.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a9ba06de0593a5d", "name": "Commented-code block (9 lines) in components/agentic-sales-guide-nav.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in components/agentic-sales-guide-nav.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-04c5caab8883edd8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/memorize/InterleavedDrill.tsx:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/memorize/InterleavedDrill.tsx:39"}, "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-9fca6221018e28e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/problems/problem-workspace.tsx:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/problems/problem-workspace.tsx:89"}, "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-615ef89108ddf691", "name": "Commented-code block (8 lines) in components/guide/GuideExplain.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in components/guide/GuideExplain.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-09f19d9a2a56b0c3", "name": "Commented-code block (5 lines) in components/guide/GuideSubNav.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in components/guide/GuideSubNav.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-8b417cb8eaca375c", "name": "Commented-code block (5 lines) in components/guide/guides.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/guide/guides.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-289c6a9783577ad9", "name": "Commented-code block (7 lines) in components/guide/GuideTextPage.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in components/guide/GuideTextPage.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-1e9487b6f76c079f", "name": "Commented-code block (7 lines) in components/guide/styles.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/guide/styles.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-d25e27ba2f3a5db2", "name": "Commented-code block (6 lines) in components/phase-hub/PhaseHub.tsx:44", "shortDescription": {"text": "Commented-code block (6 lines) in components/phase-hub/PhaseHub.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-c626d12d86739ffb", "name": "Commented-code block (6 lines) in components/phase-hub/HubAudio/useSpeechQueue.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/useSpeechQueue.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-8e6747a64fbba687", "name": "Commented-code block (6 lines) in components/phase-hub/HubAudio/HubAudioProvider.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/HubAudioProvider.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-e99aa1563696b05e", "name": "Commented-code block (6 lines) in components/phase-hub/HubAudio/PhasePlayAll.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/PhasePlayAll.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-d02cf41675d61766", "name": "Commented-code block (5 lines) in components/phase-hub/LessonCard/ListenButton.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/phase-hub/LessonCard/ListenButton.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-85b508c90d2bafb2", "name": "Commented-code block (6 lines) in components/app-detail/PrepDeepDiveAudioLink.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in components/app-detail/PrepDeepDiveAudioLink.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-bcd8aca88b404bc8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/JobDescriptionTab.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/JobDescriptionTab.tsx:28"}, "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-b6b8e9806eeb025b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/ApplicationHeader.tsx:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/ApplicationHeader.tsx:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-293166f93621ac86", "name": "Commented-code block (5 lines) in app/layout.tsx:46", "shortDescription": {"text": "Commented-code block (5 lines) in app/layout.tsx:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cc3b1f07c02163d", "name": "Commented-code block (5 lines) in app/outreach/audio/page.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/outreach/audio/page.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-a523caa0ec4d9b49", "name": "Commented-code block (5 lines) in app/api/memorize/tutor/route.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/memorize/tutor/route.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7db2fb55c2c9c288", "name": "Commented-code block (5 lines) in app/api/memorize/due/route.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/memorize/due/route.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a38d87c8b70a5da", "name": "Commented-code block (5 lines) in app/api/highlight-mark/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/highlight-mark/route.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-cfca62e3f30dae94", "name": "Commented-code block (9 lines) in app/api/applications/[id]/route.ts:62", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/applications/[id]/route.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86dc0435a48cf2da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/job-url/route.ts:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/job-url/route.ts:67"}, "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-3a288144b0ba0e8e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/notes/[[...path]]/route.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/notes/[[...path]]/route.ts:111"}, "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-82dc58cb6668a2e8", "name": "Commented-code block (6 lines) in app/api/highlight-query/route.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/highlight-query/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97822289d60ec012", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/highlight-query/route.ts:129", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/highlight-query/route.ts:129"}, "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-1d16756322e6c118", "name": "Commented-code block (7 lines) in app/rag/page.tsx:11", "shortDescription": {"text": "Commented-code block (7 lines) in app/rag/page.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-4359ef17ef39ff0c", "name": "Commented-code block (7 lines) in app/campaign/text/page.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in app/campaign/text/page.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-c435e3d79948b2ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/memorize/[categorySlug]/page.tsx:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/memorize/[categorySlug]/page.tsx:34"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f523478a43308f8f", "name": "Commented-code block (6 lines) in app/memorize/flashcards/page.tsx:17", "shortDescription": {"text": "Commented-code block (6 lines) in app/memorize/flashcards/page.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3a6dc9c86714f80", "name": "Commented-code block (7 lines) in app/glossary/_data.ts:86", "shortDescription": {"text": "Commented-code block (7 lines) in app/glossary/_data.ts: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-c454f6f93548dd6f", "name": "Commented-code block (6 lines) in app/glossary/_styles.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/glossary/_styles.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-702eafe3740a9fda", "name": "Commented-code block (5 lines) in app/postgres/page.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/postgres/page.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-d258df46ca654b35", "name": "Commented-code block (5 lines) in app/postgres/text/page.tsx:32", "shortDescription": {"text": "Commented-code block (5 lines) in app/postgres/text/page.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ab07e6b0b5cbd05", "name": "Commented-code block (6 lines) in app/postgres/exercises/page.tsx:13", "shortDescription": {"text": "Commented-code block (6 lines) in app/postgres/exercises/page.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0451ecc722a00fd5", "name": "Commented-code block (5 lines) in app/postgres/audio/page.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in app/postgres/audio/page.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a7fffae62d6315a", "name": "Commented-code block (7 lines) in app/postgres/joins/page.tsx:28", "shortDescription": {"text": "Commented-code block (7 lines) in app/postgres/joins/page.tsx:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bb6e7ae0bfb176b", "name": "Commented-code block (6 lines) in app/memory/page.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/memory/page.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc8b21529206e4bd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/page.tsx:305", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/page.tsx:305"}, "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-663d7cecca38321e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/page.tsx:249", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/page.tsx:249"}, "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-f0a6d757ed849b0f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/slovenia/images/_canvas.tsx:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/slovenia/images/_canvas.tsx:14"}, "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-4a3423def9398dde", "name": "Commented-code block (7 lines) in app/agentic-rag/text/page.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-rag/text/page.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-296d635b28c31710", "name": "Commented-code block (7 lines) in app/evals/text/page.tsx:19", "shortDescription": {"text": "Commented-code block (7 lines) in app/evals/text/page.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1020842981991252", "name": "Commented-code block (7 lines) in app/learning-science/page.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in app/learning-science/page.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76326c0fc6e48215", "name": "Commented-code block (7 lines) in app/learning-science/[slug]/page.tsx:11", "shortDescription": {"text": "Commented-code block (7 lines) in app/learning-science/[slug]/page.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-d07fa507654b9efc", "name": "Commented-code block (5 lines) in app/applications/[id]/prep/_audio.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/applications/[id]/prep/_audio.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-ca5985ef8e59ba51", "name": "Commented-code block (5 lines) in app/applications/[id]/prep/page.tsx:429", "shortDescription": {"text": "Commented-code block (5 lines) in app/applications/[id]/prep/page.tsx:429"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e3d60dfa8be8898", "name": "Commented-code block (7 lines) in app/applications/[id]/prep/audio/page.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in app/applications/[id]/prep/audio/page.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43c1ec4d4593c1c5", "name": "Commented-code block (6 lines) in app/applications/(owner)/page.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in app/applications/(owner)/page.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-7e47829f3cffb55e", "name": "Commented-code block (6 lines) in app/applications/interviewing/[slug]/page.tsx:23", "shortDescription": {"text": "Commented-code block (6 lines) in app/applications/interviewing/[slug]/page.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6d94ea17fbff06b", "name": "Commented-code block (6 lines) in app/cortex-portal/_content.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/cortex-portal/_content.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-578a7178b927b6c9", "name": "Commented-code block (5 lines) in app/discovery/audio/page.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/discovery/audio/page.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-f43ea66dd368bb6f", "name": "Commented-code block (6 lines) in app/[slug]/page.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in app/[slug]/page.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-046ed6bb3683e4e5", "name": "Commented-code block (7 lines) in app/agentic-sales/_shared.ts:92", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-sales/_shared.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfcdeef7207f24c8", "name": "Commented-code block (7 lines) in app/agentic-sales/_code-refs.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-sales/_code-refs.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-a69ad6313b77efb0", "name": "Commented-code block (6 lines) in app/agentic-sales/layout.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in app/agentic-sales/layout.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-98243291caa61bf6", "name": "Commented-code block (12 lines) in app/agentic-sales/_styles.ts:1", "shortDescription": {"text": "Commented-code block (12 lines) in app/agentic-sales/_styles.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-aa40fd97503e519b", "name": "Commented-code block (7 lines) in app/agentic-sales/langsmith/content.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-sales/langsmith/content.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-4440ea89bf23e895", "name": "Commented-code block (11 lines) in app/agentic-sales/langsmith/page.tsx:12", "shortDescription": {"text": "Commented-code block (11 lines) in app/agentic-sales/langsmith/page.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01f74883326bcd13", "name": "Commented-code block (7 lines) in app/agentic-sales/langsmith/audio/page.tsx:13", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-sales/langsmith/audio/page.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcb3e55f94c0a435", "name": "Commented-code block (5 lines) in app/agentic-sales/text/page.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in app/agentic-sales/text/page.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9100bfecff3962bd", "name": "Commented-code block (7 lines) in app/agentic-sales/text/HighlightLayer.tsx:29", "shortDescription": {"text": "Commented-code block (7 lines) in app/agentic-sales/text/HighlightLayer.tsx:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7858bf5727b62427", "name": "Commented-code block (8 lines) in app/agentic-sales/audio/page.tsx:10", "shortDescription": {"text": "Commented-code block (8 lines) in app/agentic-sales/audio/page.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-1eb0a3642c49e0e1", "name": "Commented-code block (5 lines) in app/agentic-sales/star/content.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/agentic-sales/star/content.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-0d57a0c23ccd2f17", "name": "Commented-code block (10 lines) in app/agentic-sales/star/page.tsx:13", "shortDescription": {"text": "Commented-code block (10 lines) in app/agentic-sales/star/page.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-712d0de6fe4182c9", "name": "Commented-code block (5 lines) in app/agentic-sales/agents-workflows/content.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/agentic-sales/agents-workflows/content.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-93883e831fa10886", "name": "Commented-code block (8 lines) in app/agentic-sales/agents-workflows/page.tsx:12", "shortDescription": {"text": "Commented-code block (8 lines) in app/agentic-sales/agents-workflows/page.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5e81daaf8c2451d", "name": "Commented-code block (6 lines) in app/agentic-sales/agents-workflows/audio/page.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/agentic-sales/agents-workflows/audio/page.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd627249bfc03d63", "name": "Commented-code block (6 lines) in app/agentic-sales/first-principles/content.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/agentic-sales/first-principles/content.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-5e48036c9d8d98fe", "name": "Commented-code block (14 lines) in app/agentic-sales/first-principles/page.tsx:13", "shortDescription": {"text": "Commented-code block (14 lines) in app/agentic-sales/first-principles/page.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06639c30f010c006", "name": "Commented-code block (6 lines) in app/agentic-sales/langgraph/content.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/agentic-sales/langgraph/content.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-480a2b5297122230", "name": "Commented-code block (5 lines) in app/agentic-sales/langgraph/DeepDive.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/agentic-sales/langgraph/DeepDive.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-0f0b7d0098618e71", "name": "Commented-code block (10 lines) in app/agentic-sales/langgraph/simplify.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in app/agentic-sales/langgraph/simplify.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-02dae163b71abff0", "name": "Commented-code block (11 lines) in app/agentic-sales/langgraph/page.tsx:16", "shortDescription": {"text": "Commented-code block (11 lines) in app/agentic-sales/langgraph/page.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-af0c66a844a2b858", "name": "Commented-code block (7 lines) in app/langgraph/audio/page.tsx:10", "shortDescription": {"text": "Commented-code block (7 lines) in app/langgraph/audio/page.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-76726a498c32cbe9", "name": "Commented-code block (6 lines) in app/langgraph/agents/content.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/langgraph/agents/content.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-4b5a211abf561078", "name": "Commented-code block (5 lines) in app/langgraph/agents/autonomous/content.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/langgraph/agents/autonomous/content.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-b1e2b4549db42967", "name": "Commented-code block (7 lines) in app/langgraph/agents/autonomous/audio/page.tsx:10", "shortDescription": {"text": "Commented-code block (7 lines) in app/langgraph/agents/autonomous/audio/page.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-c90fff50c8bec883", "name": "Legacy-named symbol `analyze_product_v2` in app/langgraph/lead-gen/_content.ts:54", "shortDescription": {"text": "Legacy-named symbol `analyze_product_v2` in app/langgraph/lead-gen/_content.ts:54"}, "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-d01f5a2229bc3b17", "name": "Commented-code block (7 lines) in app/langgraph/lead-gen/page.tsx:15", "shortDescription": {"text": "Commented-code block (7 lines) in app/langgraph/lead-gen/page.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd6b1e5327c28872", "name": "Commented-code block (6 lines) in lib/auth.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in lib/auth.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-9de4c79ef2065167", "name": "Commented-code block (6 lines) in lib/audio.ts:208", "shortDescription": {"text": "Commented-code block (6 lines) in lib/audio.ts:208"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab1d919c8d7a3ee2", "name": "Commented-code block (5 lines) in lib/d1.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in lib/d1.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96b50bbdcb8d2b72", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/d1.ts:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/d1.ts:71"}, "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-5b9f33030d0f9dd0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/embeddings.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/embeddings.ts:22"}, "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-f0e9b83137da17b9", "name": "Commented-code block (5 lines) in lib/experience-story.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/experience-story.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-34190b3cd13e41cc", "name": "Commented-code block (7 lines) in lib/category-gradient.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in lib/category-gradient.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-d03e8b265f3bdbd9", "name": "Commented-code block (5 lines) in lib/references.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in lib/references.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-53d0e13b251037ec", "name": "Commented-code block (22 lines) in lib/experience-stories.ts:55", "shortDescription": {"text": "Commented-code block (22 lines) in lib/experience-stories.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-496db684918c12cc", "name": "Commented-code block (5 lines) in lib/memory-aids.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/memory-aids.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-21ca1c15d5be433b", "name": "Commented-code block (6 lines) in lib/articles.ts:162", "shortDescription": {"text": "Commented-code block (6 lines) in lib/articles.ts:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7b315919d9e34ef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resolve-job-url.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resolve-job-url.ts:28"}, "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-21565bf5820206f0", "name": "Commented-code block (6 lines) in lib/app-prep-seed.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in lib/app-prep-seed.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9819a5ce41ed60a", "name": "Commented-code block (6 lines) in lib/sql-annotations.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/sql-annotations.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-c5e1926044ccf7ac", "name": "Commented-code block (6 lines) in lib/tutor-policy.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/tutor-policy.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5121f24306fa56c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ml-client.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ml-client.ts:29"}, "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-826cd48388264b9c", "name": "Commented-code block (6 lines) in lib/agentic-sales-guides.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/agentic-sales-guides.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-a4e077bf2f1db74c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/bkt.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/bkt.ts:44"}, "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-16629bb6a5829db8", "name": "Commented-code block (6 lines) in lib/owner.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/owner.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-ca24cde34e309595", "name": "Commented-code block (5 lines) in lib/data.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in lib/data.ts: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-f47677b6f70a0715", "name": "Commented-code block (6 lines) in lib/ecb-experience-mapping.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ecb-experience-mapping.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-bcbbe9b6bfa5b61e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email/cloudflare.ts:106", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email/cloudflare.ts:106"}, "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-4dc5e5c5306c8949", "name": "Commented-code block (5 lines) in workers/edge-tasks/src/entry.py:3", "shortDescription": {"text": "Commented-code block (5 lines) in workers/edge-tasks/src/entry.py: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-456bfc13eebfaab0", "name": "Commented-code block (5 lines) in workers/app/index.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in workers/app/index.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-390571ea92fdd1a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/index.ts:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/index.ts:19"}, "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-7db0deb3a0a8f377", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/generated.d.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/generated.d.ts:13"}, "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-179b497cf917fc45", "name": "Commented-code block (5 lines) in services/llamaindex/rag_service/tutor.py:367", "shortDescription": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/tutor.py:367"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7748ebfdec2f56e", "name": "Commented-code block (5 lines) in services/llamaindex/rag_service/prompts.py:24", "shortDescription": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/prompts.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6039af4a83acb05b", "name": "Commented-code block (5 lines) in services/llamaindex/rag_service/runtime.py:31", "shortDescription": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/runtime.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c609c04c2e47ca50", "name": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/deepeval_content.py:247", "shortDescription": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/deepeval_content.py:247"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-079bddf6d159929a", "name": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/audio_source_eval.py:73", "shortDescription": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/audio_source_eval.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0871a66f35c6b0f8", "name": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 services/llamaindex/rag_service/eval/deepeval_evaluator", "shortDescription": {"text": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 services/llamaindex/rag_service/eval/deepeval_evaluators.py:68"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e2039066ae0aa96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/company-intel/d1.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/company-intel/d1.ts:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-977f5b4646add726", "name": "Commented-code block (7 lines) in src/db/schema.ts:754", "shortDescription": {"text": "Commented-code block (7 lines) in src/db/schema.ts:754"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7b479ee8cd9759d", "name": "Commented-code block (5 lines) in e2e/audio-player.mjs:189", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/audio-player.mjs:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f588f1c9eb99725a", "name": "Commented-code block (7 lines) in roadmap-kg/test_llm_infra.py:160", "shortDescription": {"text": "Commented-code block (7 lines) in roadmap-kg/test_llm_infra.py:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59ce2615d0c25b3d", "name": "Commented-code block (5 lines) in roadmap-kg/parity_check.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/parity_check.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0632504f47714a7", "name": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/parity_check.py:53", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/parity_check.py:53"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e1843108973737e", "name": "Commented-code block (5 lines) in roadmap-kg/test_angles.py:226", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_angles.py:226"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-821971a72cbb89c5", "name": "Commented-code block (6 lines) in roadmap-kg/test_audio_gate_inloop_parity.py:115", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/test_audio_gate_inloop_parity.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e5ca094f9a57806", "name": "Commented-code block (5 lines) in roadmap-kg/test_audio_outline.py:200", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_audio_outline.py:200"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-941142a8d76dac9a", "name": "Commented-code block (5 lines) in roadmap-kg/test_inline_embed_cache.py:185", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_inline_embed_cache.py:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dba0731bb08e16af", "name": "Commented-code block (5 lines) in roadmap-kg/test_ground.py:307", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_ground.py:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c24ac2b76cb642ca", "name": "Commented-code block (11 lines) in roadmap-kg/test_audio_memory.py:377", "shortDescription": {"text": "Commented-code block (11 lines) in roadmap-kg/test_audio_memory.py:377"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30d7057f4d5b2d30", "name": "Commented-code block (5 lines) in roadmap-kg/test_tutor_gate_parity.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_tutor_gate_parity.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e56bb2433b1cd0a1", "name": "Commented-code block (5 lines) in roadmap-kg/test_audio_gate_rules.py:256", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/test_audio_gate_rules.py:256"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27d523108ebbf0bf", "name": "Commented-code block (6 lines) in roadmap-kg/kg/mnemonic_specs.py:462", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/mnemonic_specs.py:462"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26f6d5fbb95b3fb2", "name": "Commented-code block (5 lines) in roadmap-kg/kg/audio_gate.py:145", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio_gate.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b0002fc4c3e4664", "name": "Commented-code block (6 lines) in roadmap-kg/kg/build_learning_audio.py:63", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/build_learning_audio.py: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-8a8aaff5286645d3", "name": "Commented-code block (6 lines) in roadmap-kg/kg/rerank.py:100", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/rerank.py: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-a531387c1a61b9e8", "name": "Commented-code block (6 lines) in roadmap-kg/kg/flashcard_gen.py:438", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/flashcard_gen.py:438"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0a9c656bdf9391a", "name": "Commented-code block (5 lines) in roadmap-kg/kg/gen_mock_interview.py:239", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/gen_mock_interview.py: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-7793b0c397df2640", "name": "Commented-code block (7 lines) in roadmap-kg/kg/ground_langgraph_agents.py:410", "shortDescription": {"text": "Commented-code block (7 lines) in roadmap-kg/kg/ground_langgraph_agents.py:410"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76a0c8224c725eaf", "name": "Commented-code block (5 lines) in roadmap-kg/kg/query.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/query.py: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-cd15a375dde57d54", "name": "Commented-code block (8 lines) in roadmap-kg/kg/ground_langgraph.py:48", "shortDescription": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/ground_langgraph.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4b9c768f94f1864", "name": "Commented-code block (8 lines) in roadmap-kg/kg/ground_memory_techniques.py:60", "shortDescription": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/ground_memory_techniques.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a811f7b0c7ce855", "name": "Commented-code block (7 lines) in roadmap-kg/kg/ground.py:105", "shortDescription": {"text": "Commented-code block (7 lines) in roadmap-kg/kg/ground.py:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c166f7df82d48656", "name": "Commented-code block (6 lines) in roadmap-kg/kg/ground_agents_workflows.py:47", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_agents_workflows.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ae256fe88bf85b3", "name": "Commented-code block (8 lines) in roadmap-kg/kg/gen_prep_drills.py:68", "shortDescription": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/gen_prep_drills.py:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f54795558fd5393", "name": "Commented-code block (11 lines) in roadmap-kg/kg/enhance_inline_memory.py:51", "shortDescription": {"text": "Commented-code block (11 lines) in roadmap-kg/kg/enhance_inline_memory.py:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc5be83c91a8d3bf", "name": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/enhance_highlights.py:129", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/enhance_highlights.py:129"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ffa367035288359a", "name": "Commented-code block (5 lines) in roadmap-kg/kg/memory_corpus_eval.py:267", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/memory_corpus_eval.py:267"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6238f57e3534ef0e", "name": "Commented-code block (9 lines) in roadmap-kg/kg/ground_postgres.py:151", "shortDescription": {"text": "Commented-code block (9 lines) in roadmap-kg/kg/ground_postgres.py:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e23c8e79508c2948", "name": "Commented-code block (10 lines) in roadmap-kg/kg/mnemonics.py:145", "shortDescription": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/mnemonics.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12c2f1a7c8c9362e", "name": "Commented-code block (5 lines) in roadmap-kg/kg/llm.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/llm.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24f820bbc7faa716", "name": "Commented-code block (5 lines) in roadmap-kg/kg/ground_sql_glossary.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ground_sql_glossary.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38ecd50084e71801", "name": "Commented-code block (5 lines) in roadmap-kg/kg/deepseek_llm.py:120", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/deepseek_llm.py:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff4ee671137322fb", "name": "Commented-code block (6 lines) in roadmap-kg/kg/ground_first_principles.py:54", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_first_principles.py:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4830932ac7256ecd", "name": "Commented-code block (6 lines) in roadmap-kg/kg/ground_postgres_joins.py:45", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_postgres_joins.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac4ee3d3c2d8409d", "name": "Commented-code block (10 lines) in roadmap-kg/kg/audio_memory.py:83", "shortDescription": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/audio_memory.py:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-028bfc26fa2fb228", "name": "Commented-code block (5 lines) in roadmap-kg/kg/glossary_llamaindex.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/glossary_llamaindex.py: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-f588088c07fdf3ea", "name": "Commented-code block (5 lines) in roadmap-kg/kg/mnemonic_gate.py:499", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/mnemonic_gate.py:499"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0bdb703f4a6c154", "name": "Commented-code block (5 lines) in roadmap-kg/kg/ingest.py:68", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ingest.py:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48402929b6f1cd6a", "name": "Commented-code block (10 lines) in roadmap-kg/kg/prep_enhance.py:159", "shortDescription": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/prep_enhance.py:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4ce6588049f0515", "name": "Commented-code block (5 lines) in roadmap-kg/kg/memory_common.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/memory_common.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d449d60317db8a7", "name": "Commented-code block (5 lines) in roadmap-kg/kg/prep_evaluators.py:99", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/prep_evaluators.py:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d96c5af9560f378c", "name": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 roadmap-kg/kg/prep_evaluators.py:202", "shortDescription": {"text": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 roadmap-kg/kg/prep_evaluators.py:202"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbbecfc12bb9a174", "name": "Commented-code block (6 lines) in roadmap-kg/kg/prep_interview.py:153", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/prep_interview.py:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc8d39c6836dd176", "name": "Commented-code block (5 lines) in roadmap-kg/kg/ground_pillar_glossary.py:26", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ground_pillar_glossary.py: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-96f5a45badb573d6", "name": "Commented-code block (6 lines) in roadmap-kg/kg/eval_prep.py:197", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/eval_prep.py:197"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-753a10b7ab08a778", "name": "Commented-code block (13 lines) in roadmap-kg/kg/mnemonic_gate_core.py:72", "shortDescription": {"text": "Commented-code block (13 lines) in roadmap-kg/kg/mnemonic_gate_core.py:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b311eca0ac55360", "name": "Commented-code block (6 lines) in roadmap-kg/kg/audio/silence.py:49", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/silence.py: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-d3c69a41178037f4", "name": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/silence.py:88", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/silence.py:88"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2304c7a112d40ff", "name": "Commented-code block (5 lines) in roadmap-kg/kg/audio/finalize.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio/finalize.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6cefed8b35b03ec", "name": "Commented-code block (10 lines) in roadmap-kg/kg/audio/cache.py:17", "shortDescription": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/audio/cache.py:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4744c6eb7a40b27f", "name": "Commented-code block (6 lines) in roadmap-kg/kg/audio/textsplit.py:230", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/textsplit.py:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93e9732fd19c41d6", "name": "Commented-code block (5 lines) in roadmap-kg/kg/audio/tts.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio/tts.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c64d23c924718fb3", "name": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/tts.py:64", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/tts.py:64"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a0c12031832a200", "name": "Commented-code block (6 lines) in roadmap-kg/kg/audio/markdown.py:72", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/markdown.py:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9111a749d7869443", "name": "Commented-code block (6 lines) in roadmap-kg/kg/techniques/spatial_visualization.py:29", "shortDescription": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/techniques/spatial_visualization.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1909eaa06a7d3113", "name": "127 env vars used in code but missing from .env.example", "shortDescription": {"text": "127 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENTIC_SALES_DIR`, `AIDS_JUDGE_VOTES`, `APPLICATIONS_OWNER_EMAIL`, `APP_PREP_DIR`, `AUDIO_JSON_DIR`, `AUDIO_NLI_WRITE`, `AUDIO_PROXY_BASE`, `AUDIO_PROXY_NO_LIVE` + 119 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/analyze-chapter-dependencies.py:find_workspace_root, scripts/check-pii-in-script.py:find_workspace_root, scripts/glossary-generate.py:find_workspace_root, scripts/detect-unexpanded-acronyms.py:find_workspace_root\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9dad557909b86499", "name": "Near-duplicate function bodies in 10 places", "shortDescription": {"text": "Near-duplicate function bodies in 10 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/analyze-chapter-dependencies.py:main, scripts/citation-freshness-diff.py:main, scripts/fact-diff-heuristic.py:main, scripts/check-script-length-vs-target.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/design-vs-content-ratio.py:load_chapters, scripts/design-keyword-coverage.py:load_chapters\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/check-script-length-vs-target.py:find_workspace_root, scripts/check-source-path-prefix.py:find_workspace_root, scripts/check-freshness.py:find_workspace_root, scripts/recommend-sources.py:find_workspace_root\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nservices/llamaindex/rag_service/cache.py:get, services/llamaindex/rag_service/cache.py:get, services/llamaindex/rag_service/cache.py:get\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12ba335d63acf232", "name": "Near-duplicate function bodies in 187 places", "shortDescription": {"text": "Near-duplicate function bodies in 187 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nspecs/rag-education-papers/0771-enhancing-complex-question-answering-via-llm-pseudo-document/impl.py:build, specs/rag-education-papers/0664-appendix-to-graph-rag-for-automated-short-answer-grading-wit/impl.py:build, specs/rag-education-papers/0325-supporting-student-decisions-on-learning-recommendations-an/impl.py:build, specs/rag-education-papers/1230-controlled-retrieval-augmented-context-evaluation-for-long-f/impl.py:build\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df28d1ffe19e36ca", "name": "FastAPI POST `query` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:32", "shortDescription": {"text": "FastAPI POST `query` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:32"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff6ca81cf7e0221c", "name": "FastAPI POST `tutor_card` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:83", "shortDescription": {"text": "FastAPI POST `tutor_card` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:83"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-548299fc0015ef15", "name": "FastAPI POST `chat` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:118", "shortDescription": {"text": "FastAPI POST `chat` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:118"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2919f995b2f15bb7", "name": "FastAPI POST `query` without auth dependency \u2014 roadmap-kg/app.py:29", "shortDescription": {"text": "FastAPI POST `query` without auth dependency \u2014 roadmap-kg/app.py:29"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d416cff70387813", "name": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/", "shortDescription": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/prep-enhance.mjs:17)"}, "fullDescription": {"text": "`scripts/prep-enhance.mjs:17` calls `POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.cloudflare.com/client/v4/accounts/<p>/d1/database/<p>/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff895afd01c006d9", "name": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/", "shortDescription": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/push-prep-md-to-d1.mjs:27)"}, "fullDescription": {"text": "`scripts/push-prep-md-to-d1.mjs:27` calls `POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.cloudflare.com/client/v4/accounts/<p>/d1/database/<p>/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aff4fa44c5900960", "name": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-lesson-memorize.ts:252)", "shortDescription": {"text": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-lesson-memorize.ts:252)"}, "fullDescription": {"text": "`scripts/gen-lesson-memorize.ts:252` calls `POST https://api.deepseek.com/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.deepseek.com/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bb99fbd67b24aa7", "name": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-agentic-sales-memorize.ts:288)", "shortDescription": {"text": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-agentic-sales-memorize.ts:288)"}, "fullDescription": {"text": "`scripts/gen-agentic-sales-memorize.ts:288` calls `POST https://api.deepseek.com/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.deepseek.com/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6e9fa6a706eed9a", "name": "Dangling fetch: POST /api/highlight-query (components/explain-popover.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/highlight-query (components/explain-popover.tsx:59)"}, "fullDescription": {"text": "`components/explain-popover.tsx:59` calls `POST /api/highlight-query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/highlight-query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18ae0010ddf0c973", "name": "Dangling fetch: POST /api/highlight-mark (components/lesson-explain.tsx:75)", "shortDescription": {"text": "Dangling fetch: POST /api/highlight-mark (components/lesson-explain.tsx:75)"}, "fullDescription": {"text": "`components/lesson-explain.tsx:75` calls `POST /api/highlight-mark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/highlight-mark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb3c9599031493e0", "name": "Dangling fetch: POST /api/audio-recall (components/AudioRecallPrompt.tsx:87)", "shortDescription": {"text": "Dangling fetch: POST /api/audio-recall (components/AudioRecallPrompt.tsx:87)"}, "fullDescription": {"text": "`components/AudioRecallPrompt.tsx:87` calls `POST /api/audio-recall` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio-recall`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-516dbca7235e912b", "name": "Dangling fetch: POST /api/memorize/${categorySlug}/feedback (components/memorize/CardFeedback.tsx:70)", "shortDescription": {"text": "Dangling fetch: POST /api/memorize/${categorySlug}/feedback (components/memorize/CardFeedback.tsx:70)"}, "fullDescription": {"text": "`components/memorize/CardFeedback.tsx:70` calls `POST /api/memorize/${categorySlug}/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/<p>/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b142eda15d5c2d6b", "name": "Dangling fetch: POST /api/memorize/tutor (components/memorize/tutor-dialog.tsx:93)", "shortDescription": {"text": "Dangling fetch: POST /api/memorize/tutor (components/memorize/tutor-dialog.tsx:93)"}, "fullDescription": {"text": "`components/memorize/tutor-dialog.tsx:93` calls `POST /api/memorize/tutor` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/tutor`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c288702f9c5ac53", "name": "Dangling fetch: GET /api/memorize/progress (components/memorize/MemorizeProgress.tsx:76)", "shortDescription": {"text": "Dangling fetch: GET /api/memorize/progress (components/memorize/MemorizeProgress.tsx:76)"}, "fullDescription": {"text": "`components/memorize/MemorizeProgress.tsx:76` calls `GET /api/memorize/progress` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/progress`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-701ff5e417bdd5cb", "name": "Dangling fetch: GET /api/memorize/due?limit=100 (components/memorize/InterleavedDrill.tsx:39)", "shortDescription": {"text": "Dangling fetch: GET /api/memorize/due?limit=100 (components/memorize/InterleavedDrill.tsx:39)"}, "fullDescription": {"text": "`components/memorize/InterleavedDrill.tsx:39` calls `GET /api/memorize/due?limit=100` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/due`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d0f90d7d67d9f03", "name": "Dangling fetch: POST /api/memorize/${current.categorySlug} (components/memorize/InterleavedDrill.tsx:70)", "shortDescription": {"text": "Dangling fetch: POST /api/memorize/${current.categorySlug} (components/memorize/InterleavedDrill.tsx:70)"}, "fullDescription": {"text": "`components/memorize/InterleavedDrill.tsx:70` calls `POST /api/memorize/${current.categorySlug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3fdd66aa5e530b0", "name": "Dangling fetch: POST /api/problems/${props.slug}/submit (components/problems/problem-workspace.tsx:89)", "shortDescription": {"text": "Dangling fetch: POST /api/problems/${props.slug}/submit (components/problems/problem-workspace.tsx:89)"}, "fullDescription": {"text": "`components/problems/problem-workspace.tsx:89` calls `POST /api/problems/${props.slug}/submit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/problems/<p>/submit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8fa418d7f0178c7", "name": "Dangling fetch: POST /api/highlight-mark (components/guide/GuideExplain.tsx:76)", "shortDescription": {"text": "Dangling fetch: POST /api/highlight-mark (components/guide/GuideExplain.tsx:76)"}, "fullDescription": {"text": "`components/guide/GuideExplain.tsx:76` calls `POST /api/highlight-mark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/highlight-mark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ba1fab6bcb93577", "name": "Dangling fetch: POST /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:142)", "shortDescription": {"text": "Dangling fetch: POST /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:142)"}, "fullDescription": {"text": "`components/app-detail/TechStackTab.tsx:142` calls `POST /api/applications/${app.slug}/prep` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/prep`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6839b5c351875223", "name": "Dangling fetch: GET /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:148)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:148)"}, "fullDescription": {"text": "`components/app-detail/TechStackTab.tsx:148` calls `GET /api/applications/${app.slug}/prep` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/prep`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e70e72a81f18b4c", "name": "Dangling fetch: GET /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:164)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:164)"}, "fullDescription": {"text": "`components/app-detail/TechStackTab.tsx:164` calls `GET /api/applications/${app.slug}/tech-dismissed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/tech-dismissed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04825d75b972c375", "name": "Dangling fetch: PATCH /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:181)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:181)"}, "fullDescription": {"text": "`components/app-detail/TechStackTab.tsx:181` calls `PATCH /api/applications/${app.slug}/tech-dismissed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/tech-dismissed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82d5b5eb7e517861", "name": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/JobDescriptionTab.tsx:28)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/JobDescriptionTab.tsx:28)"}, "fullDescription": {"text": "`components/app-detail/JobDescriptionTab.tsx:28` calls `PATCH /api/applications/${app.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-50a2cf8303bd82ce", "name": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:66)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:66)"}, "fullDescription": {"text": "`components/app-detail/InterviewPrepTab.tsx:66` calls `GET /api/applications/${app.slug}/deepen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/deepen`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83457735db6dcfe4", "name": "Dangling fetch: POST /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:73)", "shortDescription": {"text": "Dangling fetch: POST /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:73)"}, "fullDescription": {"text": "`components/app-detail/InterviewPrepTab.tsx:73` calls `POST /api/applications/${app.slug}/deepen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/deepen`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64aea38b6fbce5fb", "name": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:82)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:82)"}, "fullDescription": {"text": "`components/app-detail/InterviewPrepTab.tsx:82` calls `GET /api/applications/${app.slug}/deepen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/deepen`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6676cfd720e7eed", "name": "Dangling fetch: GET /api/applications/${app.slug}/company (components/app-detail/CompanyTab.tsx:97)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.slug}/company (components/app-detail/CompanyTab.tsx:97)"}, "fullDescription": {"text": "`components/app-detail/CompanyTab.tsx:97` calls `GET /api/applications/${app.slug}/company` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/company`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a08770687211b9e", "name": "Dangling fetch: PUT /api/applications/${app.slug}/job-url (components/app-detail/ApplicationHeader.tsx:64)", "shortDescription": {"text": "Dangling fetch: PUT /api/applications/${app.slug}/job-url (components/app-detail/ApplicationHeader.tsx:64)"}, "fullDescription": {"text": "`components/app-detail/ApplicationHeader.tsx:64` calls `PUT /api/applications/${app.slug}/job-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/job-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ccb96ba2139e02c", "name": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:92)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:92)"}, "fullDescription": {"text": "`components/app-detail/ApplicationHeader.tsx:92` calls `PATCH /api/applications/${app.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8617e39a49c1d7a", "name": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:109)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:109)"}, "fullDescription": {"text": "`components/app-detail/ApplicationHeader.tsx:109` calls `PATCH /api/applications/${app.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a7707c10fc2d287", "name": "Dangling fetch: DELETE /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:193)", "shortDescription": {"text": "Dangling fetch: DELETE /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:193)"}, "fullDescription": {"text": "`components/app-detail/ApplicationHeader.tsx:193` calls `DELETE /api/applications/${app.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78d0ee1e46049a13", "name": "Dangling fetch: GET https://${R2_PUBLIC_DOMAIN}/${key} (app/api/applications/[id]/attachments/[file]/route.ts:87)", "shortDescription": {"text": "Dangling fetch: GET https://${R2_PUBLIC_DOMAIN}/${key} (app/api/applications/[id]/attachments/[file]/route.ts:87)"}, "fullDescription": {"text": "`app/api/applications/[id]/attachments/[file]/route.ts:87` calls `GET https://${R2_PUBLIC_DOMAIN}/${key}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c76e3ba7e8660e5", "name": "Dangling fetch: GET /api/memorize (app/memorize/page.tsx:32)", "shortDescription": {"text": "Dangling fetch: GET /api/memorize (app/memorize/page.tsx:32)"}, "fullDescription": {"text": "`app/memorize/page.tsx:32` calls `GET /api/memorize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc0da3038cfca626", "name": "Dangling fetch: GET /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:34)"}, "fullDescription": {"text": "`app/memorize/[categorySlug]/page.tsx:34` calls `GET /api/memorize/${params.categorySlug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec33401234a3d2a8", "name": "Dangling fetch: POST /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:124)", "shortDescription": {"text": "Dangling fetch: POST /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:124)"}, "fullDescription": {"text": "`app/memorize/[categorySlug]/page.tsx:124` calls `POST /api/memorize/${params.categorySlug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memorize/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e319c7b76e45e92a", "name": "Dangling fetch: GET /api/learners (app/coursework/page.tsx:261)", "shortDescription": {"text": "Dangling fetch: GET /api/learners (app/coursework/page.tsx:261)"}, "fullDescription": {"text": "`app/coursework/page.tsx:261` calls `GET /api/learners` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/learners`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-737076420ff86b83", "name": "Dangling fetch: GET /api/coursework (app/coursework/page.tsx:262)", "shortDescription": {"text": "Dangling fetch: GET /api/coursework (app/coursework/page.tsx:262)"}, "fullDescription": {"text": "`app/coursework/page.tsx:262` calls `GET /api/coursework` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cb4ab38d72a830e", "name": "Dangling fetch: POST /api/learners (app/coursework/page.tsx:287)", "shortDescription": {"text": "Dangling fetch: POST /api/learners (app/coursework/page.tsx:287)"}, "fullDescription": {"text": "`app/coursework/page.tsx:287` calls `POST /api/learners` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/learners`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44e0091b48c35f22", "name": "Dangling fetch: DELETE /api/learners/${id} (app/coursework/page.tsx:305)", "shortDescription": {"text": "Dangling fetch: DELETE /api/learners/${id} (app/coursework/page.tsx:305)"}, "fullDescription": {"text": "`app/coursework/page.tsx:305` calls `DELETE /api/learners/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/learners/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c483a5c8bf7b42c8", "name": "Dangling fetch: POST /api/coursework/upload (app/coursework/page.tsx:325)", "shortDescription": {"text": "Dangling fetch: POST /api/coursework/upload (app/coursework/page.tsx:325)"}, "fullDescription": {"text": "`app/coursework/page.tsx:325` calls `POST /api/coursework/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b541fcecfaf2e62", "name": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/page.tsx:344)", "shortDescription": {"text": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/page.tsx:344)"}, "fullDescription": {"text": "`app/coursework/page.tsx:344` calls `DELETE /api/coursework/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-106a1ca1ae3304e8", "name": "Dangling fetch: GET /api/learners (app/coursework/[slug]/page.tsx:186)", "shortDescription": {"text": "Dangling fetch: GET /api/learners (app/coursework/[slug]/page.tsx:186)"}, "fullDescription": {"text": "`app/coursework/[slug]/page.tsx:186` calls `GET /api/learners` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/learners`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a11aff4aa704fecc", "name": "Dangling fetch: GET /api/coursework (app/coursework/[slug]/page.tsx:187)", "shortDescription": {"text": "Dangling fetch: GET /api/coursework (app/coursework/[slug]/page.tsx:187)"}, "fullDescription": {"text": "`app/coursework/[slug]/page.tsx:187` calls `GET /api/coursework` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7913acb44b35d5ed", "name": "Dangling fetch: POST /api/learners (app/coursework/[slug]/page.tsx:219)", "shortDescription": {"text": "Dangling fetch: POST /api/learners (app/coursework/[slug]/page.tsx:219)"}, "fullDescription": {"text": "`app/coursework/[slug]/page.tsx:219` calls `POST /api/learners` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/learners`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0e4049909839dd2", "name": "Dangling fetch: POST /api/coursework/upload (app/coursework/[slug]/page.tsx:249)", "shortDescription": {"text": "Dangling fetch: POST /api/coursework/upload (app/coursework/[slug]/page.tsx:249)"}, "fullDescription": {"text": "`app/coursework/[slug]/page.tsx:249` calls `POST /api/coursework/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d78c0ff8118a3ae", "name": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/[slug]/page.tsx:264)", "shortDescription": {"text": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/[slug]/page.tsx:264)"}, "fullDescription": {"text": "`app/coursework/[slug]/page.tsx:264` calls `DELETE /api/coursework/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/coursework/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a478c5c78a5ee99c", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/page.tsx:41)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/page.tsx:41)"}, "fullDescription": {"text": "`app/applications/[id]/page.tsx:41` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05d0f49e6332edfb", "name": "Dangling fetch: GET /api/applications/${app.id}/typeform-url (app/applications/[id]/page.tsx:58)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${app.id}/typeform-url (app/applications/[id]/page.tsx:58)"}, "fullDescription": {"text": "`app/applications/[id]/page.tsx:58` calls `GET /api/applications/${app.id}/typeform-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/typeform-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e3da1366fc49c29", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/company/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/company/page.tsx:67)"}, "fullDescription": {"text": "`app/applications/[id]/company/page.tsx:67` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec8e2abe802a9120", "name": "Dangling fetch: GET /api/applications/${params.id}/company (app/applications/[id]/company/page.tsx:80)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id}/company (app/applications/[id]/company/page.tsx:80)"}, "fullDescription": {"text": "`app/applications/[id]/company/page.tsx:80` calls `GET /api/applications/${params.id}/company` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/company`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd89fadc3908722b", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/exercises/page.tsx:36)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/exercises/page.tsx:36)"}, "fullDescription": {"text": "`app/applications/[id]/exercises/page.tsx:36` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d46208b46b18c5d", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/interviewers/page.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/interviewers/page.tsx:37)"}, "fullDescription": {"text": "`app/applications/[id]/interviewers/page.tsx:37` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f81eda1ccd5366f", "name": "Dangling fetch: PATCH /api/applications/${app.slug} (app/applications/[id]/interviewers/page.tsx:86)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (app/applications/[id]/interviewers/page.tsx:86)"}, "fullDescription": {"text": "`app/applications/[id]/interviewers/page.tsx:86` calls `PATCH /api/applications/${app.slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8244ef735cfcce26", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/page.tsx:379)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/page.tsx:379)"}, "fullDescription": {"text": "`app/applications/[id]/prep/page.tsx:379` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b586c582e9c3d43c", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/memorize/page.tsx:45)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/memorize/page.tsx:45)"}, "fullDescription": {"text": "`app/applications/[id]/prep/memorize/page.tsx:45` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc7df17a0fd88e35", "name": "Dangling fetch: GET /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:53)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:53)"}, "fullDescription": {"text": "`app/applications/[id]/prep/memorize/page.tsx:53` calls `GET /api/applications/${params.id}/memorize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/memorize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dffd7ef43672396", "name": "Dangling fetch: POST /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:113)", "shortDescription": {"text": "Dangling fetch: POST /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:113)"}, "fullDescription": {"text": "`app/applications/[id]/prep/memorize/page.tsx:113` calls `POST /api/applications/${params.id}/memorize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>/memorize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf954ed102b656c2", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/notes/page.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/notes/page.tsx:37)"}, "fullDescription": {"text": "`app/applications/[id]/notes/page.tsx:37` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa1e0f39d4546819", "name": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/debrief/page.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/debrief/page.tsx:37)"}, "fullDescription": {"text": "`app/applications/[id]/debrief/page.tsx:37` calls `GET /api/applications/${params.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f90a132d79945e83", "name": "Dangling fetch: POST /api/applications (app/applications/(owner)/_pipeline/AddApplicationDialog.tsx:39)", "shortDescription": {"text": "Dangling fetch: POST /api/applications (app/applications/(owner)/_pipeline/AddApplicationDialog.tsx:39)"}, "fullDescription": {"text": "`app/applications/(owner)/_pipeline/AddApplicationDialog.tsx:39` calls `POST /api/applications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d41d3b69d27fddbf", "name": "Dangling fetch: GET /api/applications (app/applications/(owner)/(pipeline)/layout.tsx:31)", "shortDescription": {"text": "Dangling fetch: GET /api/applications (app/applications/(owner)/(pipeline)/layout.tsx:31)"}, "fullDescription": {"text": "`app/applications/(owner)/(pipeline)/layout.tsx:31` calls `GET /api/applications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbe87dee88edff78", "name": "Dangling fetch: PATCH /api/applications/${slug} (app/applications/(owner)/(pipeline)/layout.tsx:39)", "shortDescription": {"text": "Dangling fetch: PATCH /api/applications/${slug} (app/applications/(owner)/(pipeline)/layout.tsx:39)"}, "fullDescription": {"text": "`app/applications/(owner)/(pipeline)/layout.tsx:39` calls `PATCH /api/applications/${slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/applications/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66667768af1e6ae7", "name": "Dangling fetch: POST /api/highlight-mark (app/agentic-sales/text/HighlightLayer.tsx:307)", "shortDescription": {"text": "Dangling fetch: POST /api/highlight-mark (app/agentic-sales/text/HighlightLayer.tsx:307)"}, "fullDescription": {"text": "`app/agentic-sales/text/HighlightLayer.tsx:307` calls `POST /api/highlight-mark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/highlight-mark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bb3714794b14146", "name": "Unused endpoint: POST /query", "shortDescription": {"text": "Unused endpoint: POST /query"}, "fullDescription": {"text": "`services/llamaindex/rag_service/routes.py` declares `POST /query` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b17018e28b345019", "name": "Unused endpoint: POST /tutor/card", "shortDescription": {"text": "Unused endpoint: POST /tutor/card"}, "fullDescription": {"text": "`services/llamaindex/rag_service/routes.py` declares `POST /tutor/card` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cff8da5fbc19c76d", "name": "Unused endpoint: POST /chat", "shortDescription": {"text": "Unused endpoint: POST /chat"}, "fullDescription": {"text": "`services/llamaindex/rag_service/routes.py` declares `POST /chat` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1353c08634cc01ae", "name": "Unused endpoint: USE /:id/job-url", "shortDescription": {"text": "Unused endpoint: USE /:id/job-url"}, "fullDescription": {"text": "`app/api/applications/[id]/job-url/route.ts` declares `USE /:id/job-url` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2c11de6962751be", "name": "Unused endpoint: PUT /:id/job-url", "shortDescription": {"text": "Unused endpoint: PUT /:id/job-url"}, "fullDescription": {"text": "`app/api/applications/[id]/job-url/route.ts` declares `PUT /:id/job-url` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d1c3f9c66075ec2a", "name": "Unused endpoint: USE /:id/notes/*", "shortDescription": {"text": "Unused endpoint: USE /:id/notes/*"}, "fullDescription": {"text": "`app/api/applications/[id]/notes/[[...path]]/route.ts` declares `USE /:id/notes/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90ed53abc321a0f7", "name": "Unused endpoint: GET /:id/notes", "shortDescription": {"text": "Unused endpoint: GET /:id/notes"}, "fullDescription": {"text": "`app/api/applications/[id]/notes/[[...path]]/route.ts` declares `GET /:id/notes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb2fab94a4e5e8be", "name": "Unused endpoint: POST /:id/notes", "shortDescription": {"text": "Unused endpoint: POST /:id/notes"}, "fullDescription": {"text": "`app/api/applications/[id]/notes/[[...path]]/route.ts` declares `POST /:id/notes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83b0ca30f66a4c47", "name": "Unused endpoint: PATCH /:id/notes/:noteId", "shortDescription": {"text": "Unused endpoint: PATCH /:id/notes/:noteId"}, "fullDescription": {"text": "`app/api/applications/[id]/notes/[[...path]]/route.ts` declares `PATCH /:id/notes/:noteId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a933d5a992b8ef6", "name": "Unused endpoint: DELETE /:id/notes/:noteId", "shortDescription": {"text": "Unused endpoint: DELETE /:id/notes/:noteId"}, "fullDescription": {"text": "`app/api/applications/[id]/notes/[[...path]]/route.ts` declares `DELETE /:id/notes/:noteId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22041"}, "properties": {"repository": "v9ai/ai-engineer-roadmap", "repoUrl": "https://github.com/v9ai/ai-engineer-roadmap", "branch": "main"}, "results": [{"ruleId": "scanner-cda3e2d683ce3a73", "level": "note", "message": {"text": "Possibly dead Python function: semantic_splitter"}, "properties": {"repobilityId": "069bab3b8b1a61b7", "scanner": "scanner-primary", "fingerprint": "cda3e2d683ce3a73", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/techniques/semantic_chunking.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a699c6c0ab251d69", "level": "note", "message": {"text": "Possibly dead Python function: build_evaluators"}, "properties": {"repobilityId": "0990d404e4fbd520", "scanner": "scanner-primary", "fingerprint": "a699c6c0ab251d69", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/techniques/evaluation.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf91b39612d7f65c", "level": "note", "message": {"text": "Possibly dead Python function: load_model"}, "properties": {"repobilityId": "3af016dcdfc8772d", "scanner": "scanner-primary", "fingerprint": "cf91b39612d7f65c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/eval/deepeval_judge.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9bdef17df22d223", "level": "note", "message": {"text": "Possibly dead Python function: a_generate"}, "properties": {"repobilityId": "699c2c53bca86da0", "scanner": "scanner-primary", "fingerprint": "b9bdef17df22d223", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/eval/deepeval_judge.py:81"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac44ff1e55017b4d", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "ac44ff1e55017b4d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/ground.py:209"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4dbf6127f9a63a28", "level": "note", "message": {"text": "Possibly dead Python function: generate_mnemonic"}, "properties": {"repobilityId": "ab76df7e21868994", "scanner": "scanner-primary", "fingerprint": "4dbf6127f9a63a28", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/mnemonics.py:1040"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f7e2ac12cb0af00b", "level": "note", "message": {"text": "Possibly dead Python function: mnemonic_hook"}, "properties": {"repobilityId": "68a47400bd446174", "scanner": "scanner-primary", "fingerprint": "f7e2ac12cb0af00b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/mnemonics.py:1058"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51ecfcd8e0792a38", "level": "note", "message": {"text": "Possibly dead Python function: export_all"}, "properties": {"repobilityId": "31d4ca91d5857ec2", "scanner": "scanner-primary", "fingerprint": "51ecfcd8e0792a38", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/memory_corpus_export.py:346"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-572f681741363e1c", "level": "note", "message": {"text": "Possibly dead Python function: elaborative_prompt"}, "properties": {"repobilityId": "0b9fac19fdfd721a", "scanner": "scanner-primary", "fingerprint": "572f681741363e1c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/memory_common.py:412"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89863b3e58715364", "level": "note", "message": {"text": "Possibly dead Python function: public_url"}, "properties": {"repobilityId": "adcf2c9130cd5d32", "scanner": "scanner-primary", "fingerprint": "89863b3e58715364", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/audio/r2.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50c080edeb4c90f8", "level": "note", "message": {"text": "Possibly dead Python function: put_bytes"}, "properties": {"repobilityId": "17f5949a74c7ff06", "scanner": "scanner-primary", "fingerprint": "50c080edeb4c90f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/audio/r2.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-30934ee8a96c1944", "level": "note", "message": {"text": "Possibly dead Python function: wav_to_mp3"}, "properties": {"repobilityId": "06ad108f7256883e", "scanner": "scanner-primary", "fingerprint": "30934ee8a96c1944", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/audio/tts.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9116225c4f2b43f", "level": "note", "message": {"text": "Possibly dead Python function: progress"}, "properties": {"repobilityId": "97c07eb024e59ee8", "scanner": "scanner-primary", "fingerprint": "a9116225c4f2b43f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/audio/tts.py:166"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-629f3d65691922b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-purge-roadmap-decks.ts:40"}, "properties": {"repobilityId": "314b2e9923f75f1a", "scanner": "scanner-primary", "fingerprint": "629f3d65691922b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d66aa58b3e54a3cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-lesson-memorize.ts:484"}, "properties": {"repobilityId": "a38c7da613468f38", "scanner": "scanner-primary", "fingerprint": "d66aa58b3e54a3cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d56a7901553aae3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-udemy-courses.ts:698"}, "properties": {"repobilityId": "12d4b22c3a675ed4", "scanner": "scanner-primary", "fingerprint": "1d56a7901553aae3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d61cde0208a6bd46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/email-status.ts:69"}, "properties": {"repobilityId": "4ef4b1d8752b89a7", "scanner": "scanner-primary", "fingerprint": "d61cde0208a6bd46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85c861dc61f3adb4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-concepts.ts:177"}, "properties": {"repobilityId": "b4545f6b195dde4e", "scanner": "scanner-primary", "fingerprint": "85c861dc61f3adb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fbc1695894bc2ab4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed.ts:87"}, "properties": {"repobilityId": "6b45b8d4fff61a2c", "scanner": "scanner-primary", "fingerprint": "fbc1695894bc2ab4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d7f09fd438e07249", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/scrape-deeplearning-course.ts:208"}, "properties": {"repobilityId": "b7a7979d8c87924a", "scanner": "scanner-primary", "fingerprint": "d7f09fd438e07249", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61af89e88107c848", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-agentic-sales-memorize.ts:473"}, "properties": {"repobilityId": "c6fec8bbf00cf52d", "scanner": "scanner-primary", "fingerprint": "61af89e88107c848", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d23ebeb8b4e5dbba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/apply-d1-ddl.ts:38"}, "properties": {"repobilityId": "b78a9b429684ba86", "scanner": "scanner-primary", "fingerprint": "d23ebeb8b4e5dbba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b0e1e1f0bb196467", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-ampcus-cards.ts:2273"}, "properties": {"repobilityId": "a4f4fbcb3e046a3f", "scanner": "scanner-primary", "fingerprint": "b0e1e1f0bb196467", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97ef23546a94c528", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/eval-scheduler.ts:367"}, "properties": {"repobilityId": "729ef8dc7a8ba1a4", "scanner": "scanner-primary", "fingerprint": "97ef23546a94c528", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d960238f55910626", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-app-prep-seed.ts:67"}, "properties": {"repobilityId": "d897e3e7ae81116e", "scanner": "scanner-primary", "fingerprint": "d960238f55910626", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-474eacd0e8d87474", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-invite.ts:74"}, "properties": {"repobilityId": "d26145223ca74b33", "scanner": "scanner-primary", "fingerprint": "474eacd0e8d87474", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8526a8804a584e5a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-send-email.ts:41"}, "properties": {"repobilityId": "65e2fcdde85d2fad", "scanner": "scanner-primary", "fingerprint": "8526a8804a584e5a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-021a112e7d6965ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-css-concepts.ts:14"}, "properties": {"repobilityId": "fb8f92df9d14a27c", "scanner": "scanner-primary", "fingerprint": "021a112e7d6965ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8359c1e26e65c09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-memorize-sql.ts:161"}, "properties": {"repobilityId": "50fdb24fdc6487e3", "scanner": "scanner-primary", "fingerprint": "d8359c1e26e65c09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-266bc6aab0314262", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gen-roadmap-meta.ts:47"}, "properties": {"repobilityId": "eb134e8330c436a5", "scanner": "scanner-primary", "fingerprint": "266bc6aab0314262", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7464799ce0ff24b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/send-andrew-ng.ts:72"}, "properties": {"repobilityId": "d810e5946d1f00c6", "scanner": "scanner-primary", "fingerprint": "f7464799ce0ff24b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94fe137ed399c24d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide-tabs.tsx:41"}, "properties": {"repobilityId": "bf12051b5dfcbcb7", "scanner": "scanner-primary", "fingerprint": "94fe137ed399c24d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ff632f2055b6aecb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/auth-status-badge.tsx:26"}, "properties": {"repobilityId": "93519bc80b9bd976", "scanner": "scanner-primary", "fingerprint": "ff632f2055b6aecb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-77adf3e0ab0a1fea", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/agentic-sales-guide-nav.tsx:98"}, "properties": {"repobilityId": "59b54855b33f41f0", "scanner": "scanner-primary", "fingerprint": "77adf3e0ab0a1fea", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a4cbcb7733e2b13e", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 components/xyflow-direct/index.tsx:54"}, "properties": {"repobilityId": "b566e8cfc9269e2b", "scanner": "scanner-primary", "fingerprint": "a4cbcb7733e2b13e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-8bf65eef4f0e6675", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/guide/GuideTextPage.tsx:30"}, "properties": {"repobilityId": "ff6f2cecb364c805", "scanner": "scanner-primary", "fingerprint": "8bf65eef4f0e6675", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3b98ed59e270f8ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/audio/[...path]/route.ts:195"}, "properties": {"repobilityId": "4124a978ceee20f7", "scanner": "scanner-primary", "fingerprint": "3b98ed59e270f8ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1880de3f605a0209", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/glossary/page.tsx:30"}, "properties": {"repobilityId": "59fb4f83fb8cbc26", "scanner": "scanner-primary", "fingerprint": "1880de3f605a0209", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ad7f7b41f5b7a1d2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/page.tsx:105"}, "properties": {"repobilityId": "3bd68918318988ee", "scanner": "scanner-primary", "fingerprint": "ad7f7b41f5b7a1d2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2bda869515d6ed27", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/learning-science/[slug]/page.tsx:156"}, "properties": {"repobilityId": "9dd17abbafaf3c36", "scanner": "scanner-primary", "fingerprint": "2bda869515d6ed27", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a3c833c741253699", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/page.tsx:42"}, "properties": {"repobilityId": "238b50fd68e7c7f9", "scanner": "scanner-primary", "fingerprint": "a3c833c741253699", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9ba6723571719846", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langsmith/audio/page.tsx:51"}, "properties": {"repobilityId": "4cc998cd3d1a0446", "scanner": "scanner-primary", "fingerprint": "9ba6723571719846", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e877481cd34bef15", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/text/page.tsx:39"}, "properties": {"repobilityId": "056cba86fc72eecb", "scanner": "scanner-primary", "fingerprint": "e877481cd34bef15", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-45ddbebedb4f4bb2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/audio/page.tsx:40"}, "properties": {"repobilityId": "58ab3bdb8104b897", "scanner": "scanner-primary", "fingerprint": "45ddbebedb4f4bb2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-01f60b72a32a0fca", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/star/page.tsx:42"}, "properties": {"repobilityId": "af089a08d9b17bf6", "scanner": "scanner-primary", "fingerprint": "01f60b72a32a0fca", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e264c9326ca74a93", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/page.tsx:39"}, "properties": {"repobilityId": "e3961e42e95f2121", "scanner": "scanner-primary", "fingerprint": "e264c9326ca74a93", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e6258fbcb130b95e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/agents-workflows/audio/page.tsx:52"}, "properties": {"repobilityId": "17a5369326db07eb", "scanner": "scanner-primary", "fingerprint": "e6258fbcb130b95e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-379db8d0edbf598f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/first-principles/page.tsx:46"}, "properties": {"repobilityId": "a49a106a90ebb188", "scanner": "scanner-primary", "fingerprint": "379db8d0edbf598f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f6bdac6a8406284f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/agentic-sales/langgraph/page.tsx:67"}, "properties": {"repobilityId": "94a1a3485f5e47d9", "scanner": "scanner-primary", "fingerprint": "f6bdac6a8406284f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-386411da5719fba1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/experience.ts:40"}, "properties": {"repobilityId": "2f7bab579c51b72f", "scanner": "scanner-primary", "fingerprint": "386411da5719fba1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-763f9fa1af305353", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 crates/udemy/scripts/scrape-udemy.ts:427"}, "properties": {"repobilityId": "2c21c0a287fd2742", "scanner": "scanner-primary", "fingerprint": "763f9fa1af305353", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c808583a705c6852", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in Makefile:1717"}, "properties": {"repobilityId": "a5126c2ede2ffece", "scanner": "scanner-primary", "fingerprint": "c808583a705c6852", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Makefile"}, "region": {"startLine": 1717}}}]}, {"ruleId": "scanner-3e0d28cdb136fdc8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/codemod-radix-to-shadcn.mjs:9"}, "properties": {"repobilityId": "ad648207a360a1f7", "scanner": "scanner-primary", "fingerprint": "3e0d28cdb136fdc8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/codemod-radix-to-shadcn.mjs"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-cecbda763557cf78", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/generate-ampcus-cards.ts:1040"}, "properties": {"repobilityId": "2b63c0381632ca7e", "scanner": "scanner-primary", "fingerprint": "cecbda763557cf78", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate-ampcus-cards.ts"}, "region": {"startLine": 1040}}}]}, {"ruleId": "scanner-db889999582f4f2c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eval-scheduler.ts:55"}, "properties": {"repobilityId": "01e0403691dbd662", "scanner": "scanner-primary", "fingerprint": "db889999582f4f2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eval-scheduler.ts"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-abb9ec4df139f734", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-audio-meta.mjs:55"}, "properties": {"repobilityId": "02549bcf4b8c672c", "scanner": "scanner-primary", "fingerprint": "abb9ec4df139f734", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-audio-meta.mjs"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-940991874a8781f9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/add-application.mjs:52"}, "properties": {"repobilityId": "c2ed69fd492648f5", "scanner": "scanner-primary", "fingerprint": "940991874a8781f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/add-application.mjs"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-bcd33bf5e941d6dc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/guide-tabs.tsx:41"}, "properties": {"repobilityId": "ca8d4c2e2d049972", "scanner": "scanner-primary", "fingerprint": "bcd33bf5e941d6dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/guide-tabs.tsx"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-964071fab9895cd3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/auth-status-badge.tsx:26"}, "properties": {"repobilityId": "b99ba9ad141f607f", "scanner": "scanner-primary", "fingerprint": "964071fab9895cd3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/auth-status-badge.tsx"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-e348a3b922bbe9ec", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/agentic-sales-guide-nav.tsx:98"}, "properties": {"repobilityId": "2a53607585f813b5", "scanner": "scanner-primary", "fingerprint": "e348a3b922bbe9ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/agentic-sales-guide-nav.tsx"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-7f7f86d78a8158dd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/guide/GuideTextPage.tsx:30"}, "properties": {"repobilityId": "be3d76cff45c5a18", "scanner": "scanner-primary", "fingerprint": "7f7f86d78a8158dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/guide/GuideTextPage.tsx"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-0e0c9e88f36b6234", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/glossary/page.tsx:30"}, "properties": {"repobilityId": "0e805abd29d9fdbe", "scanner": "scanner-primary", "fingerprint": "0e0c9e88f36b6234", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/glossary/page.tsx"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-f797d6582ec41e66", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/page.tsx:105"}, "properties": {"repobilityId": "9ff22d6a4612fc5b", "scanner": "scanner-primary", "fingerprint": "f797d6582ec41e66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/learning-science/page.tsx"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-d1e8cca077f3c4f8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/learning-science/[slug]/page.tsx:156"}, "properties": {"repobilityId": "9ab68463be9e1ffe", "scanner": "scanner-primary", "fingerprint": "d1e8cca077f3c4f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/learning-science/[slug]/page.tsx"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-9f4f342f0ce996d7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/page.tsx:42"}, "properties": {"repobilityId": "9c0aae3d6f08199e", "scanner": "scanner-primary", "fingerprint": "9f4f342f0ce996d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/langsmith/page.tsx"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-9cdc0864f87bcdfb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langsmith/audio/page.tsx:51"}, "properties": {"repobilityId": "5f217fd6d7f392b7", "scanner": "scanner-primary", "fingerprint": "9cdc0864f87bcdfb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/langsmith/audio/page.tsx"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-bc84fdfeef1c0c64", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/text/page.tsx:39"}, "properties": {"repobilityId": "014e5092b719b2ce", "scanner": "scanner-primary", "fingerprint": "bc84fdfeef1c0c64", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/text/page.tsx"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-4a5ef095b75bfa92", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/audio/page.tsx:40"}, "properties": {"repobilityId": "86bb480bab3b8842", "scanner": "scanner-primary", "fingerprint": "4a5ef095b75bfa92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/audio/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-51ec5f2680aa26de", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/star/page.tsx:42"}, "properties": {"repobilityId": "e582d202f43b2da1", "scanner": "scanner-primary", "fingerprint": "51ec5f2680aa26de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/star/page.tsx"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-9672ef7bb97b9afc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/page.tsx:39"}, "properties": {"repobilityId": "9e17825a3c282fa2", "scanner": "scanner-primary", "fingerprint": "9672ef7bb97b9afc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/agents-workflows/page.tsx"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-b00f12d52e556f41", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/agents-workflows/audio/page.tsx:52"}, "properties": {"repobilityId": "8110e388bdcafcbe", "scanner": "scanner-primary", "fingerprint": "b00f12d52e556f41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/agents-workflows/audio/page.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-87ec6d54e6d766ff", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/first-principles/page.tsx:46"}, "properties": {"repobilityId": "d33af0964c112635", "scanner": "scanner-primary", "fingerprint": "87ec6d54e6d766ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/first-principles/page.tsx"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-d9a1a91499971ad0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/agentic-sales/langgraph/page.tsx:67"}, "properties": {"repobilityId": "36f29426734a8e71", "scanner": "scanner-primary", "fingerprint": "d9a1a91499971ad0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agentic-sales/langgraph/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-4093aaa9c69bdeb2", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in lib/articles.ts:264"}, "properties": {"repobilityId": "be5ba2944be870dd", "scanner": "scanner-primary", "fingerprint": "4093aaa9c69bdeb2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/articles.ts"}, "region": {"startLine": 264}}}]}, {"ruleId": "scanner-97ffbb4270df2d2e", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in lib/html-sanitizer.ts:19"}, "properties": {"repobilityId": "b385b581362b5657", "scanner": "scanner-primary", "fingerprint": "97ffbb4270df2d2e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/html-sanitizer.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ada933b6dc5c62dd", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in lib/problems/runner.ts:47"}, "properties": {"repobilityId": "90a6b9e23e34c922", "scanner": "scanner-primary", "fingerprint": "ada933b6dc5c62dd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/problems/runner.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-c08a4e363524a02f", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in services/llamaindex/rag_service/eval/audio_source_eval.py:564"}, "properties": {"repobilityId": "377f1f94207596db", "scanner": "scanner-primary", "fingerprint": "c08a4e363524a02f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/eval/audio_source_eval.py"}, "region": {"startLine": 564}}}]}, {"ruleId": "scanner-a4cf15338f75f3cc", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in roadmap-kg/kg/triage_compat.py:60"}, "properties": {"repobilityId": "0435d8ddeb605a06", "scanner": "scanner-primary", "fingerprint": "a4cf15338f75f3cc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/triage_compat.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-afd824eca109563f", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in roadmap-kg/kg/memory_retrieval_eval.py:305"}, "properties": {"repobilityId": "5b6d0ad871fa7e58", "scanner": "scanner-primary", "fingerprint": "afd824eca109563f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/kg/memory_retrieval_eval.py"}, "region": {"startLine": 305}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-6719249cd98a587e", "level": "note", "message": {"text": "Very large file: scripts/generate-ampcus-cards.ts (2334 lines)"}, "properties": {"repobilityId": "ba0b83281fc1d549", "scanner": "scanner-primary", "fingerprint": "6719249cd98a587e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e53d4fa152d25db4", "level": "note", "message": {"text": "Very large file: components/audio-player.tsx (1536 lines)"}, "properties": {"repobilityId": "1b0084eb36f96ba4", "scanner": "scanner-primary", "fingerprint": "e53d4fa152d25db4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-898c72dfbbe58db3", "level": "note", "message": {"text": "Very large file: app/langgraph/lead-gen/sd/_content.ts (1525 lines)"}, "properties": {"repobilityId": "65821734d25d2172", "scanner": "scanner-primary", "fingerprint": "898c72dfbbe58db3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fa3d64cfc84ef5d", "level": "note", "message": {"text": "Very large file: lib/css-properties.ts (2482 lines)"}, "properties": {"repobilityId": "7af38f08d0ce6a8a", "scanner": "scanner-primary", "fingerprint": "4fa3d64cfc84ef5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5f6237da7af16e3c", "level": "note", "message": {"text": "Very large file: crates/ml/src/audio_guide/gate.rs (1809 lines)"}, "properties": {"repobilityId": "407cf8e26769ea1a", "scanner": "scanner-primary", "fingerprint": "5f6237da7af16e3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-714a1eb1b830eb3c", "level": "note", "message": {"text": "Very large file: crates/ml/src/audio_guide/markdown.rs (1687 lines)"}, "properties": {"repobilityId": "944bcfe70636fc90", "scanner": "scanner-primary", "fingerprint": "714a1eb1b830eb3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0469e74ee3309bbf", "level": "note", "message": {"text": "Very large file: crates/ml/src/audio_guide/tts_quality.rs (1759 lines)"}, "properties": {"repobilityId": "a2f8b458bc1994ea", "scanner": "scanner-primary", "fingerprint": "0469e74ee3309bbf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60dec5269eabae24", "level": "note", "message": {"text": "Very large file: crates/ml/src/udemy/coursera.rs (1408 lines)"}, "properties": {"repobilityId": "efe6c7fb10c52c7a", "scanner": "scanner-primary", "fingerprint": "60dec5269eabae24", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4be2e99000ccf523", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/audio_gate.py (1235 lines)"}, "properties": {"repobilityId": "ea0c640e37ac4f45", "scanner": "scanner-primary", "fingerprint": "4be2e99000ccf523", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-121fe70b14bd6243", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/ground.py (2405 lines)"}, "properties": {"repobilityId": "f3849b05dff14436", "scanner": "scanner-primary", "fingerprint": "121fe70b14bd6243", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0099a6d9cafca47", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/enhance_inline_memory.py (1564 lines)"}, "properties": {"repobilityId": "b544db578b460e29", "scanner": "scanner-primary", "fingerprint": "a0099a6d9cafca47", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0926609e7489162c", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/mnemonics.py (1299 lines)"}, "properties": {"repobilityId": "e539a224e5e8c725", "scanner": "scanner-primary", "fingerprint": "0926609e7489162c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89f91566538ee6b9", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/audio_memory.py (1665 lines)"}, "properties": {"repobilityId": "eeeb691c32270cc0", "scanner": "scanner-primary", "fingerprint": "89f91566538ee6b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d940e57d3e940a83", "level": "note", "message": {"text": "Very large file: roadmap-kg/kg/mnemonic_gate_core.py (1009 lines)"}, "properties": {"repobilityId": "bea641750a5d03a8", "scanner": "scanner-primary", "fingerprint": "d940e57d3e940a83", "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": "9cb5e34e00c5d3c3", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b3ed68815bca2f8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "properties": {"repobilityId": "7edae0550c126386", "scanner": "scanner-primary", "fingerprint": "b3ed68815bca2f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c161bdbedd6b8851", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: crates/udemy/scripts/package.json"}, "properties": {"repobilityId": "cbb63261bf9ba473", "scanner": "scanner-primary", "fingerprint": "c161bdbedd6b8851", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/udemy/scripts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "4785251cfb1ba100", "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": "4323e5cb49b96692", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "1815cbea8c185839", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "5b6ce69690cc7a66", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "6ed9416f3223d110", "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": "37eec2b0cf4fbf40", "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": "b4b1188280fbeaac", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-beacb4349ec8d99f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_04_article-loop-convergence.md"}, "properties": {"repobilityId": "e148c6e9de46a6aa", "scanner": "scanner-primary", "fingerprint": "beacb4349ec8d99f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/coordination/directions/direction_04_article-loop-convergence.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-027c7fbefe1b0e1c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/coordination/directions/direction_03_kg-edges-cycles-paths.md"}, "properties": {"repobilityId": "5315e8d561b7dddd", "scanner": "scanner-primary", "fingerprint": "027c7fbefe1b0e1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/coordination/directions/direction_03_kg-edges-cycles-paths.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-66d547740b2abb03", "level": "none", "message": {"text": "Commented-code block (5 lines) in next.config.ts:5"}, "properties": {"repobilityId": "a953f441f7655478", "scanner": "scanner-primary", "fingerprint": "66d547740b2abb03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01d29df91900394b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-lesson-memorize.ts:228"}, "properties": {"repobilityId": "91a0215d4a9ddb09", "scanner": "scanner-primary", "fingerprint": "01d29df91900394b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d45633c57fb17038", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-lesson-memorize.ts:252"}, "properties": {"repobilityId": "4d72475a6d203988", "scanner": "scanner-primary", "fingerprint": "d45633c57fb17038", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0a2b55636d7e93d", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/scope-neon-auth-css.mjs:8"}, "properties": {"repobilityId": "98e7e204c95619e4", "scanner": "scanner-primary", "fingerprint": "f0a2b55636d7e93d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bc2f970adade1cf", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/merge-reading.mjs:6"}, "properties": {"repobilityId": "d5900617ce26797a", "scanner": "scanner-primary", "fingerprint": "8bc2f970adade1cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22ee3c5f13e1616f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gate-content.mjs:2"}, "properties": {"repobilityId": "ea1351eaa1d82237", "scanner": "scanner-primary", "fingerprint": "22ee3c5f13e1616f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1743efc335eef852", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build-audio-meta-langgraph.mjs:2"}, "properties": {"repobilityId": "f4a5f3746ff0b15e", "scanner": "scanner-primary", "fingerprint": "1743efc335eef852", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35c0568da7ca46f0", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/gen-agentic-sales-memorize.ts:35"}, "properties": {"repobilityId": "9bdfa15f5425b16c", "scanner": "scanner-primary", "fingerprint": "35c0568da7ca46f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afded42a4500a24c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-agentic-sales-memorize.ts:288"}, "properties": {"repobilityId": "108597afa436c123", "scanner": "scanner-primary", "fingerprint": "afded42a4500a24c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c63dbe157b48d24f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/generate-ampcus-cards.ts:244"}, "properties": {"repobilityId": "a0ae4263d9d03ffa", "scanner": "scanner-primary", "fingerprint": "c63dbe157b48d24f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e32927857d92b90d", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/build-postgres-interview.mjs:5"}, "properties": {"repobilityId": "fb46093c38cb50b3", "scanner": "scanner-primary", "fingerprint": "e32927857d92b90d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdc795246088f62b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/eval-scheduler.ts:73"}, "properties": {"repobilityId": "1132dc2861ec4527", "scanner": "scanner-primary", "fingerprint": "fdc795246088f62b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87aab7bc1a3f3d3b", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/sanitize-spoken.mjs:2"}, "properties": {"repobilityId": "ad033995a6d19970", "scanner": "scanner-primary", "fingerprint": "87aab7bc1a3f3d3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7776672dffcd393d", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-audio-meta.mjs:253"}, "properties": {"repobilityId": "e2c386164c011c74", "scanner": "scanner-primary", "fingerprint": "7776672dffcd393d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f349196aa807b04", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/sync-agentic-sales.mjs:5"}, "properties": {"repobilityId": "fb95d3ed2491da33", "scanner": "scanner-primary", "fingerprint": "3f349196aa807b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d5259d33530dc65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/prep-enhance.mjs:17"}, "properties": {"repobilityId": "79dbd7cc9b44dd04", "scanner": "scanner-primary", "fingerprint": "0d5259d33530dc65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd8ebae925110b6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build-postgres-exercises-audio.mjs:11"}, "properties": {"repobilityId": "663a4db21a002a15", "scanner": "scanner-primary", "fingerprint": "bd8ebae925110b6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc9f45991f62c21c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/push-prep-md-to-d1.mjs:27"}, "properties": {"repobilityId": "24e02c882e5a12ad", "scanner": "scanner-primary", "fingerprint": "cc9f45991f62c21c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-491f850f769f3c62", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/add-application.mjs:15"}, "properties": {"repobilityId": "4c86802a96d933e3", "scanner": "scanner-primary", "fingerprint": "491f850f769f3c62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6eb5559cc6d9525d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-application.mjs:126"}, "properties": {"repobilityId": "8f8db84849de024b", "scanner": "scanner-primary", "fingerprint": "6eb5559cc6d9525d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4541809abc8cee48", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gen-content-langgraph.mjs:62"}, "properties": {"repobilityId": "8712b8a0e25caaad", "scanner": "scanner-primary", "fingerprint": "4541809abc8cee48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63efceae0f9201d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/story-deep-dives.tsx:3"}, "properties": {"repobilityId": "a9910fea46887b48", "scanner": "scanner-primary", "fingerprint": "63efceae0f9201d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80eac6deb12d75f2", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/annotated-sql.tsx:112"}, "properties": {"repobilityId": "3d066242109f49ad", "scanner": "scanner-primary", "fingerprint": "80eac6deb12d75f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a70d785d7c6fb076", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/explain-popover.tsx:5"}, "properties": {"repobilityId": "2e1217c76376bf10", "scanner": "scanner-primary", "fingerprint": "a70d785d7c6fb076", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adb264e66bef2e59", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/lesson-explain.tsx:5"}, "properties": {"repobilityId": "2e60da3b24d1542b", "scanner": "scanner-primary", "fingerprint": "adb264e66bef2e59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ead34aca2e83f69", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/guide-tabs.tsx:3"}, "properties": {"repobilityId": "ecb3c2d43f5bfedc", "scanner": "scanner-primary", "fingerprint": "1ead34aca2e83f69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d68e22d1040cdfe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/audio-player.tsx:139"}, "properties": {"repobilityId": "55ce40fc2678cb27", "scanner": "scanner-primary", "fingerprint": "d68e22d1040cdfe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f4f21908863e9aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/markdown-prose.tsx:22"}, "properties": {"repobilityId": "4bc97404d6f45d24", "scanner": "scanner-primary", "fingerprint": "4f4f21908863e9aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d410bbed96667de", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/explain-actions.tsx:1"}, "properties": {"repobilityId": "9593a3a28936601c", "scanner": "scanner-primary", "fingerprint": "6d410bbed96667de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b994032f5a174997", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/sql-annotations-context.tsx:5"}, "properties": {"repobilityId": "893b1302829f5a30", "scanner": "scanner-primary", "fingerprint": "b994032f5a174997", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8728cce4e2982c4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/pillar-glossary.tsx:21"}, "properties": {"repobilityId": "31d43002b14947a4", "scanner": "scanner-primary", "fingerprint": "8728cce4e2982c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dd6982c56f6f47f", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/agentic-sales-transcript.tsx:15"}, "properties": {"repobilityId": "2ab81f252881dda0", "scanner": "scanner-primary", "fingerprint": "2dd6982c56f6f47f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a9ba06de0593a5d", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/agentic-sales-guide-nav.tsx:4"}, "properties": {"repobilityId": "82ffbc357b31bd1d", "scanner": "scanner-primary", "fingerprint": "5a9ba06de0593a5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04c5caab8883edd8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/memorize/InterleavedDrill.tsx:39"}, "properties": {"repobilityId": "5301c8f5c5c8d3d5", "scanner": "scanner-primary", "fingerprint": "04c5caab8883edd8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9fca6221018e28e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/problems/problem-workspace.tsx:89"}, "properties": {"repobilityId": "ef6fd42c865b14aa", "scanner": "scanner-primary", "fingerprint": "9fca6221018e28e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-615ef89108ddf691", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/guide/GuideExplain.tsx:5"}, "properties": {"repobilityId": "b6761bdb41d4a0ad", "scanner": "scanner-primary", "fingerprint": "615ef89108ddf691", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09f19d9a2a56b0c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/guide/GuideSubNav.tsx:4"}, "properties": {"repobilityId": "757c74938cf8eb97", "scanner": "scanner-primary", "fingerprint": "09f19d9a2a56b0c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b417cb8eaca375c", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/guide/guides.ts:1"}, "properties": {"repobilityId": "3e4a18076254c702", "scanner": "scanner-primary", "fingerprint": "8b417cb8eaca375c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-289c6a9783577ad9", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/guide/GuideTextPage.tsx:9"}, "properties": {"repobilityId": "81401b3eaca072c0", "scanner": "scanner-primary", "fingerprint": "289c6a9783577ad9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e9487b6f76c079f", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/guide/styles.ts:1"}, "properties": {"repobilityId": "755f177302eccbd8", "scanner": "scanner-primary", "fingerprint": "1e9487b6f76c079f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d25e27ba2f3a5db2", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/phase-hub/PhaseHub.tsx:44"}, "properties": {"repobilityId": "5186e6e3037ad12e", "scanner": "scanner-primary", "fingerprint": "d25e27ba2f3a5db2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c626d12d86739ffb", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/useSpeechQueue.ts:3"}, "properties": {"repobilityId": "3bbc6146a1bae5fd", "scanner": "scanner-primary", "fingerprint": "c626d12d86739ffb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e6747a64fbba687", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/HubAudioProvider.tsx:3"}, "properties": {"repobilityId": "06dd8ab83417f6d7", "scanner": "scanner-primary", "fingerprint": "8e6747a64fbba687", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e99aa1563696b05e", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/phase-hub/HubAudio/PhasePlayAll.tsx:3"}, "properties": {"repobilityId": "7e51c0675284c2cb", "scanner": "scanner-primary", "fingerprint": "e99aa1563696b05e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d02cf41675d61766", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/phase-hub/LessonCard/ListenButton.tsx:3"}, "properties": {"repobilityId": "6a0ba7b3c2cc8963", "scanner": "scanner-primary", "fingerprint": "d02cf41675d61766", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85b508c90d2bafb2", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/app-detail/PrepDeepDiveAudioLink.tsx:7"}, "properties": {"repobilityId": "99d9df8a8527acc9", "scanner": "scanner-primary", "fingerprint": "85b508c90d2bafb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcd8aca88b404bc8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/JobDescriptionTab.tsx:28"}, "properties": {"repobilityId": "dc66caecca376e97", "scanner": "scanner-primary", "fingerprint": "bcd8aca88b404bc8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6b8e9806eeb025b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app-detail/ApplicationHeader.tsx:109"}, "properties": {"repobilityId": "44f45a433d5b6851", "scanner": "scanner-primary", "fingerprint": "b6b8e9806eeb025b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-293166f93621ac86", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/layout.tsx:46"}, "properties": {"repobilityId": "8a7f708c671c6d10", "scanner": "scanner-primary", "fingerprint": "293166f93621ac86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cc3b1f07c02163d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/outreach/audio/page.tsx:7"}, "properties": {"repobilityId": "aab79f6cf130c43d", "scanner": "scanner-primary", "fingerprint": "8cc3b1f07c02163d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a523caa0ec4d9b49", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/memorize/tutor/route.ts:22"}, "properties": {"repobilityId": "11e630155d929ba7", "scanner": "scanner-primary", "fingerprint": "a523caa0ec4d9b49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7db2fb55c2c9c288", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/memorize/due/route.ts:114"}, "properties": {"repobilityId": "5978d5c65865a2ea", "scanner": "scanner-primary", "fingerprint": "7db2fb55c2c9c288", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a38d87c8b70a5da", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/highlight-mark/route.ts:6"}, "properties": {"repobilityId": "b646c7e02c26f6ce", "scanner": "scanner-primary", "fingerprint": "4a38d87c8b70a5da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfca62e3f30dae94", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/applications/[id]/route.ts:62"}, "properties": {"repobilityId": "d36f862cd9e4377d", "scanner": "scanner-primary", "fingerprint": "cfca62e3f30dae94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86dc0435a48cf2da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/job-url/route.ts:67"}, "properties": {"repobilityId": "0e4cfe00b5c8aea1", "scanner": "scanner-primary", "fingerprint": "86dc0435a48cf2da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a288144b0ba0e8e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/applications/[id]/notes/[[...path]]/route.ts:111"}, "properties": {"repobilityId": "ace551a6556a8c17", "scanner": "scanner-primary", "fingerprint": "3a288144b0ba0e8e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-82dc58cb6668a2e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/highlight-query/route.ts:11"}, "properties": {"repobilityId": "4b0627b9c1393bdf", "scanner": "scanner-primary", "fingerprint": "82dc58cb6668a2e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97822289d60ec012", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/highlight-query/route.ts:129"}, "properties": {"repobilityId": "b8e95158cd5db04f", "scanner": "scanner-primary", "fingerprint": "97822289d60ec012", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d16756322e6c118", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/rag/page.tsx:11"}, "properties": {"repobilityId": "b557fbb8e3cb8c34", "scanner": "scanner-primary", "fingerprint": "1d16756322e6c118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4359ef17ef39ff0c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/campaign/text/page.tsx:7"}, "properties": {"repobilityId": "7f0717f0eedf3853", "scanner": "scanner-primary", "fingerprint": "4359ef17ef39ff0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c435e3d79948b2ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/memorize/[categorySlug]/page.tsx:34"}, "properties": {"repobilityId": "55a9f11fcd7a413d", "scanner": "scanner-primary", "fingerprint": "c435e3d79948b2ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f523478a43308f8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/memorize/flashcards/page.tsx:17"}, "properties": {"repobilityId": "c82f0ed89ec23b57", "scanner": "scanner-primary", "fingerprint": "f523478a43308f8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3a6dc9c86714f80", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/glossary/_data.ts:86"}, "properties": {"repobilityId": "b1921e07c1a75ebf", "scanner": "scanner-primary", "fingerprint": "b3a6dc9c86714f80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c454f6f93548dd6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/glossary/_styles.ts:1"}, "properties": {"repobilityId": "cf892cab77911975", "scanner": "scanner-primary", "fingerprint": "c454f6f93548dd6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-702eafe3740a9fda", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/postgres/page.tsx:3"}, "properties": {"repobilityId": "96530eddd8248783", "scanner": "scanner-primary", "fingerprint": "702eafe3740a9fda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d258df46ca654b35", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/postgres/text/page.tsx:32"}, "properties": {"repobilityId": "00edca7bbd2d2280", "scanner": "scanner-primary", "fingerprint": "d258df46ca654b35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ab07e6b0b5cbd05", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/postgres/exercises/page.tsx:13"}, "properties": {"repobilityId": "ffedce2eb5ebc83b", "scanner": "scanner-primary", "fingerprint": "4ab07e6b0b5cbd05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0451ecc722a00fd5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/postgres/audio/page.tsx:13"}, "properties": {"repobilityId": "c696048b7b19c582", "scanner": "scanner-primary", "fingerprint": "0451ecc722a00fd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a7fffae62d6315a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/postgres/joins/page.tsx:28"}, "properties": {"repobilityId": "3d94f1ad33b282f8", "scanner": "scanner-primary", "fingerprint": "6a7fffae62d6315a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bb6e7ae0bfb176b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/memory/page.tsx:12"}, "properties": {"repobilityId": "08eee48fec3b121d", "scanner": "scanner-primary", "fingerprint": "1bb6e7ae0bfb176b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc8b21529206e4bd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/page.tsx:305"}, "properties": {"repobilityId": "f4f1e2e673e13c5b", "scanner": "scanner-primary", "fingerprint": "cc8b21529206e4bd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-663d7cecca38321e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/page.tsx:249"}, "properties": {"repobilityId": "7203a5c8e084b3ff", "scanner": "scanner-primary", "fingerprint": "663d7cecca38321e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0a6d757ed849b0f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/coursework/[slug]/slovenia/images/_canvas.tsx:14"}, "properties": {"repobilityId": "92f902aa4960f561", "scanner": "scanner-primary", "fingerprint": "f0a6d757ed849b0f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a3423def9398dde", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-rag/text/page.tsx:9"}, "properties": {"repobilityId": "2d8bc33d1572800f", "scanner": "scanner-primary", "fingerprint": "4a3423def9398dde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-296d635b28c31710", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/evals/text/page.tsx:19"}, "properties": {"repobilityId": "1665fa146c2984aa", "scanner": "scanner-primary", "fingerprint": "296d635b28c31710", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1020842981991252", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/learning-science/page.tsx:14"}, "properties": {"repobilityId": "ea745b752236f65d", "scanner": "scanner-primary", "fingerprint": "1020842981991252", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76326c0fc6e48215", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/learning-science/[slug]/page.tsx:11"}, "properties": {"repobilityId": "57334e889f9a8549", "scanner": "scanner-primary", "fingerprint": "76326c0fc6e48215", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d07fa507654b9efc", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/applications/[id]/prep/_audio.tsx:3"}, "properties": {"repobilityId": "81a14d07cc75662c", "scanner": "scanner-primary", "fingerprint": "d07fa507654b9efc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca5985ef8e59ba51", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/applications/[id]/prep/page.tsx:429"}, "properties": {"repobilityId": "3fd6f5089f198e0b", "scanner": "scanner-primary", "fingerprint": "ca5985ef8e59ba51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e3d60dfa8be8898", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/applications/[id]/prep/audio/page.tsx:14"}, "properties": {"repobilityId": "5d77fc644b4f38ff", "scanner": "scanner-primary", "fingerprint": "9e3d60dfa8be8898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43c1ec4d4593c1c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/applications/(owner)/page.tsx:3"}, "properties": {"repobilityId": "3a3b16feca76445e", "scanner": "scanner-primary", "fingerprint": "43c1ec4d4593c1c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e47829f3cffb55e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/applications/interviewing/[slug]/page.tsx:23"}, "properties": {"repobilityId": "6bd20bae0da26e6f", "scanner": "scanner-primary", "fingerprint": "7e47829f3cffb55e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6d94ea17fbff06b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/cortex-portal/_content.ts:1"}, "properties": {"repobilityId": "538e0b513b84bf6f", "scanner": "scanner-primary", "fingerprint": "c6d94ea17fbff06b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-578a7178b927b6c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/discovery/audio/page.tsx:7"}, "properties": {"repobilityId": "e42e0214785113f1", "scanner": "scanner-primary", "fingerprint": "578a7178b927b6c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f43ea66dd368bb6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/[slug]/page.tsx:32"}, "properties": {"repobilityId": "cda85a8b9fe1d884", "scanner": "scanner-primary", "fingerprint": "f43ea66dd368bb6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-046ed6bb3683e4e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-sales/_shared.ts:92"}, "properties": {"repobilityId": "967a094cc24aa154", "scanner": "scanner-primary", "fingerprint": "046ed6bb3683e4e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfcdeef7207f24c8", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-sales/_code-refs.ts:3"}, "properties": {"repobilityId": "650073727fc97452", "scanner": "scanner-primary", "fingerprint": "cfcdeef7207f24c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a69ad6313b77efb0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/agentic-sales/layout.tsx:3"}, "properties": {"repobilityId": "05634b2187278f04", "scanner": "scanner-primary", "fingerprint": "a69ad6313b77efb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98243291caa61bf6", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/agentic-sales/_styles.ts:1"}, "properties": {"repobilityId": "8f7452a8c2916b32", "scanner": "scanner-primary", "fingerprint": "98243291caa61bf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa40fd97503e519b", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-sales/langsmith/content.ts:1"}, "properties": {"repobilityId": "42bb00795cafb4ae", "scanner": "scanner-primary", "fingerprint": "aa40fd97503e519b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4440ea89bf23e895", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/agentic-sales/langsmith/page.tsx:12"}, "properties": {"repobilityId": "f39752c9f3f8c1b8", "scanner": "scanner-primary", "fingerprint": "4440ea89bf23e895", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01f74883326bcd13", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-sales/langsmith/audio/page.tsx:13"}, "properties": {"repobilityId": "90988ea45990de11", "scanner": "scanner-primary", "fingerprint": "01f74883326bcd13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcb3e55f94c0a435", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/agentic-sales/text/page.tsx:14"}, "properties": {"repobilityId": "4527f849ccf81547", "scanner": "scanner-primary", "fingerprint": "dcb3e55f94c0a435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9100bfecff3962bd", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/agentic-sales/text/HighlightLayer.tsx:29"}, "properties": {"repobilityId": "5b13e6d2220fdc4b", "scanner": "scanner-primary", "fingerprint": "9100bfecff3962bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7858bf5727b62427", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/agentic-sales/audio/page.tsx:10"}, "properties": {"repobilityId": "d04722bd4287b004", "scanner": "scanner-primary", "fingerprint": "7858bf5727b62427", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1eb0a3642c49e0e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/agentic-sales/star/content.ts:1"}, "properties": {"repobilityId": "1d45c02323eea99e", "scanner": "scanner-primary", "fingerprint": "1eb0a3642c49e0e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d57a0c23ccd2f17", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/agentic-sales/star/page.tsx:13"}, "properties": {"repobilityId": "bd3dbf1024e83ca6", "scanner": "scanner-primary", "fingerprint": "0d57a0c23ccd2f17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-712d0de6fe4182c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/agentic-sales/agents-workflows/content.ts:1"}, "properties": {"repobilityId": "a216551e2171003e", "scanner": "scanner-primary", "fingerprint": "712d0de6fe4182c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93883e831fa10886", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/agentic-sales/agents-workflows/page.tsx:12"}, "properties": {"repobilityId": "990000933ed04909", "scanner": "scanner-primary", "fingerprint": "93883e831fa10886", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5e81daaf8c2451d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/agentic-sales/agents-workflows/audio/page.tsx:12"}, "properties": {"repobilityId": "cd6b873c84392833", "scanner": "scanner-primary", "fingerprint": "e5e81daaf8c2451d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd627249bfc03d63", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/agentic-sales/first-principles/content.ts:1"}, "properties": {"repobilityId": "12f1610adc73d3d6", "scanner": "scanner-primary", "fingerprint": "fd627249bfc03d63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e48036c9d8d98fe", "level": "none", "message": {"text": "Commented-code block (14 lines) in app/agentic-sales/first-principles/page.tsx:13"}, "properties": {"repobilityId": "12fc8e783b4af093", "scanner": "scanner-primary", "fingerprint": "5e48036c9d8d98fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06639c30f010c006", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/agentic-sales/langgraph/content.ts:1"}, "properties": {"repobilityId": "b1b6e726429bd3d2", "scanner": "scanner-primary", "fingerprint": "06639c30f010c006", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-480a2b5297122230", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/agentic-sales/langgraph/DeepDive.tsx:3"}, "properties": {"repobilityId": "a6217cad19ef2f65", "scanner": "scanner-primary", "fingerprint": "480a2b5297122230", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f0b7d0098618e71", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/agentic-sales/langgraph/simplify.ts:3"}, "properties": {"repobilityId": "8408eeba416c9f05", "scanner": "scanner-primary", "fingerprint": "0f0b7d0098618e71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02dae163b71abff0", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/agentic-sales/langgraph/page.tsx:16"}, "properties": {"repobilityId": "a5d9a81f6162a3a5", "scanner": "scanner-primary", "fingerprint": "02dae163b71abff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af0c66a844a2b858", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/langgraph/audio/page.tsx:10"}, "properties": {"repobilityId": "18c6d4c86ad57c8b", "scanner": "scanner-primary", "fingerprint": "af0c66a844a2b858", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76726a498c32cbe9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/langgraph/agents/content.ts:1"}, "properties": {"repobilityId": "1243ea0ff0e2088e", "scanner": "scanner-primary", "fingerprint": "76726a498c32cbe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b5a211abf561078", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/langgraph/agents/autonomous/content.ts:1"}, "properties": {"repobilityId": "677b244f38d71376", "scanner": "scanner-primary", "fingerprint": "4b5a211abf561078", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1e2b4549db42967", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/langgraph/agents/autonomous/audio/page.tsx:10"}, "properties": {"repobilityId": "8716e23bdfdf4233", "scanner": "scanner-primary", "fingerprint": "b1e2b4549db42967", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c90fff50c8bec883", "level": "note", "message": {"text": "Legacy-named symbol `analyze_product_v2` in app/langgraph/lead-gen/_content.ts:54"}, "properties": {"repobilityId": "aa8d7511757240bf", "scanner": "scanner-primary", "fingerprint": "c90fff50c8bec883", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d01f5a2229bc3b17", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/langgraph/lead-gen/page.tsx:15"}, "properties": {"repobilityId": "b35d1d4798e06c86", "scanner": "scanner-primary", "fingerprint": "d01f5a2229bc3b17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd6b1e5327c28872", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/auth.ts:10"}, "properties": {"repobilityId": "45a53142726978ed", "scanner": "scanner-primary", "fingerprint": "fd6b1e5327c28872", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9de4c79ef2065167", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/audio.ts:208"}, "properties": {"repobilityId": "d9e0f2bd37799831", "scanner": "scanner-primary", "fingerprint": "9de4c79ef2065167", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab1d919c8d7a3ee2", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/d1.ts:16"}, "properties": {"repobilityId": "46aef391c9878b25", "scanner": "scanner-primary", "fingerprint": "ab1d919c8d7a3ee2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96b50bbdcb8d2b72", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/d1.ts:71"}, "properties": {"repobilityId": "25ac31363d2a8841", "scanner": "scanner-primary", "fingerprint": "96b50bbdcb8d2b72", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b9f33030d0f9dd0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/embeddings.ts:22"}, "properties": {"repobilityId": "e9479c137f124f53", "scanner": "scanner-primary", "fingerprint": "5b9f33030d0f9dd0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0e9b83137da17b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/experience-story.ts:1"}, "properties": {"repobilityId": "a6d5c61cdae51896", "scanner": "scanner-primary", "fingerprint": "f0e9b83137da17b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34190b3cd13e41cc", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/category-gradient.ts:5"}, "properties": {"repobilityId": "f4950272e0eac55e", "scanner": "scanner-primary", "fingerprint": "34190b3cd13e41cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d03e8b265f3bdbd9", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/references.ts:6"}, "properties": {"repobilityId": "d0c075248aa5a950", "scanner": "scanner-primary", "fingerprint": "d03e8b265f3bdbd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53d0e13b251037ec", "level": "none", "message": {"text": "Commented-code block (22 lines) in lib/experience-stories.ts:55"}, "properties": {"repobilityId": "04a9594f3f78c471", "scanner": "scanner-primary", "fingerprint": "53d0e13b251037ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-496db684918c12cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/memory-aids.ts:1"}, "properties": {"repobilityId": "db33f1e64c4bca48", "scanner": "scanner-primary", "fingerprint": "496db684918c12cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21ca1c15d5be433b", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/articles.ts:162"}, "properties": {"repobilityId": "e855206752bef9cb", "scanner": "scanner-primary", "fingerprint": "21ca1c15d5be433b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7b315919d9e34ef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resolve-job-url.ts:28"}, "properties": {"repobilityId": "4cebe54d6becce73", "scanner": "scanner-primary", "fingerprint": "e7b315919d9e34ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21565bf5820206f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/app-prep-seed.ts:21"}, "properties": {"repobilityId": "eed4321019d73a8f", "scanner": "scanner-primary", "fingerprint": "21565bf5820206f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9819a5ce41ed60a", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/sql-annotations.ts:1"}, "properties": {"repobilityId": "f8ff32982f78a11a", "scanner": "scanner-primary", "fingerprint": "d9819a5ce41ed60a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5e1926044ccf7ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/tutor-policy.ts:3"}, "properties": {"repobilityId": "76459854ca0e2572", "scanner": "scanner-primary", "fingerprint": "c5e1926044ccf7ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5121f24306fa56c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ml-client.ts:29"}, "properties": {"repobilityId": "b482dfb0c3dee39d", "scanner": "scanner-primary", "fingerprint": "b5121f24306fa56c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-826cd48388264b9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/agentic-sales-guides.ts:1"}, "properties": {"repobilityId": "a21f54edfd40b818", "scanner": "scanner-primary", "fingerprint": "826cd48388264b9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4e077bf2f1db74c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/bkt.ts:44"}, "properties": {"repobilityId": "660607396b16d1e9", "scanner": "scanner-primary", "fingerprint": "a4e077bf2f1db74c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-16629bb6a5829db8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/owner.ts:6"}, "properties": {"repobilityId": "25110383ce51e159", "scanner": "scanner-primary", "fingerprint": "16629bb6a5829db8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca24cde34e309595", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/data.ts:25"}, "properties": {"repobilityId": "f21a9e4339777e30", "scanner": "scanner-primary", "fingerprint": "ca24cde34e309595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f47677b6f70a0715", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ecb-experience-mapping.ts:1"}, "properties": {"repobilityId": "ce334dabc4b6efb2", "scanner": "scanner-primary", "fingerprint": "f47677b6f70a0715", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcbbe9b6bfa5b61e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/email/cloudflare.ts:106"}, "properties": {"repobilityId": "c78a4042136abe29", "scanner": "scanner-primary", "fingerprint": "bcbbe9b6bfa5b61e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4dc5e5c5306c8949", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/edge-tasks/src/entry.py:3"}, "properties": {"repobilityId": "3635a01d0a5d72e8", "scanner": "scanner-primary", "fingerprint": "4dc5e5c5306c8949", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-456bfc13eebfaab0", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/app/index.ts:27"}, "properties": {"repobilityId": "cbd8e5938353f943", "scanner": "scanner-primary", "fingerprint": "456bfc13eebfaab0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-390571ea92fdd1a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/index.ts:19"}, "properties": {"repobilityId": "edd176f14f98c0fd", "scanner": "scanner-primary", "fingerprint": "390571ea92fdd1a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7db0deb3a0a8f377", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/app/generated.d.ts:13"}, "properties": {"repobilityId": "4cfa2889d564fe2e", "scanner": "scanner-primary", "fingerprint": "7db0deb3a0a8f377", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-179b497cf917fc45", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/tutor.py:367"}, "properties": {"repobilityId": "097667532786ebae", "scanner": "scanner-primary", "fingerprint": "179b497cf917fc45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7748ebfdec2f56e", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/prompts.py:24"}, "properties": {"repobilityId": "d14b10f163852321", "scanner": "scanner-primary", "fingerprint": "c7748ebfdec2f56e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6039af4a83acb05b", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/runtime.py:31"}, "properties": {"repobilityId": "46460306043cd718", "scanner": "scanner-primary", "fingerprint": "6039af4a83acb05b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c609c04c2e47ca50", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/deepeval_content.py:247"}, "properties": {"repobilityId": "29fc9871a5495aeb", "scanner": "scanner-primary", "fingerprint": "c609c04c2e47ca50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-079bddf6d159929a", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/llamaindex/rag_service/eval/audio_source_eval.py:73"}, "properties": {"repobilityId": "0e4ac6eead9fe92a", "scanner": "scanner-primary", "fingerprint": "079bddf6d159929a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0871a66f35c6b0f8", "level": "note", "message": {"text": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 services/llamaindex/rag_service/eval/deepeval_evaluators.py:68"}, "properties": {"repobilityId": "48fb67035ec5be8c", "scanner": "scanner-primary", "fingerprint": "0871a66f35c6b0f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-4e2039066ae0aa96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/company-intel/d1.ts:36"}, "properties": {"repobilityId": "224ecd5a289fe11b", "scanner": "scanner-primary", "fingerprint": "4e2039066ae0aa96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-977f5b4646add726", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/db/schema.ts:754"}, "properties": {"repobilityId": "3736ae0672a37f75", "scanner": "scanner-primary", "fingerprint": "977f5b4646add726", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b479ee8cd9759d", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/audio-player.mjs:189"}, "properties": {"repobilityId": "95b1693477570df5", "scanner": "scanner-primary", "fingerprint": "a7b479ee8cd9759d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f588f1c9eb99725a", "level": "none", "message": {"text": "Commented-code block (7 lines) in roadmap-kg/test_llm_infra.py:160"}, "properties": {"repobilityId": "30e13aa70cb5652a", "scanner": "scanner-primary", "fingerprint": "f588f1c9eb99725a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59ce2615d0c25b3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/parity_check.py:22"}, "properties": {"repobilityId": "1933ad2b1cb09104", "scanner": "scanner-primary", "fingerprint": "59ce2615d0c25b3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0632504f47714a7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/parity_check.py:53"}, "properties": {"repobilityId": "5e8adba8477a8c7d", "scanner": "scanner-primary", "fingerprint": "a0632504f47714a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e1843108973737e", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_angles.py:226"}, "properties": {"repobilityId": "cc8138ee34020412", "scanner": "scanner-primary", "fingerprint": "3e1843108973737e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-821971a72cbb89c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/test_audio_gate_inloop_parity.py:115"}, "properties": {"repobilityId": "34be2ec639872e56", "scanner": "scanner-primary", "fingerprint": "821971a72cbb89c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e5ca094f9a57806", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_audio_outline.py:200"}, "properties": {"repobilityId": "62c66cef140ef420", "scanner": "scanner-primary", "fingerprint": "4e5ca094f9a57806", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-941142a8d76dac9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_inline_embed_cache.py:185"}, "properties": {"repobilityId": "2f76027a6b19a2d3", "scanner": "scanner-primary", "fingerprint": "941142a8d76dac9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dba0731bb08e16af", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_ground.py:307"}, "properties": {"repobilityId": "01d34e5c99ff84a0", "scanner": "scanner-primary", "fingerprint": "dba0731bb08e16af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c24ac2b76cb642ca", "level": "none", "message": {"text": "Commented-code block (11 lines) in roadmap-kg/test_audio_memory.py:377"}, "properties": {"repobilityId": "98b9ed25582a43f7", "scanner": "scanner-primary", "fingerprint": "c24ac2b76cb642ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30d7057f4d5b2d30", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_tutor_gate_parity.py:45"}, "properties": {"repobilityId": "c9aa876e77cd816f", "scanner": "scanner-primary", "fingerprint": "30d7057f4d5b2d30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e56bb2433b1cd0a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/test_audio_gate_rules.py:256"}, "properties": {"repobilityId": "a78b33daef769ac3", "scanner": "scanner-primary", "fingerprint": "e56bb2433b1cd0a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27d523108ebbf0bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/mnemonic_specs.py:462"}, "properties": {"repobilityId": "63373b4eb549a362", "scanner": "scanner-primary", "fingerprint": "27d523108ebbf0bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26f6d5fbb95b3fb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio_gate.py:145"}, "properties": {"repobilityId": "fe9157d70b356a4c", "scanner": "scanner-primary", "fingerprint": "26f6d5fbb95b3fb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b0002fc4c3e4664", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/build_learning_audio.py:63"}, "properties": {"repobilityId": "38d77103323e149e", "scanner": "scanner-primary", "fingerprint": "8b0002fc4c3e4664", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a8aaff5286645d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/rerank.py:100"}, "properties": {"repobilityId": "2a14a43724aeec7f", "scanner": "scanner-primary", "fingerprint": "8a8aaff5286645d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a531387c1a61b9e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/flashcard_gen.py:438"}, "properties": {"repobilityId": "d41d552efb663502", "scanner": "scanner-primary", "fingerprint": "a531387c1a61b9e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0a9c656bdf9391a", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/gen_mock_interview.py:239"}, "properties": {"repobilityId": "988971cd80cb2be9", "scanner": "scanner-primary", "fingerprint": "e0a9c656bdf9391a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7793b0c397df2640", "level": "none", "message": {"text": "Commented-code block (7 lines) in roadmap-kg/kg/ground_langgraph_agents.py:410"}, "properties": {"repobilityId": "ee571322846f8652", "scanner": "scanner-primary", "fingerprint": "7793b0c397df2640", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76a0c8224c725eaf", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/query.py:40"}, "properties": {"repobilityId": "436c9d060ea11d43", "scanner": "scanner-primary", "fingerprint": "76a0c8224c725eaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd15a375dde57d54", "level": "none", "message": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/ground_langgraph.py:48"}, "properties": {"repobilityId": "901d1f757476d6ca", "scanner": "scanner-primary", "fingerprint": "cd15a375dde57d54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4b9c768f94f1864", "level": "none", "message": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/ground_memory_techniques.py:60"}, "properties": {"repobilityId": "ec71360eea4e6936", "scanner": "scanner-primary", "fingerprint": "e4b9c768f94f1864", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a811f7b0c7ce855", "level": "none", "message": {"text": "Commented-code block (7 lines) in roadmap-kg/kg/ground.py:105"}, "properties": {"repobilityId": "8fe128da7bca72a4", "scanner": "scanner-primary", "fingerprint": "5a811f7b0c7ce855", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c166f7df82d48656", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_agents_workflows.py:47"}, "properties": {"repobilityId": "e290fdf08f202bab", "scanner": "scanner-primary", "fingerprint": "c166f7df82d48656", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ae256fe88bf85b3", "level": "none", "message": {"text": "Commented-code block (8 lines) in roadmap-kg/kg/gen_prep_drills.py:68"}, "properties": {"repobilityId": "6c0ee8d5ea8ce387", "scanner": "scanner-primary", "fingerprint": "7ae256fe88bf85b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f54795558fd5393", "level": "none", "message": {"text": "Commented-code block (11 lines) in roadmap-kg/kg/enhance_inline_memory.py:51"}, "properties": {"repobilityId": "08d162e997761f78", "scanner": "scanner-primary", "fingerprint": "3f54795558fd5393", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc5be83c91a8d3bf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/enhance_highlights.py:129"}, "properties": {"repobilityId": "411c6368064f924c", "scanner": "scanner-primary", "fingerprint": "bc5be83c91a8d3bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ffa367035288359a", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/memory_corpus_eval.py:267"}, "properties": {"repobilityId": "249981659660247e", "scanner": "scanner-primary", "fingerprint": "ffa367035288359a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6238f57e3534ef0e", "level": "none", "message": {"text": "Commented-code block (9 lines) in roadmap-kg/kg/ground_postgres.py:151"}, "properties": {"repobilityId": "14b5f59059faadd8", "scanner": "scanner-primary", "fingerprint": "6238f57e3534ef0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e23c8e79508c2948", "level": "none", "message": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/mnemonics.py:145"}, "properties": {"repobilityId": "5a9f5f641e76b4a9", "scanner": "scanner-primary", "fingerprint": "e23c8e79508c2948", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12c2f1a7c8c9362e", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/llm.py:115"}, "properties": {"repobilityId": "3f0a047f39a179fc", "scanner": "scanner-primary", "fingerprint": "12c2f1a7c8c9362e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f820bbc7faa716", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ground_sql_glossary.py:57"}, "properties": {"repobilityId": "5f5cedb37de456a1", "scanner": "scanner-primary", "fingerprint": "24f820bbc7faa716", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38ecd50084e71801", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/deepseek_llm.py:120"}, "properties": {"repobilityId": "0008da7d0d722be3", "scanner": "scanner-primary", "fingerprint": "38ecd50084e71801", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff4ee671137322fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_first_principles.py:54"}, "properties": {"repobilityId": "d7b17bcb06a875d0", "scanner": "scanner-primary", "fingerprint": "ff4ee671137322fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4830932ac7256ecd", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/ground_postgres_joins.py:45"}, "properties": {"repobilityId": "67383762ac88fa63", "scanner": "scanner-primary", "fingerprint": "4830932ac7256ecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac4ee3d3c2d8409d", "level": "none", "message": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/audio_memory.py:83"}, "properties": {"repobilityId": "30d4c132a26e75ed", "scanner": "scanner-primary", "fingerprint": "ac4ee3d3c2d8409d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-028bfc26fa2fb228", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/glossary_llamaindex.py:40"}, "properties": {"repobilityId": "67708f31f6171553", "scanner": "scanner-primary", "fingerprint": "028bfc26fa2fb228", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f588088c07fdf3ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/mnemonic_gate.py:499"}, "properties": {"repobilityId": "f12a874e192a05a1", "scanner": "scanner-primary", "fingerprint": "f588088c07fdf3ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0bdb703f4a6c154", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ingest.py:68"}, "properties": {"repobilityId": "3d2d06cd5cee256d", "scanner": "scanner-primary", "fingerprint": "e0bdb703f4a6c154", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48402929b6f1cd6a", "level": "none", "message": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/prep_enhance.py:159"}, "properties": {"repobilityId": "9c757dfce6a6c409", "scanner": "scanner-primary", "fingerprint": "48402929b6f1cd6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4ce6588049f0515", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/memory_common.py:47"}, "properties": {"repobilityId": "61d0c5838df5ff19", "scanner": "scanner-primary", "fingerprint": "d4ce6588049f0515", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d449d60317db8a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/prep_evaluators.py:99"}, "properties": {"repobilityId": "45c9ed9228c87cb5", "scanner": "scanner-primary", "fingerprint": "6d449d60317db8a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d96c5af9560f378c", "level": "note", "message": {"text": "Stub function `_update_prompts` (body is just `pass`/`return`) \u2014 roadmap-kg/kg/prep_evaluators.py:202"}, "properties": {"repobilityId": "8c207b2bfddf349e", "scanner": "scanner-primary", "fingerprint": "d96c5af9560f378c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-bbbecfc12bb9a174", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/prep_interview.py:153"}, "properties": {"repobilityId": "e67d1390b67dbaa8", "scanner": "scanner-primary", "fingerprint": "bbbecfc12bb9a174", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc8d39c6836dd176", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/ground_pillar_glossary.py:26"}, "properties": {"repobilityId": "9f29d00eb83528d1", "scanner": "scanner-primary", "fingerprint": "dc8d39c6836dd176", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96f5a45badb573d6", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/eval_prep.py:197"}, "properties": {"repobilityId": "ee1ed9df223a4657", "scanner": "scanner-primary", "fingerprint": "96f5a45badb573d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-753a10b7ab08a778", "level": "none", "message": {"text": "Commented-code block (13 lines) in roadmap-kg/kg/mnemonic_gate_core.py:72"}, "properties": {"repobilityId": "f45f2188f69247c0", "scanner": "scanner-primary", "fingerprint": "753a10b7ab08a778", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b311eca0ac55360", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/silence.py:49"}, "properties": {"repobilityId": "8f8ddc38d6160fe5", "scanner": "scanner-primary", "fingerprint": "9b311eca0ac55360", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3c69a41178037f4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/silence.py:88"}, "properties": {"repobilityId": "129da25951fca17e", "scanner": "scanner-primary", "fingerprint": "d3c69a41178037f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2304c7a112d40ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio/finalize.py:55"}, "properties": {"repobilityId": "a4d1092e5ee06da4", "scanner": "scanner-primary", "fingerprint": "a2304c7a112d40ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6cefed8b35b03ec", "level": "none", "message": {"text": "Commented-code block (10 lines) in roadmap-kg/kg/audio/cache.py:17"}, "properties": {"repobilityId": "9fe1b48734830d30", "scanner": "scanner-primary", "fingerprint": "d6cefed8b35b03ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4744c6eb7a40b27f", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/textsplit.py:230"}, "properties": {"repobilityId": "29fc452d41057af8", "scanner": "scanner-primary", "fingerprint": "4744c6eb7a40b27f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93e9732fd19c41d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in roadmap-kg/kg/audio/tts.py:42"}, "properties": {"repobilityId": "51ad41329ae91456", "scanner": "scanner-primary", "fingerprint": "93e9732fd19c41d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c64d23c924718fb3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 roadmap-kg/kg/audio/tts.py:64"}, "properties": {"repobilityId": "3b72e84aa475d326", "scanner": "scanner-primary", "fingerprint": "c64d23c924718fb3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a0c12031832a200", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/audio/markdown.py:72"}, "properties": {"repobilityId": "8afd670cdd807bc4", "scanner": "scanner-primary", "fingerprint": "5a0c12031832a200", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9111a749d7869443", "level": "none", "message": {"text": "Commented-code block (6 lines) in roadmap-kg/kg/techniques/spatial_visualization.py:29"}, "properties": {"repobilityId": "cf1a73525be1d0da", "scanner": "scanner-primary", "fingerprint": "9111a749d7869443", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1909eaa06a7d3113", "level": "note", "message": {"text": "127 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "4c08db0f2a76ba6c", "scanner": "scanner-primary", "fingerprint": "1909eaa06a7d3113", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "928a41b9d3f132d7", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-9dad557909b86499", "level": "note", "message": {"text": "Near-duplicate function bodies in 10 places"}, "properties": {"repobilityId": "74d33b794409c6a4", "scanner": "scanner-primary", "fingerprint": "9dad557909b86499", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "858079a7bece809c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6109335bb6cae06b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "88ca6bf100ca2409", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "1cdecc003bebaffe", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "faa1e7cd71e6f790", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "b58b9a797d055c05", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "97fb05eefdea68a8", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d1ad2146c75d94d8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5ce6a8a0561c6ad4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2602a345eed769f3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-12ba335d63acf232", "level": "note", "message": {"text": "Near-duplicate function bodies in 187 places"}, "properties": {"repobilityId": "29bfffadef307328", "scanner": "scanner-primary", "fingerprint": "12ba335d63acf232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-12ba335d63acf232", "level": "note", "message": {"text": "Near-duplicate function bodies in 187 places"}, "properties": {"repobilityId": "5e9ad6703f393af5", "scanner": "scanner-primary", "fingerprint": "12ba335d63acf232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "f17ff2a957bf09e3", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "7c7bd4492029dc1d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "4ae8e20ef9bcee4d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f8459a2bc932aad2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "deb21437e9d2b8a3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "00c4e2fed732e23a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-df28d1ffe19e36ca", "level": "error", "message": {"text": "FastAPI POST `query` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:32"}, "properties": {"repobilityId": "62eb4478c3e075d0", "scanner": "scanner-primary", "fingerprint": "df28d1ffe19e36ca", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/routes.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-ff6ca81cf7e0221c", "level": "error", "message": {"text": "FastAPI POST `tutor_card` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:83"}, "properties": {"repobilityId": "0b54e1720f5129f1", "scanner": "scanner-primary", "fingerprint": "ff6ca81cf7e0221c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/routes.py"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-548299fc0015ef15", "level": "error", "message": {"text": "FastAPI POST `chat` without auth dependency \u2014 services/llamaindex/rag_service/routes.py:118"}, "properties": {"repobilityId": "c32dae0dd3fedbe7", "scanner": "scanner-primary", "fingerprint": "548299fc0015ef15", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/llamaindex/rag_service/routes.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-2919f995b2f15bb7", "level": "error", "message": {"text": "FastAPI POST `query` without auth dependency \u2014 roadmap-kg/app.py:29"}, "properties": {"repobilityId": "c2a10441bce1f12c", "scanner": "scanner-primary", "fingerprint": "2919f995b2f15bb7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap-kg/app.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-8d416cff70387813", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/prep-enhance.mjs:17)"}, "properties": {"repobilityId": "3262c6d698abf160", "scanner": "scanner-primary", "fingerprint": "8d416cff70387813", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff895afd01c006d9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/d1/database/${D1_ID}/query (scripts/push-prep-md-to-d1.mjs:27)"}, "properties": {"repobilityId": "2425b28ebab0476e", "scanner": "scanner-primary", "fingerprint": "ff895afd01c006d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aff4fa44c5900960", "level": "error", "message": {"text": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-lesson-memorize.ts:252)"}, "properties": {"repobilityId": "aeeb9b12134f45d6", "scanner": "scanner-primary", "fingerprint": "aff4fa44c5900960", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bb99fbd67b24aa7", "level": "error", "message": {"text": "Dangling fetch: POST https://api.deepseek.com/chat/completions (scripts/gen-agentic-sales-memorize.ts:288)"}, "properties": {"repobilityId": "9783e243bf79992e", "scanner": "scanner-primary", "fingerprint": "6bb99fbd67b24aa7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f6e9fa6a706eed9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/highlight-query (components/explain-popover.tsx:59)"}, "properties": {"repobilityId": "a0521c2a51e1392e", "scanner": "scanner-primary", "fingerprint": "f6e9fa6a706eed9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-18ae0010ddf0c973", "level": "error", "message": {"text": "Dangling fetch: POST /api/highlight-mark (components/lesson-explain.tsx:75)"}, "properties": {"repobilityId": "eedc660f96a24d15", "scanner": "scanner-primary", "fingerprint": "18ae0010ddf0c973", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb3c9599031493e0", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio-recall (components/AudioRecallPrompt.tsx:87)"}, "properties": {"repobilityId": "25c06f2918c16297", "scanner": "scanner-primary", "fingerprint": "bb3c9599031493e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-516dbca7235e912b", "level": "error", "message": {"text": "Dangling fetch: POST /api/memorize/${categorySlug}/feedback (components/memorize/CardFeedback.tsx:70)"}, "properties": {"repobilityId": "c008805ba42a9498", "scanner": "scanner-primary", "fingerprint": "516dbca7235e912b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b142eda15d5c2d6b", "level": "error", "message": {"text": "Dangling fetch: POST /api/memorize/tutor (components/memorize/tutor-dialog.tsx:93)"}, "properties": {"repobilityId": "974b25bb7b0d797a", "scanner": "scanner-primary", "fingerprint": "b142eda15d5c2d6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7c288702f9c5ac53", "level": "error", "message": {"text": "Dangling fetch: GET /api/memorize/progress (components/memorize/MemorizeProgress.tsx:76)"}, "properties": {"repobilityId": "c18533ebfe00b0e6", "scanner": "scanner-primary", "fingerprint": "7c288702f9c5ac53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-701ff5e417bdd5cb", "level": "error", "message": {"text": "Dangling fetch: GET /api/memorize/due?limit=100 (components/memorize/InterleavedDrill.tsx:39)"}, "properties": {"repobilityId": "ea2dcc1460c8feac", "scanner": "scanner-primary", "fingerprint": "701ff5e417bdd5cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d0f90d7d67d9f03", "level": "error", "message": {"text": "Dangling fetch: POST /api/memorize/${current.categorySlug} (components/memorize/InterleavedDrill.tsx:70)"}, "properties": {"repobilityId": "c9fdae826eaab398", "scanner": "scanner-primary", "fingerprint": "4d0f90d7d67d9f03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3fdd66aa5e530b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/problems/${props.slug}/submit (components/problems/problem-workspace.tsx:89)"}, "properties": {"repobilityId": "203a46b72ba000c1", "scanner": "scanner-primary", "fingerprint": "f3fdd66aa5e530b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a8fa418d7f0178c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/highlight-mark (components/guide/GuideExplain.tsx:76)"}, "properties": {"repobilityId": "f485cd865f2bff4a", "scanner": "scanner-primary", "fingerprint": "a8fa418d7f0178c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ba1fab6bcb93577", "level": "error", "message": {"text": "Dangling fetch: POST /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:142)"}, "properties": {"repobilityId": "d01780fc37d20189", "scanner": "scanner-primary", "fingerprint": "7ba1fab6bcb93577", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6839b5c351875223", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.slug}/prep (components/app-detail/TechStackTab.tsx:148)"}, "properties": {"repobilityId": "9134182e94284a9e", "scanner": "scanner-primary", "fingerprint": "6839b5c351875223", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8e70e72a81f18b4c", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:164)"}, "properties": {"repobilityId": "37249b207d0fe78b", "scanner": "scanner-primary", "fingerprint": "8e70e72a81f18b4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-04825d75b972c375", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${app.slug}/tech-dismissed (components/app-detail/TechStackTab.tsx:181)"}, "properties": {"repobilityId": "7a514b9220185bbd", "scanner": "scanner-primary", "fingerprint": "04825d75b972c375", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82d5b5eb7e517861", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/JobDescriptionTab.tsx:28)"}, "properties": {"repobilityId": "0a9deb7912e0e3d2", "scanner": "scanner-primary", "fingerprint": "82d5b5eb7e517861", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-50a2cf8303bd82ce", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:66)"}, "properties": {"repobilityId": "0fe511c4ba7ad426", "scanner": "scanner-primary", "fingerprint": "50a2cf8303bd82ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83457735db6dcfe4", "level": "error", "message": {"text": "Dangling fetch: POST /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:73)"}, "properties": {"repobilityId": "a411a63dbb5b5829", "scanner": "scanner-primary", "fingerprint": "83457735db6dcfe4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-64aea38b6fbce5fb", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.slug}/deepen (components/app-detail/InterviewPrepTab.tsx:82)"}, "properties": {"repobilityId": "86b5c43b2d92e47f", "scanner": "scanner-primary", "fingerprint": "64aea38b6fbce5fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6676cfd720e7eed", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.slug}/company (components/app-detail/CompanyTab.tsx:97)"}, "properties": {"repobilityId": "774c3ed7b19d6a49", "scanner": "scanner-primary", "fingerprint": "a6676cfd720e7eed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a08770687211b9e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/applications/${app.slug}/job-url (components/app-detail/ApplicationHeader.tsx:64)"}, "properties": {"repobilityId": "73a50ce6bd2ddd52", "scanner": "scanner-primary", "fingerprint": "7a08770687211b9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ccb96ba2139e02c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:92)"}, "properties": {"repobilityId": "c7c4c069b2962182", "scanner": "scanner-primary", "fingerprint": "7ccb96ba2139e02c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8617e39a49c1d7a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:109)"}, "properties": {"repobilityId": "7ebb4781b412d127", "scanner": "scanner-primary", "fingerprint": "e8617e39a49c1d7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a7707c10fc2d287", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/applications/${app.slug} (components/app-detail/ApplicationHeader.tsx:193)"}, "properties": {"repobilityId": "f3334894ec8a652e", "scanner": "scanner-primary", "fingerprint": "0a7707c10fc2d287", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78d0ee1e46049a13", "level": "error", "message": {"text": "Dangling fetch: GET https://${R2_PUBLIC_DOMAIN}/${key} (app/api/applications/[id]/attachments/[file]/route.ts:87)"}, "properties": {"repobilityId": "f25d9bbca35a99c4", "scanner": "scanner-primary", "fingerprint": "78d0ee1e46049a13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c76e3ba7e8660e5", "level": "error", "message": {"text": "Dangling fetch: GET /api/memorize (app/memorize/page.tsx:32)"}, "properties": {"repobilityId": "28e70a8baca29152", "scanner": "scanner-primary", "fingerprint": "5c76e3ba7e8660e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc0da3038cfca626", "level": "error", "message": {"text": "Dangling fetch: GET /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:34)"}, "properties": {"repobilityId": "f68c25202f775774", "scanner": "scanner-primary", "fingerprint": "bc0da3038cfca626", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec33401234a3d2a8", "level": "error", "message": {"text": "Dangling fetch: POST /api/memorize/${params.categorySlug} (app/memorize/[categorySlug]/page.tsx:124)"}, "properties": {"repobilityId": "c2a2beec329f0852", "scanner": "scanner-primary", "fingerprint": "ec33401234a3d2a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e319c7b76e45e92a", "level": "error", "message": {"text": "Dangling fetch: GET /api/learners (app/coursework/page.tsx:261)"}, "properties": {"repobilityId": "2e6dab2baaf985b2", "scanner": "scanner-primary", "fingerprint": "e319c7b76e45e92a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-737076420ff86b83", "level": "error", "message": {"text": "Dangling fetch: GET /api/coursework (app/coursework/page.tsx:262)"}, "properties": {"repobilityId": "aa7e3fdf09a4d12e", "scanner": "scanner-primary", "fingerprint": "737076420ff86b83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1cb4ab38d72a830e", "level": "error", "message": {"text": "Dangling fetch: POST /api/learners (app/coursework/page.tsx:287)"}, "properties": {"repobilityId": "7c8f2810c1e00a1c", "scanner": "scanner-primary", "fingerprint": "1cb4ab38d72a830e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44e0091b48c35f22", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/learners/${id} (app/coursework/page.tsx:305)"}, "properties": {"repobilityId": "f44658aa93457621", "scanner": "scanner-primary", "fingerprint": "44e0091b48c35f22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c483a5c8bf7b42c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/coursework/upload (app/coursework/page.tsx:325)"}, "properties": {"repobilityId": "b7184adee4dd6bb9", "scanner": "scanner-primary", "fingerprint": "c483a5c8bf7b42c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b541fcecfaf2e62", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/page.tsx:344)"}, "properties": {"repobilityId": "17f9b73dfbee074f", "scanner": "scanner-primary", "fingerprint": "1b541fcecfaf2e62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-106a1ca1ae3304e8", "level": "error", "message": {"text": "Dangling fetch: GET /api/learners (app/coursework/[slug]/page.tsx:186)"}, "properties": {"repobilityId": "92483f6db1a16f05", "scanner": "scanner-primary", "fingerprint": "106a1ca1ae3304e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a11aff4aa704fecc", "level": "error", "message": {"text": "Dangling fetch: GET /api/coursework (app/coursework/[slug]/page.tsx:187)"}, "properties": {"repobilityId": "957a71e76033de22", "scanner": "scanner-primary", "fingerprint": "a11aff4aa704fecc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7913acb44b35d5ed", "level": "error", "message": {"text": "Dangling fetch: POST /api/learners (app/coursework/[slug]/page.tsx:219)"}, "properties": {"repobilityId": "e2571305d169a759", "scanner": "scanner-primary", "fingerprint": "7913acb44b35d5ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0e4049909839dd2", "level": "error", "message": {"text": "Dangling fetch: POST /api/coursework/upload (app/coursework/[slug]/page.tsx:249)"}, "properties": {"repobilityId": "bd78fb35a252f340", "scanner": "scanner-primary", "fingerprint": "a0e4049909839dd2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d78c0ff8118a3ae", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/coursework/${id} (app/coursework/[slug]/page.tsx:264)"}, "properties": {"repobilityId": "9173052b61780820", "scanner": "scanner-primary", "fingerprint": "7d78c0ff8118a3ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a478c5c78a5ee99c", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/page.tsx:41)"}, "properties": {"repobilityId": "db230574df196eda", "scanner": "scanner-primary", "fingerprint": "a478c5c78a5ee99c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-05d0f49e6332edfb", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${app.id}/typeform-url (app/applications/[id]/page.tsx:58)"}, "properties": {"repobilityId": "14405de4b983452a", "scanner": "scanner-primary", "fingerprint": "05d0f49e6332edfb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e3da1366fc49c29", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/company/page.tsx:67)"}, "properties": {"repobilityId": "a77edc820ab4bd79", "scanner": "scanner-primary", "fingerprint": "1e3da1366fc49c29", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec8e2abe802a9120", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id}/company (app/applications/[id]/company/page.tsx:80)"}, "properties": {"repobilityId": "a6312a6bb653ea10", "scanner": "scanner-primary", "fingerprint": "ec8e2abe802a9120", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd89fadc3908722b", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/exercises/page.tsx:36)"}, "properties": {"repobilityId": "d3cb99be9f4bfdb2", "scanner": "scanner-primary", "fingerprint": "fd89fadc3908722b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d46208b46b18c5d", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/interviewers/page.tsx:37)"}, "properties": {"repobilityId": "89fbacbc48b55638", "scanner": "scanner-primary", "fingerprint": "6d46208b46b18c5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f81eda1ccd5366f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${app.slug} (app/applications/[id]/interviewers/page.tsx:86)"}, "properties": {"repobilityId": "226008310055b100", "scanner": "scanner-primary", "fingerprint": "6f81eda1ccd5366f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8244ef735cfcce26", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/page.tsx:379)"}, "properties": {"repobilityId": "989ce5ed710d6d26", "scanner": "scanner-primary", "fingerprint": "8244ef735cfcce26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b586c582e9c3d43c", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/prep/memorize/page.tsx:45)"}, "properties": {"repobilityId": "dda5be76832cdd0a", "scanner": "scanner-primary", "fingerprint": "b586c582e9c3d43c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc7df17a0fd88e35", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:53)"}, "properties": {"repobilityId": "a96d0aeff36afc2e", "scanner": "scanner-primary", "fingerprint": "fc7df17a0fd88e35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1dffd7ef43672396", "level": "error", "message": {"text": "Dangling fetch: POST /api/applications/${params.id}/memorize (app/applications/[id]/prep/memorize/page.tsx:113)"}, "properties": {"repobilityId": "3b5e607869e02e1d", "scanner": "scanner-primary", "fingerprint": "1dffd7ef43672396", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf954ed102b656c2", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/notes/page.tsx:37)"}, "properties": {"repobilityId": "6ec0448771c099a1", "scanner": "scanner-primary", "fingerprint": "bf954ed102b656c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aa1e0f39d4546819", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications/${params.id} (app/applications/[id]/debrief/page.tsx:37)"}, "properties": {"repobilityId": "7731a961f337897f", "scanner": "scanner-primary", "fingerprint": "aa1e0f39d4546819", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f90a132d79945e83", "level": "error", "message": {"text": "Dangling fetch: POST /api/applications (app/applications/(owner)/_pipeline/AddApplicationDialog.tsx:39)"}, "properties": {"repobilityId": "9dddb7d63a6f8c83", "scanner": "scanner-primary", "fingerprint": "f90a132d79945e83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d41d3b69d27fddbf", "level": "error", "message": {"text": "Dangling fetch: GET /api/applications (app/applications/(owner)/(pipeline)/layout.tsx:31)"}, "properties": {"repobilityId": "6d74ababfe152d87", "scanner": "scanner-primary", "fingerprint": "d41d3b69d27fddbf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cbe87dee88edff78", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/applications/${slug} (app/applications/(owner)/(pipeline)/layout.tsx:39)"}, "properties": {"repobilityId": "d0a965deb7d13a58", "scanner": "scanner-primary", "fingerprint": "cbe87dee88edff78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66667768af1e6ae7", "level": "error", "message": {"text": "Dangling fetch: POST /api/highlight-mark (app/agentic-sales/text/HighlightLayer.tsx:307)"}, "properties": {"repobilityId": "9ec090112ffbcbb3", "scanner": "scanner-primary", "fingerprint": "66667768af1e6ae7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bb3714794b14146", "level": "note", "message": {"text": "Unused endpoint: POST /query"}, "properties": {"repobilityId": "786c5dc1da192718", "scanner": "scanner-primary", "fingerprint": "1bb3714794b14146", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b17018e28b345019", "level": "note", "message": {"text": "Unused endpoint: POST /tutor/card"}, "properties": {"repobilityId": "f1ef1b1becb3a0d0", "scanner": "scanner-primary", "fingerprint": "b17018e28b345019", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cff8da5fbc19c76d", "level": "note", "message": {"text": "Unused endpoint: POST /chat"}, "properties": {"repobilityId": "087f3cfe0d6cd68a", "scanner": "scanner-primary", "fingerprint": "cff8da5fbc19c76d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1353c08634cc01ae", "level": "note", "message": {"text": "Unused endpoint: USE /:id/job-url"}, "properties": {"repobilityId": "835c7d5aee7151f2", "scanner": "scanner-primary", "fingerprint": "1353c08634cc01ae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2c11de6962751be", "level": "note", "message": {"text": "Unused endpoint: PUT /:id/job-url"}, "properties": {"repobilityId": "84312b9847655195", "scanner": "scanner-primary", "fingerprint": "e2c11de6962751be", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d1c3f9c66075ec2a", "level": "note", "message": {"text": "Unused endpoint: USE /:id/notes/*"}, "properties": {"repobilityId": "5626230318ba359c", "scanner": "scanner-primary", "fingerprint": "d1c3f9c66075ec2a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-90ed53abc321a0f7", "level": "note", "message": {"text": "Unused endpoint: GET /:id/notes"}, "properties": {"repobilityId": "dc2590255337805f", "scanner": "scanner-primary", "fingerprint": "90ed53abc321a0f7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb2fab94a4e5e8be", "level": "note", "message": {"text": "Unused endpoint: POST /:id/notes"}, "properties": {"repobilityId": "60e28dd78a77a600", "scanner": "scanner-primary", "fingerprint": "eb2fab94a4e5e8be", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-83b0ca30f66a4c47", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/notes/:noteId"}, "properties": {"repobilityId": "9004af8093b799b2", "scanner": "scanner-primary", "fingerprint": "83b0ca30f66a4c47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a933d5a992b8ef6", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id/notes/:noteId"}, "properties": {"repobilityId": "b3b2b98e85fe3775", "scanner": "scanner-primary", "fingerprint": "6a933d5a992b8ef6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}