{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4806897c1ac0aa49", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/StatusBar/index.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/StatusBar/index.tsx:108"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4ba16cbfa070f06", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/Sidebar/index.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/Sidebar/index.tsx:133"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49d4d1093e2b5d1e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/contact/ContactConflictModal/ind", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/contact/ContactConflictModal/index.tsx:184"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59914164c855bb56", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SaveActions/index.tsx:26", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SaveActions/index.tsx:26"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-267eadcc24a94fe5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SavedResumeMenu/index.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SavedResumeMenu/index.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c73abdd7ddc231e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/job/JobUrlImport/index.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/job/JobUrlImport/index.tsx:96"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0106ee5b01b949d6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/GenerationCard/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/GenerationCard/index.tsx:243"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-984a0a6d2993f4d0", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/InteractionRow/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/InteractionRow/index.tsx:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7aadfff12405b07a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/AutopilotCard", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/AutopilotCard/index.tsx:140"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7b04ee0db5076e9", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/App", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/ApplicationQuestionsModal.tsx:63"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-deb13d33436b9e2c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/ind", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/index.tsx:159"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3683a4bf933aeb1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal/index.tsx:144"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8afb4ae4bc1f51f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal/ReferralList.tsx:45"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2b101668b4793f3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/search/components/SearchPage/index", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/search/components/SearchPage/index.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2e64c0232bd8f56", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/WelcomeStep/index", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/WelcomeStep/index.tsx:110"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-984a98f23eb59dd1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/browser/BrowserDe", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/browser/BrowserDetectedState/index.tsx:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a231aecc88b6ad4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/applications/components/Applicatio", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/applications/components/ApplicationRow/index.tsx:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26f46c62f62e03b8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/GenerationM", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/GenerationMetadata/index.tsx:42"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0390d0e982f67f47", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/ExportModal", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/ExportModal/index.tsx:71"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38b6ba32a9f3a929", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/jobs/components/PostingRow/index.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/jobs/components/PostingRow/index.tsx:131"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-349c672d2e36b4a6", "name": "TODO/FIXME marker in shipping code \u2014 apps/extension/src/lib/bridge.ts:174", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/extension/src/lib/bridge.ts:174"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1f0826c89c9badd", "name": "Stray `console.log` in TS/JS \u2014 scripts/verify-selectors.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-selectors.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d826dfd51af64e0d", "name": "Stray `console.log` in TS/JS \u2014 packages/shared/scripts/gen-ipc-rust.ts:412", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/shared/scripts/gen-ipc-rust.ts:412"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0164d416c0117ef2", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/RichTextEditor/Toolbar.tsx:385", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/RichTextEditor/Toolbar.tsx:385"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-145fd4ce8b935069", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/LocationDropdown/LocationDropdown.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/LocationDropdown/LocationDropdown.tsx:82"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99314fec7f830e14", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.stories.tsx:32", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.stories.tsx:32"}, "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-92b645dd86179454", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.tsx:56", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.tsx:56"}, "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-ca4c8cace15d91dd", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/ActionMenu/ActionMenu.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/ActionMenu/ActionMenu.tsx:139"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-820c243c701c18b0", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/Dropdown/Dropdown.tsx:255", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/Dropdown/Dropdown.tsx:255"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-522ee5ae33ee643f", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/extension/src/popup/popup.test.ts:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/extension/src/popup/popup.test.ts:35"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b5d184aec4ce689", "name": "Insecure pattern 'node_child_process' in scripts/graphify-mcp.mjs:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/graphify-mcp.mjs:14"}, "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-7e347690b9146af1", "name": "Insecure pattern 'dangerous_innerhtml' in packages/ui/src/components/Accordion/Accordion.stories.tsx:32", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/ui/src/components/Accordion/Accordion.stories.tsx:32"}, "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-318477c40c24cd7c", "name": "Insecure pattern 'direct_innerhtml_assignment' in landing/ci-dashboard.html:1800", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/ci-dashboard.html:1800"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c39c4052691908c1", "name": "Insecure pattern 'direct_innerhtml_assignment' in landing/index.html:1208", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/index.html:1208"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-848388dd1ac3988f", "name": "Insecure pattern 'direct_innerhtml_assignment' in landing/creature.html:995", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/creature.html:995"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b73f070efd2a0c32", "name": "Insecure pattern 'direct_innerhtml_assignment' in landing/architecture-map.html:3823", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/architecture-map.html:3823"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7fac47016f2e7ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in landing/how-it-works.html:1134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/how-it-works.html:1134"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f3ab8125a9ced36", "name": "Insecure pattern 'node_child_process' in .claude/hooks/review-gate.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/review-gate.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95f65dac6cc7aaee", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-448d8837178ae57a", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-063997d8d14f8d5c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b62917ba5b30c017", "name": "Very large file: apps/tauri/src-tauri/src/export/typst_engine/test.rs (3067 lines)", "shortDescription": {"text": "Very large file: apps/tauri/src-tauri/src/export/typst_engine/test.rs (3067 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-dfa54070a7dda1ac", "name": "Node manifest has dependencies but no lockfile: apps/tauri/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/tauri/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-16829d81c356f9c7", "name": "Node manifest has dependencies but no lockfile: apps/extension/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/extension/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-2699d5f16ae11282", "name": "Node manifest has dependencies but no lockfile: packages/shared/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/shared/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-50218c90b43393bb", "name": "Node manifest has dependencies but no lockfile: packages/ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ui/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-c034792686b5ac55", "name": "Node manifest has dependencies but no lockfile: packages/prompts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/prompts/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-006df4168a4741f3", "name": "Node manifest has dependencies but no lockfile: packages/translations/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/translations/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 45 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 227 placeholder/mock markers across 86 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing 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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b3e38c9f0f047ef", "name": "Agent authority lacks a verifier contract: .claude/commands/review-ats.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-ats.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-16f18eafedee63cb", "name": "Agent authority lacks a verifier contract: .claude/commands/review-security.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-security.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-9cdbadb0d5998847", "name": "Agent authority lacks a verifier contract: .claude/commands/review-resume.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-resume.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-14984230e55e665f", "name": "Agent authority lacks a verifier contract: .claude/commands/update-docs.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/update-docs.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-e07939216089fc74", "name": "Agent authority lacks a verifier contract: .claude/commands/review-scraping.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-scraping.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-104a5e8c75559edf", "name": "Agent authority lacks a verifier contract: .claude/commands/review-performance.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-performance.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-84ca8c6de02f3b23", "name": "Agent authority lacks a verifier contract: .claude/commands/review-ai.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-ai.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-adaf9f045a670726", "name": "Agent authority lacks a verifier contract: .claude/commands/review-frontend.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-frontend.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-090d8d875e970b19", "name": "Agent authority lacks a verifier contract: .claude/commands/review-template.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-template.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-322be6eeffd10e85", "name": "Agent authority lacks a verifier contract: .claude/agents/performance-profiler.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/performance-profiler.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-48f5d62efd67d195", "name": "Agent authority lacks a verifier contract: .claude/agents/tauri-security-reviewer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/tauri-security-reviewer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03ec5742fb34da17", "name": "Agent authority lacks a verifier contract: .claude/agents/project-steward.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/project-steward.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-8f15a825220714c9", "name": "Agent authority lacks a verifier contract: .claude/skills/tauri-standards/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/tauri-standards/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c3e593b3d1c9f61", "name": "Agent authority lacks a verifier contract: .claude/skills/security-checklist/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/security-checklist/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36c18f6b25022f1c", "name": "Agent authority lacks a verifier contract: .claude/skills/code-quality/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/code-quality/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32d93845c072d0c0", "name": "Agent authority lacks a verifier contract: .claude/skills/automation-standards/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/automation-standards/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54173108e8904cb5", "name": "Agent authority lacks a verifier contract: .cursor/rules/renderer-ui.mdc", "shortDescription": {"text": "Agent authority lacks a verifier contract: .cursor/rules/renderer-ui.mdc"}, "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-6f72904d0a2e195c", "name": "Agent authority lacks a verifier contract: .cursor/rules/packages.mdc", "shortDescription": {"text": "Agent authority lacks a verifier contract: .cursor/rules/packages.mdc"}, "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-dce0837d3455c801", "name": "Commented-code block (5 lines) in lostpixel.config.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lostpixel.config.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-3a35eae9dfaf5111", "name": "Commented-code block (6 lines) in eslint.config.mjs:431", "shortDescription": {"text": "Commented-code block (6 lines) in eslint.config.mjs:431"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cf3ed94103ccdbf", "name": "Commented-code block (5 lines) in apps/tauri/vitest.config.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/vitest.config.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fff8c002c342b65", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/contact/ContactProfileForm/index.tsx:139", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/contact/ContactProfileForm/index.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-1db671d365b306d9", "name": "Commented-code block (7 lines) in apps/tauri/src/renderer/components/ui/ModelSelector/index.tsx:97", "shortDescription": {"text": "Commented-code block (7 lines) in apps/tauri/src/renderer/components/ui/ModelSelector/index.tsx:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26cc7a652c115844", "name": "Commented-code block (6 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/RewritePopover.tsx:124", "shortDescription": {"text": "Commented-code block (6 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/RewritePopover.tsx:124"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84a9042c29ef07fe", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/EditableOutput.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/EditableOutput.test.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b65c721772d19047", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/index.tsx:206", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/index.tsx:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d97adcedceaee4e", "name": "Commented-code block (6 lines) in apps/tauri/src/renderer/hooks/use-menu-navigation.test.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in apps/tauri/src/renderer/hooks/use-menu-navigation.test.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-003ad4bf631b074f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/services/use-ai-provider/use-ai-provider.ts:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/services/use-ai-provider/use-ai-provider.ts:53"}, "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-0ffd172a129decbd", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/store/preferences-schema/preferences-schema.ts:282", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/store/preferences-schema/preferences-schema.ts:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-609f85133fb73086", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/settings/components/general-section/AppearanceCard.te", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/settings/components/general-section/AppearanceCard.test.tsx:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3235519fdb7fe6c", "name": "Commented-code block (7 lines) in apps/tauri/src/renderer/features/resumes/components/GenerationCard/index.tsx:93", "shortDescription": {"text": "Commented-code block (7 lines) in apps/tauri/src/renderer/features/resumes/components/GenerationCard/index.tsx:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52ee2fbf49ee79c1", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/GenerationOutput.test.", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/GenerationOutput.test.tsx:487"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b46cccbbb40b0a96", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/useTailorGeneration.ts", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/useTailorGeneration.ts:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a8dc648e4153f94", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/applications/components/ApplicationRow/ApplicationRow", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/applications/components/ApplicationRow/ApplicationRow.test.tsx:218"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a7bb46fec6b1a9b", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/components/OutputPanelDone/index.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/components/OutputPanelDone/index.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4678a0486135ac3f", "name": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/samples/samples.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/samples/samples.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-5e803539ff85d41e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/features/jobs/components/ScrapeForm/constants.ts:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/features/jobs/components/ScrapeForm/constants.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-26b0461af38791ea", "name": "Commented-code block (7 lines) in apps/extension/scripts/gen-store-assets.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in apps/extension/scripts/gen-store-assets.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-48a8bfe1ae521475", "name": "Commented-code block (5 lines) in apps/extension/src/content.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in apps/extension/src/content.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42333a78727f7632", "name": "Commented-code block (6 lines) in apps/extension/src/lib/bridge.ts:174", "shortDescription": {"text": "Commented-code block (6 lines) in apps/extension/src/lib/bridge.ts:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee5497d53e0d2705", "name": "Commented-code block (6 lines) in scripts/check-landing-drift.mjs:9", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/check-landing-drift.mjs: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-0ea296cefdeda028", "name": "Commented-code block (6 lines) in scripts/sync-tauri-version.cjs:56", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/sync-tauri-version.cjs:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e55083423d2aa978", "name": "Commented-code block (6 lines) in scripts/graphify-mcp.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/graphify-mcp.mjs: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-e7d481bb60642ea3", "name": "Commented-code block (5 lines) in scripts/gen-workflow-catalog.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-workflow-catalog.mjs: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-2ec6a80dea0eef65", "name": "Commented-code block (5 lines) in packages/shared/src/ipc/contracts.test.ts:122", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/ipc/contracts.test.ts:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cff1dff9cb8730a3", "name": "Commented-code block (5 lines) in packages/shared/src/events/system.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/events/system.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-cfdfb6ceee193d70", "name": "Commented-code block (6 lines) in packages/shared/src/schemas/index.ts:142", "shortDescription": {"text": "Commented-code block (6 lines) in packages/shared/src/schemas/index.ts:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d38dc5c1ceb64ea9", "name": "Commented-code block (6 lines) in packages/ui/vitest.storybook.config.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ui/vitest.storybook.config.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-14f083fde6c5521d", "name": "Commented-code block (7 lines) in packages/ui/src/components/Button/Button.stories.tsx:107", "shortDescription": {"text": "Commented-code block (7 lines) in packages/ui/src/components/Button/Button.stories.tsx:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebb6acff19ab4685", "name": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/decorations.ts:95", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/decorations.ts:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f4ccf4d8b17282f", "name": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/markdown.ts:166", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/markdown.ts:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a90242611bce000", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/src/components/LocationInput/LocationInput.test.tsx:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/src/components/LocationInput/LocationInput.test.tsx:60"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d4d813c4bb694e3", "name": "Commented-code block (5 lines) in packages/ui/src/components/ModalShell/ModalShell.tsx:73", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ui/src/components/ModalShell/ModalShell.tsx: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-12eaa7de0f74f73c", "name": "Commented-code block (8 lines) in packages/ui/src/components/Accordion/Accordion.tsx:51", "shortDescription": {"text": "Commented-code block (8 lines) in packages/ui/src/components/Accordion/Accordion.tsx: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-eb9cb937ff4a87ea", "name": "Commented-code block (5 lines) in packages/ui/src/components/HoverPopover/HoverPopover.test.tsx:189", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ui/src/components/HoverPopover/HoverPopover.test.tsx:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e47c2c09348ed361", "name": "Commented-code block (6 lines) in packages/ui/src/components/HoverPopover/HoverPopover.tsx:108", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ui/src/components/HoverPopover/HoverPopover.tsx:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-324f0044c867adbf", "name": "Commented-code block (7 lines) in packages/ui/src/hooks/useDropdownPosition.ts:31", "shortDescription": {"text": "Commented-code block (7 lines) in packages/ui/src/hooks/useDropdownPosition.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8c58cbc2840d46f", "name": "Commented-code block (5 lines) in packages/prompts/src/generate/rewrite.test.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in packages/prompts/src/generate/rewrite.test.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0775bb56932686b6", "name": "Commented-code block (7 lines) in packages/prompts/src/generate/rewrite.ts:75", "shortDescription": {"text": "Commented-code block (7 lines) in packages/prompts/src/generate/rewrite.ts:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1600263110ac396f", "name": "Commented-code block (5 lines) in packages/prompts/src/generate/natural-voice.test.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in packages/prompts/src/generate/natural-voice.test.ts: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-deccf38c3c890c27", "name": "Commented-code block (6 lines) in packages/prompts/src/locale/index.ts:418", "shortDescription": {"text": "Commented-code block (6 lines) in packages/prompts/src/locale/index.ts:418"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-defd11ed83b4ef7e", "name": "Commented-code block (5 lines) in packages/translations/i18next.config.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/translations/i18next.config.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b36cb91af8327afe", "name": "Commented-code block (6 lines) in .claude/hooks/lessons.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in .claude/hooks/lessons.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}}]}}, "automationDetails": {"id": "repobility/18746"}, "properties": {"repository": "saeedkolivand/ai-job-hunter-assistant-app", "repoUrl": "https://github.com/saeedkolivand/ai-job-hunter-assistant-app", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-4806897c1ac0aa49", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/StatusBar/index.tsx:108"}, "properties": {"repobilityId": "11a0211800645658", "scanner": "scanner-primary", "fingerprint": "4806897c1ac0aa49", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4ba16cbfa070f06", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/layout/Sidebar/index.tsx:133"}, "properties": {"repobilityId": "220bd4de13cb4af0", "scanner": "scanner-primary", "fingerprint": "d4ba16cbfa070f06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-49d4d1093e2b5d1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/contact/ContactConflictModal/index.tsx:184"}, "properties": {"repobilityId": "4bab806a8f24c02b", "scanner": "scanner-primary", "fingerprint": "49d4d1093e2b5d1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-59914164c855bb56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SaveActions/index.tsx:26"}, "properties": {"repobilityId": "c5a4e36b5ff3407d", "scanner": "scanner-primary", "fingerprint": "59914164c855bb56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-267eadcc24a94fe5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/resume/SavedResumeMenu/index.tsx:64"}, "properties": {"repobilityId": "05a026254c74e123", "scanner": "scanner-primary", "fingerprint": "267eadcc24a94fe5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2c73abdd7ddc231e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/components/job/JobUrlImport/index.tsx:96"}, "properties": {"repobilityId": "d5b00d28af69c607", "scanner": "scanner-primary", "fingerprint": "2c73abdd7ddc231e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0106ee5b01b949d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/GenerationCard/index.tsx:243"}, "properties": {"repobilityId": "1d8f89a8b94c75aa", "scanner": "scanner-primary", "fingerprint": "0106ee5b01b949d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-984a0a6d2993f4d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/resumes/components/InteractionRow/index.tsx:34"}, "properties": {"repobilityId": "8edf245dd245bcd6", "scanner": "scanner-primary", "fingerprint": "984a0a6d2993f4d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7aadfff12405b07a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/AutopilotCard/index.tsx:140"}, "properties": {"repobilityId": "e7bd40c9a855bf15", "scanner": "scanner-primary", "fingerprint": "7aadfff12405b07a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e7b04ee0db5076e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/ApplicationQuestionsModal.tsx:63"}, "properties": {"repobilityId": "12184ff0e456aac0", "scanner": "scanner-primary", "fingerprint": "e7b04ee0db5076e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-deb13d33436b9e2c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ApplyPage/index.tsx:159"}, "properties": {"repobilityId": "72f3d1025a858783", "scanner": "scanner-primary", "fingerprint": "deb13d33436b9e2c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3683a4bf933aeb1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal/index.tsx:144"}, "properties": {"repobilityId": "2bf742e267871e54", "scanner": "scanner-primary", "fingerprint": "e3683a4bf933aeb1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8afb4ae4bc1f51f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/autopilot/components/ReferralModal/ReferralList.tsx:45"}, "properties": {"repobilityId": "5e1b9308fa2a8479", "scanner": "scanner-primary", "fingerprint": "c8afb4ae4bc1f51f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2b101668b4793f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/search/components/SearchPage/index.tsx:67"}, "properties": {"repobilityId": "97760286bf92fd65", "scanner": "scanner-primary", "fingerprint": "c2b101668b4793f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d2e64c0232bd8f56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/WelcomeStep/index.tsx:110"}, "properties": {"repobilityId": "368cd231cf2f6bb7", "scanner": "scanner-primary", "fingerprint": "d2e64c0232bd8f56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-984a98f23eb59dd1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/onboarding/steps/browser/BrowserDetectedState/index.tsx:74"}, "properties": {"repobilityId": "7bbb4dffc0904635", "scanner": "scanner-primary", "fingerprint": "984a98f23eb59dd1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a231aecc88b6ad4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/applications/components/ApplicationRow/index.tsx:74"}, "properties": {"repobilityId": "0c2d539a3f4efa9c", "scanner": "scanner-primary", "fingerprint": "3a231aecc88b6ad4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-26f46c62f62e03b8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/GenerationMetadata/index.tsx:42"}, "properties": {"repobilityId": "c30cfe0a646f2854", "scanner": "scanner-primary", "fingerprint": "26f46c62f62e03b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0390d0e982f67f47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/ai-generate/components/ExportModal/index.tsx:71"}, "properties": {"repobilityId": "8662c57ba3c839d0", "scanner": "scanner-primary", "fingerprint": "0390d0e982f67f47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-38b6ba32a9f3a929", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/tauri/src/renderer/features/jobs/components/PostingRow/index.tsx:131"}, "properties": {"repobilityId": "0081b6b13d6b0ed2", "scanner": "scanner-primary", "fingerprint": "38b6ba32a9f3a929", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-349c672d2e36b4a6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/extension/src/lib/bridge.ts:174"}, "properties": {"repobilityId": "09541b680f0e678f", "scanner": "scanner-primary", "fingerprint": "349c672d2e36b4a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-c1f0826c89c9badd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verify-selectors.js:12"}, "properties": {"repobilityId": "61c6f72b4816d574", "scanner": "scanner-primary", "fingerprint": "c1f0826c89c9badd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d826dfd51af64e0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/shared/scripts/gen-ipc-rust.ts:412"}, "properties": {"repobilityId": "23765b909ab72df4", "scanner": "scanner-primary", "fingerprint": "d826dfd51af64e0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0164d416c0117ef2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/RichTextEditor/Toolbar.tsx:385"}, "properties": {"repobilityId": "e9fb8005f075ed81", "scanner": "scanner-primary", "fingerprint": "0164d416c0117ef2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-145fd4ce8b935069", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/LocationDropdown/LocationDropdown.tsx:82"}, "properties": {"repobilityId": "130c997c41acb58a", "scanner": "scanner-primary", "fingerprint": "145fd4ce8b935069", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99314fec7f830e14", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.stories.tsx:32"}, "properties": {"repobilityId": "3ae075ae629b194a", "scanner": "scanner-primary", "fingerprint": "99314fec7f830e14", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-92b645dd86179454", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/ui/src/components/Accordion/Accordion.tsx:56"}, "properties": {"repobilityId": "9426e44c5a6b88fb", "scanner": "scanner-primary", "fingerprint": "92b645dd86179454", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ca4c8cace15d91dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/ActionMenu/ActionMenu.tsx:139"}, "properties": {"repobilityId": "5a9c835e823a0080", "scanner": "scanner-primary", "fingerprint": "ca4c8cace15d91dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-820c243c701c18b0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/src/components/Dropdown/Dropdown.tsx:255"}, "properties": {"repobilityId": "4290560182ee9a0e", "scanner": "scanner-primary", "fingerprint": "820c243c701c18b0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-522ee5ae33ee643f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/extension/src/popup/popup.test.ts:35"}, "properties": {"repobilityId": "0f181c95ffbeab4e", "scanner": "scanner-primary", "fingerprint": "522ee5ae33ee643f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/extension/src/popup/popup.test.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-2b5d184aec4ce689", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/graphify-mcp.mjs:14"}, "properties": {"repobilityId": "9dc964e014293d9c", "scanner": "scanner-primary", "fingerprint": "2b5d184aec4ce689", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/graphify-mcp.mjs"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-7e347690b9146af1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/ui/src/components/Accordion/Accordion.stories.tsx:32"}, "properties": {"repobilityId": "3b082dfa82594e9d", "scanner": "scanner-primary", "fingerprint": "7e347690b9146af1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ui/src/components/Accordion/Accordion.stories.tsx"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-318477c40c24cd7c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/ci-dashboard.html:1800"}, "properties": {"repobilityId": "a218920674959da1", "scanner": "scanner-primary", "fingerprint": "318477c40c24cd7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "landing/ci-dashboard.html"}, "region": {"startLine": 1800}}}]}, {"ruleId": "scanner-c39c4052691908c1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/index.html:1208"}, "properties": {"repobilityId": "e521b5b108cf58d5", "scanner": "scanner-primary", "fingerprint": "c39c4052691908c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "landing/index.html"}, "region": {"startLine": 1208}}}]}, {"ruleId": "scanner-848388dd1ac3988f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/creature.html:995"}, "properties": {"repobilityId": "7cc29f10d87f8554", "scanner": "scanner-primary", "fingerprint": "848388dd1ac3988f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "landing/creature.html"}, "region": {"startLine": 995}}}]}, {"ruleId": "scanner-b73f070efd2a0c32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/architecture-map.html:3823"}, "properties": {"repobilityId": "68b94541e64594d9", "scanner": "scanner-primary", "fingerprint": "b73f070efd2a0c32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "landing/architecture-map.html"}, "region": {"startLine": 3823}}}]}, {"ruleId": "scanner-a7fac47016f2e7ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in landing/how-it-works.html:1134"}, "properties": {"repobilityId": "6c8de56d6f4346fd", "scanner": "scanner-primary", "fingerprint": "a7fac47016f2e7ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "landing/how-it-works.html"}, "region": {"startLine": 1134}}}]}, {"ruleId": "scanner-3f3ab8125a9ced36", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/review-gate.mjs:13"}, "properties": {"repobilityId": "f12fa17c6a67c966", "scanner": "scanner-primary", "fingerprint": "3f3ab8125a9ced36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/review-gate.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-95f65dac6cc7aaee", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0bb28f3e4dcbeea5", "scanner": "scanner-primary", "fingerprint": "95f65dac6cc7aaee", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-448d8837178ae57a", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "13af6451e15656fc", "scanner": "scanner-primary", "fingerprint": "448d8837178ae57a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-063997d8d14f8d5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b268301d4ba9d1b9", "scanner": "scanner-primary", "fingerprint": "063997d8d14f8d5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b62917ba5b30c017", "level": "note", "message": {"text": "Very large file: apps/tauri/src-tauri/src/export/typst_engine/test.rs (3067 lines)"}, "properties": {"repobilityId": "30c584854e3e52b2", "scanner": "scanner-primary", "fingerprint": "b62917ba5b30c017", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfa54070a7dda1ac", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/tauri/package.json"}, "properties": {"repobilityId": "6341bf935060427e", "scanner": "scanner-primary", "fingerprint": "dfa54070a7dda1ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/tauri/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16829d81c356f9c7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/extension/package.json"}, "properties": {"repobilityId": "5982776453cfa648", "scanner": "scanner-primary", "fingerprint": "16829d81c356f9c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/extension/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2699d5f16ae11282", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "properties": {"repobilityId": "37ac218a4ef9b430", "scanner": "scanner-primary", "fingerprint": "2699d5f16ae11282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/shared/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50218c90b43393bb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ui/package.json"}, "properties": {"repobilityId": "637e26a8c754e81d", "scanner": "scanner-primary", "fingerprint": "50218c90b43393bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c034792686b5ac55", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/prompts/package.json"}, "properties": {"repobilityId": "c39d58a3ee1bcaad", "scanner": "scanner-primary", "fingerprint": "c034792686b5ac55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/prompts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-006df4168a4741f3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/translations/package.json"}, "properties": {"repobilityId": "f3d768fa44a5d803", "scanner": "scanner-primary", "fingerprint": "006df4168a4741f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/translations/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5aa01e0d43240da1", "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": "646250ec11424add", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "65c46cce6f6d87fe", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "ca9575dfa7423f84", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "e23d1ad5d67fda9e", "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": "b7c6a8759eb58792", "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": "ac2e9d7f6ec7b587", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b3e38c9f0f047ef", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-ats.md"}, "properties": {"repobilityId": "34ffe37e57697af5", "scanner": "scanner-primary", "fingerprint": "2b3e38c9f0f047ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-ats.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16f18eafedee63cb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-security.md"}, "properties": {"repobilityId": "498c2d4ad5c63eeb", "scanner": "scanner-primary", "fingerprint": "16f18eafedee63cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-security.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9cdbadb0d5998847", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-resume.md"}, "properties": {"repobilityId": "a76b0f8d8cfdbc13", "scanner": "scanner-primary", "fingerprint": "9cdbadb0d5998847", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-resume.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14984230e55e665f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/update-docs.md"}, "properties": {"repobilityId": "ded2063a1eeecb3e", "scanner": "scanner-primary", "fingerprint": "14984230e55e665f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/update-docs.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e07939216089fc74", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-scraping.md"}, "properties": {"repobilityId": "70d81054de0517b2", "scanner": "scanner-primary", "fingerprint": "e07939216089fc74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-scraping.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-104a5e8c75559edf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-performance.md"}, "properties": {"repobilityId": "6bf86ff84f850db0", "scanner": "scanner-primary", "fingerprint": "104a5e8c75559edf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-performance.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84ca8c6de02f3b23", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-ai.md"}, "properties": {"repobilityId": "195aa3a078829e3a", "scanner": "scanner-primary", "fingerprint": "84ca8c6de02f3b23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-ai.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adaf9f045a670726", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-frontend.md"}, "properties": {"repobilityId": "e2ad7886de3250ec", "scanner": "scanner-primary", "fingerprint": "adaf9f045a670726", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-frontend.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-090d8d875e970b19", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review-template.md"}, "properties": {"repobilityId": "34ae49a2322615f8", "scanner": "scanner-primary", "fingerprint": "090d8d875e970b19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review-template.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-322be6eeffd10e85", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/performance-profiler.md"}, "properties": {"repobilityId": "2a8074835baae59c", "scanner": "scanner-primary", "fingerprint": "322be6eeffd10e85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/performance-profiler.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48f5d62efd67d195", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/tauri-security-reviewer.md"}, "properties": {"repobilityId": "4c903acd81807c58", "scanner": "scanner-primary", "fingerprint": "48f5d62efd67d195", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/tauri-security-reviewer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-03ec5742fb34da17", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/project-steward.md"}, "properties": {"repobilityId": "6f09f24dc770c02a", "scanner": "scanner-primary", "fingerprint": "03ec5742fb34da17", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/project-steward.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f15a825220714c9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/tauri-standards/SKILL.md"}, "properties": {"repobilityId": "0558745c92b3fb08", "scanner": "scanner-primary", "fingerprint": "8f15a825220714c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/tauri-standards/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c3e593b3d1c9f61", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/security-checklist/SKILL.md"}, "properties": {"repobilityId": "6720b77963cef5ba", "scanner": "scanner-primary", "fingerprint": "8c3e593b3d1c9f61", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/security-checklist/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36c18f6b25022f1c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/code-quality/SKILL.md"}, "properties": {"repobilityId": "b962df466b1b775e", "scanner": "scanner-primary", "fingerprint": "36c18f6b25022f1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/code-quality/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-32d93845c072d0c0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/automation-standards/SKILL.md"}, "properties": {"repobilityId": "b51ad3b9bb6e439b", "scanner": "scanner-primary", "fingerprint": "32d93845c072d0c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/automation-standards/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54173108e8904cb5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .cursor/rules/renderer-ui.mdc"}, "properties": {"repobilityId": "5a2d1c737aea8d6b", "scanner": "scanner-primary", "fingerprint": "54173108e8904cb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "cursor_rule"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".cursor/rules/renderer-ui.mdc"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f72904d0a2e195c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .cursor/rules/packages.mdc"}, "properties": {"repobilityId": "fecfe92f67eb9219", "scanner": "scanner-primary", "fingerprint": "6f72904d0a2e195c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "cursor_rule"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".cursor/rules/packages.mdc"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dce0837d3455c801", "level": "none", "message": {"text": "Commented-code block (5 lines) in lostpixel.config.ts:1"}, "properties": {"repobilityId": "0bde49e62855dd80", "scanner": "scanner-primary", "fingerprint": "dce0837d3455c801", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a35eae9dfaf5111", "level": "none", "message": {"text": "Commented-code block (6 lines) in eslint.config.mjs:431"}, "properties": {"repobilityId": "bbde4a319b1b1cad", "scanner": "scanner-primary", "fingerprint": "3a35eae9dfaf5111", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cf3ed94103ccdbf", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/vitest.config.ts:7"}, "properties": {"repobilityId": "6891b6edfed7344b", "scanner": "scanner-primary", "fingerprint": "7cf3ed94103ccdbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fff8c002c342b65", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/contact/ContactProfileForm/index.tsx:139"}, "properties": {"repobilityId": "9d0ab224ce1c7f6f", "scanner": "scanner-primary", "fingerprint": "1fff8c002c342b65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1db671d365b306d9", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/tauri/src/renderer/components/ui/ModelSelector/index.tsx:97"}, "properties": {"repobilityId": "113e6c1900388864", "scanner": "scanner-primary", "fingerprint": "1db671d365b306d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26cc7a652c115844", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/RewritePopover.tsx:124"}, "properties": {"repobilityId": "4b367ff746cdef1c", "scanner": "scanner-primary", "fingerprint": "26cc7a652c115844", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84a9042c29ef07fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/EditableOutput.test.tsx:31"}, "properties": {"repobilityId": "8fc566aed3f59028", "scanner": "scanner-primary", "fingerprint": "84a9042c29ef07fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b65c721772d19047", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/components/generation/EditableOutput/index.tsx:206"}, "properties": {"repobilityId": "b02e5f277461e0bf", "scanner": "scanner-primary", "fingerprint": "b65c721772d19047", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d97adcedceaee4e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/tauri/src/renderer/hooks/use-menu-navigation.test.ts:10"}, "properties": {"repobilityId": "a787ce9e50ccd9f5", "scanner": "scanner-primary", "fingerprint": "4d97adcedceaee4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-003ad4bf631b074f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/services/use-ai-provider/use-ai-provider.ts:53"}, "properties": {"repobilityId": "f5923c8942a3e6c9", "scanner": "scanner-primary", "fingerprint": "003ad4bf631b074f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ffd172a129decbd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/store/preferences-schema/preferences-schema.ts:282"}, "properties": {"repobilityId": "64868ba9ceb6dd79", "scanner": "scanner-primary", "fingerprint": "0ffd172a129decbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-609f85133fb73086", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/settings/components/general-section/AppearanceCard.test.tsx:128"}, "properties": {"repobilityId": "be18a5a4c72e601e", "scanner": "scanner-primary", "fingerprint": "609f85133fb73086", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3235519fdb7fe6c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/tauri/src/renderer/features/resumes/components/GenerationCard/index.tsx:93"}, "properties": {"repobilityId": "84463a419b79229b", "scanner": "scanner-primary", "fingerprint": "f3235519fdb7fe6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52ee2fbf49ee79c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/GenerationOutput.test.tsx:487"}, "properties": {"repobilityId": "9086f9d4485b3ed2", "scanner": "scanner-primary", "fingerprint": "52ee2fbf49ee79c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b46cccbbb40b0a96", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/autopilot/components/ApplyPage/useTailorGeneration.ts:109"}, "properties": {"repobilityId": "ee57e0eeda4eb1e0", "scanner": "scanner-primary", "fingerprint": "b46cccbbb40b0a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8dc648e4153f94", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/applications/components/ApplicationRow/ApplicationRow.test.tsx:218"}, "properties": {"repobilityId": "e1a5aef82f9450fd", "scanner": "scanner-primary", "fingerprint": "7a8dc648e4153f94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a7bb46fec6b1a9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/components/OutputPanelDone/index.tsx:67"}, "properties": {"repobilityId": "96b5bc12d6c9e3e4", "scanner": "scanner-primary", "fingerprint": "4a7bb46fec6b1a9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4678a0486135ac3f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/tauri/src/renderer/features/ai-generate/samples/samples.ts:3"}, "properties": {"repobilityId": "86ede9aee439425e", "scanner": "scanner-primary", "fingerprint": "4678a0486135ac3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e803539ff85d41e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/tauri/src/renderer/features/jobs/components/ScrapeForm/constants.ts:13"}, "properties": {"repobilityId": "9b859f6b311b81ee", "scanner": "scanner-primary", "fingerprint": "5e803539ff85d41e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-26b0461af38791ea", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/extension/scripts/gen-store-assets.mjs:8"}, "properties": {"repobilityId": "a2b94f8076109948", "scanner": "scanner-primary", "fingerprint": "26b0461af38791ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48a8bfe1ae521475", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/extension/src/content.ts:57"}, "properties": {"repobilityId": "6b581924adc53506", "scanner": "scanner-primary", "fingerprint": "48a8bfe1ae521475", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42333a78727f7632", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/extension/src/lib/bridge.ts:174"}, "properties": {"repobilityId": "d11237a781a2f2c6", "scanner": "scanner-primary", "fingerprint": "42333a78727f7632", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee5497d53e0d2705", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/check-landing-drift.mjs:9"}, "properties": {"repobilityId": "03499cb8575f4f76", "scanner": "scanner-primary", "fingerprint": "ee5497d53e0d2705", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ea296cefdeda028", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/sync-tauri-version.cjs:56"}, "properties": {"repobilityId": "065203e7b40dc498", "scanner": "scanner-primary", "fingerprint": "0ea296cefdeda028", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e55083423d2aa978", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/graphify-mcp.mjs:4"}, "properties": {"repobilityId": "805c7aa84369c45a", "scanner": "scanner-primary", "fingerprint": "e55083423d2aa978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d481bb60642ea3", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-workflow-catalog.mjs:1"}, "properties": {"repobilityId": "226456fb5e0f5fab", "scanner": "scanner-primary", "fingerprint": "e7d481bb60642ea3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ec6a80dea0eef65", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/ipc/contracts.test.ts:122"}, "properties": {"repobilityId": "46c87516529bb00e", "scanner": "scanner-primary", "fingerprint": "2ec6a80dea0eef65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cff1dff9cb8730a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/events/system.ts:1"}, "properties": {"repobilityId": "bd3a3df5b9954c46", "scanner": "scanner-primary", "fingerprint": "cff1dff9cb8730a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfdfb6ceee193d70", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/shared/src/schemas/index.ts:142"}, "properties": {"repobilityId": "41a9bdaa36a8b240", "scanner": "scanner-primary", "fingerprint": "cfdfb6ceee193d70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d38dc5c1ceb64ea9", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ui/vitest.storybook.config.ts:10"}, "properties": {"repobilityId": "d0326bae91dd11ba", "scanner": "scanner-primary", "fingerprint": "d38dc5c1ceb64ea9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14f083fde6c5521d", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/ui/src/components/Button/Button.stories.tsx:107"}, "properties": {"repobilityId": "7145b81af45a04ca", "scanner": "scanner-primary", "fingerprint": "14f083fde6c5521d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebb6acff19ab4685", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/decorations.ts:95"}, "properties": {"repobilityId": "6433c28c0b0e2519", "scanner": "scanner-primary", "fingerprint": "ebb6acff19ab4685", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f4ccf4d8b17282f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ui/src/components/RichTextEditor/markdown.ts:166"}, "properties": {"repobilityId": "b351d5326a92e49b", "scanner": "scanner-primary", "fingerprint": "8f4ccf4d8b17282f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a90242611bce000", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/src/components/LocationInput/LocationInput.test.tsx:60"}, "properties": {"repobilityId": "21176fb8a147934a", "scanner": "scanner-primary", "fingerprint": "3a90242611bce000", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d4d813c4bb694e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ui/src/components/ModalShell/ModalShell.tsx:73"}, "properties": {"repobilityId": "c7f5de5e783e7996", "scanner": "scanner-primary", "fingerprint": "6d4d813c4bb694e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12eaa7de0f74f73c", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/ui/src/components/Accordion/Accordion.tsx:51"}, "properties": {"repobilityId": "32a01ba46d2af742", "scanner": "scanner-primary", "fingerprint": "12eaa7de0f74f73c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb9cb937ff4a87ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ui/src/components/HoverPopover/HoverPopover.test.tsx:189"}, "properties": {"repobilityId": "bc89e32850009879", "scanner": "scanner-primary", "fingerprint": "eb9cb937ff4a87ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e47c2c09348ed361", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ui/src/components/HoverPopover/HoverPopover.tsx:108"}, "properties": {"repobilityId": "b1c64673b0f1e994", "scanner": "scanner-primary", "fingerprint": "e47c2c09348ed361", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-324f0044c867adbf", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/ui/src/hooks/useDropdownPosition.ts:31"}, "properties": {"repobilityId": "b51b1adb30d1e0ea", "scanner": "scanner-primary", "fingerprint": "324f0044c867adbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8c58cbc2840d46f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/prompts/src/generate/rewrite.test.ts:101"}, "properties": {"repobilityId": "66e21fdf51910cb1", "scanner": "scanner-primary", "fingerprint": "d8c58cbc2840d46f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0775bb56932686b6", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/prompts/src/generate/rewrite.ts:75"}, "properties": {"repobilityId": "f0406255614ac4ea", "scanner": "scanner-primary", "fingerprint": "0775bb56932686b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1600263110ac396f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/prompts/src/generate/natural-voice.test.ts:40"}, "properties": {"repobilityId": "b01cf5d5c9a46af4", "scanner": "scanner-primary", "fingerprint": "1600263110ac396f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deccf38c3c890c27", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/prompts/src/locale/index.ts:418"}, "properties": {"repobilityId": "9d94a7831f0dd4d4", "scanner": "scanner-primary", "fingerprint": "deccf38c3c890c27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-defd11ed83b4ef7e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/translations/i18next.config.ts:8"}, "properties": {"repobilityId": "79a6ae3cdac7841d", "scanner": "scanner-primary", "fingerprint": "defd11ed83b4ef7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b36cb91af8327afe", "level": "none", "message": {"text": "Commented-code block (6 lines) in .claude/hooks/lessons.mjs:2"}, "properties": {"repobilityId": "047a92ca52e84440", "scanner": "scanner-primary", "fingerprint": "b36cb91af8327afe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}