{"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-4f5656e0fb5b81f7", "name": "Stray `console.log` in TS/JS \u2014 scripts/import-wp.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-wp.ts:110"}, "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-53e65b13d36627f4", "name": "Stray `console.log` in TS/JS \u2014 scripts/run-pgtap.ts:288", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-pgtap.ts:288"}, "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-5e3e3307f2865531", "name": "Stray `console.log` in TS/JS \u2014 worker/src/index.ts:178", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker/src/index.ts:178"}, "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-b3e84805adb41251", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/schedule-gantt.tsx:403", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/schedule-gantt.tsx:403"}, "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-d4b05819d3e907a3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/record-manager.tsx:252", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/record-manager.tsx:252"}, "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-8eb8968ee6cbcf71", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-card.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-card.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-c281d76789f4e93d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-form.tsx:159", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-form.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-13af78ea7ea9476f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/upload-queue-runner.tsx:222", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/upload-queue-runner.tsx:222"}, "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-389f487fd5fc6358", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-log-zone.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-log-zone.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-d7785b95f9a428a0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-cost-view.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-cost-view.tsx:115"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a9aa48a45cbbe54", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-attachment-stager.tsx:332", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-attachment-stager.tsx:332"}, "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-08bc4a9350cf71c9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/requests/[requestId]/page.tsx:158", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/requests/[requestId]/page.tsx:158"}, "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-3736c7ffc526dd63", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/page.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/page.tsx:85"}, "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-9c6d1c69bcce15da", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/work-packages/[workPackageId]/page.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/work-packages/[workPackageId]/page.tsx:163"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-819e4476495b6f0f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/page.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/page.tsx:75"}, "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-883ef33b2c65be86", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/[projectId]/settings/settings-form.tsx:341", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/[projectId]/settings/settings-form.tsx:341"}, "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-575951a97b0f173f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/payroll/page.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/payroll/page.tsx:115"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-494479e3b367439f", "name": "Insecure pattern 'node_child_process' in scripts/run-pgtap.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-pgtap.ts:11"}, "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-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-871dba9f26bc679b", "name": "Very large file: src/lib/db/database.types.ts (2178 lines)", "shortDescription": {"text": "Very large file: src/lib/db/database.types.ts (2178 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 13 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 54 placeholder/mock markers across 25 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cfbfe2c4efea701", "name": "Commented-code block (6 lines) in next.config.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in next.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-40937ec9aedaef93", "name": "Commented-code block (5 lines) in tests/unit/storage-signed-urls.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/storage-signed-urls.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-584ac2e5b59dcaeb", "name": "Commented-code block (6 lines) in tests/unit/purchase-request-tracker.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/purchase-request-tracker.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9bb7aa5e20d3a2a", "name": "Commented-code block (5 lines) in tests/unit/photo-strip.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/photo-strip.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35cd04c14e5eaa0c", "name": "Commented-code block (5 lines) in tests/unit/validate-display-name.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/validate-display-name.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-364f16bb35d81c68", "name": "Commented-code block (5 lines) in tests/unit/design-doctrine.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/design-doctrine.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-984bcd902a3ca176", "name": "Commented-code block (5 lines) in tests/unit/work-package-info-button.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/work-package-info-button.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6575e29b9ddda2b0", "name": "Commented-code block (9 lines) in tests/unit/standalone-login-button.test.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/unit/standalone-login-button.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6777f620b5f54ce0", "name": "Commented-code block (7 lines) in tests/unit/nav-back-affordance.test.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/nav-back-affordance.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4574019c7d13b78", "name": "Commented-code block (6 lines) in tests/unit/toast-provider.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/toast-provider.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42482bdf0a3000dc", "name": "Commented-code block (5 lines) in tests/unit/purchase-order.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/purchase-order.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0559301bf22fb39a", "name": "Commented-code block (6 lines) in tests/unit/ui-classes-spec65.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/ui-classes-spec65.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1478d99482b8407b", "name": "Commented-code block (6 lines) in tests/unit/labor-cost.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/labor-cost.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-322ab67ed4e56112", "name": "Commented-code block (5 lines) in tests/unit/viewport-scroll-guard.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/viewport-scroll-guard.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34346e8e3e0ca4b6", "name": "Commented-code block (7 lines) in tests/unit/role-home.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/role-home.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e2fbee955b44851", "name": "Commented-code block (6 lines) in tests/unit/labor-payroll.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/labor-payroll.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4719b0c8d640adf", "name": "Commented-code block (6 lines) in tests/unit/photo-lightbox.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/photo-lightbox.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70576aa389637a9f", "name": "Commented-code block (5 lines) in tests/unit/labor-variance.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/labor-variance.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-668a44dcd04009c2", "name": "Commented-code block (5 lines) in tests/unit/bottom-tab-bar.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/bottom-tab-bar.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d4d4351d9da8e7e", "name": "Commented-code block (7 lines) in tests/unit/requests-primary-tab-nav.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/requests-primary-tab-nav.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6eb879eaf4ef7514", "name": "Commented-code block (8 lines) in tests/unit/wp-schedule-panel-overflow.test.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/wp-schedule-panel-overflow.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5341fbbb14b153f", "name": "Commented-code block (5 lines) in tests/unit/status-colors.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/status-colors.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f9a8b3463eeb104", "name": "Commented-code block (8 lines) in tests/unit/project-paths.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/project-paths.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdbbe85f436663f2", "name": "Commented-code block (5 lines) in tests/unit/display-names.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/display-names.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-043c2ecc1461de8b", "name": "Commented-code block (7 lines) in tests/unit/payroll-period-form-layout.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/payroll-period-form-layout.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02ca8bc97df11d60", "name": "Commented-code block (10 lines) in tests/unit/require-role.test.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in tests/unit/require-role.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a916f09e6de16e43", "name": "Commented-code block (8 lines) in tests/unit/validate-purchase-request.test.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/validate-purchase-request.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2ee7cbba064823b", "name": "Commented-code block (5 lines) in tests/unit/dates-bangkok.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/dates-bangkok.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21af468753fe0141", "name": "Commented-code block (5 lines) in tests/unit/action-bands.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/action-bands.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b90a1cca406eb1d7", "name": "Commented-code block (5 lines) in tests/e2e/auth-unauthenticated.spec.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/auth-unauthenticated.spec.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-5680328fec8cbfc7", "name": "Commented-code block (6 lines) in scripts/import-wp.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/import-wp.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9fe076396178020", "name": "Commented-code block (6 lines) in scripts/run-pgtap.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/run-pgtap.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcde28d39227882d", "name": "Commented-code block (7 lines) in worker/tests/unit/report.test.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in worker/tests/unit/report.test.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-53b9c92320bcb75e", "name": "Commented-code block (6 lines) in worker/src/report.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in worker/src/report.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-6cb362cfd4da4e54", "name": "Commented-code block (17 lines) in worker/src/index.ts:3", "shortDescription": {"text": "Commented-code block (17 lines) in worker/src/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-108d553d0116e507", "name": "Commented-code block (5 lines) in worker/src/supabase.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in worker/src/supabase.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-240282e75b25ef12", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:14"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51f474f050f870d9", "name": "Commented-code block (5 lines) in src/test/server-only-stub.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/test/server-only-stub.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-0eb08fccbb11b1b5", "name": "Commented-code block (5 lines) in src/components/features/page-skeleton.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/page-skeleton.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-354c7b0eb04e6a93", "name": "Commented-code block (6 lines) in src/components/features/site-purchase-form.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/site-purchase-form.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a30fd6b53088bef", "name": "Commented-code block (5 lines) in src/components/features/bottom-tab-bar.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/bottom-tab-bar.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be0b79040dd5d595", "name": "Commented-code block (5 lines) in src/components/features/contact-crew-section.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/contact-crew-section.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-078029f7b6e96ff4", "name": "Commented-code block (11 lines) in src/components/features/schedule-gantt.tsx:3", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/features/schedule-gantt.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d98de90277dcf7c", "name": "Commented-code block (5 lines) in src/components/features/record-manager.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/record-manager.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f29d54bb6bb4aa9", "name": "Commented-code block (5 lines) in src/components/features/bottom-sheet.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/bottom-sheet.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a9003fec23af803", "name": "Commented-code block (6 lines) in src/components/features/create-purchase-order-sheet.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/create-purchase-order-sheet.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79d3410a66e51a97", "name": "Commented-code block (6 lines) in src/components/features/purchase-request-card.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/purchase-request-card.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c10c441d7ae9d9fe", "name": "Commented-code block (5 lines) in src/components/features/wp-schedule-panel.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/wp-schedule-panel.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b93d66acbd646b15", "name": "Commented-code block (6 lines) in src/components/features/toast-provider.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/toast-provider.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-274e43ac43724285", "name": "Commented-code block (5 lines) in src/components/features/refresh-button.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/refresh-button.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ab4608a7bc28b0a", "name": "Commented-code block (5 lines) in src/components/features/status-pill.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/status-pill.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b78f4752d360160f", "name": "Commented-code block (6 lines) in src/components/features/confirm-action-button.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/confirm-action-button.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13af588e7adf85fe", "name": "Commented-code block (5 lines) in src/components/features/phone-po-basket.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/phone-po-basket.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d02d03f4426dd261", "name": "Commented-code block (5 lines) in src/components/features/refreeze-button.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/refreeze-button.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43bf1114d1c00791", "name": "Commented-code block (12 lines) in src/components/features/delivery-photo-uploader.tsx:7", "shortDescription": {"text": "Commented-code block (12 lines) in src/components/features/delivery-photo-uploader.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f21d74a41d09d1c5", "name": "Commented-code block (5 lines) in src/components/features/purchase-request-form.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/purchase-request-form.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-028d16a461d3ad85", "name": "Commented-code block (5 lines) in src/components/features/page-shell.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/page-shell.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d300fcd19596bf2", "name": "Commented-code block (5 lines) in src/components/features/upload-queue-runner.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/upload-queue-runner.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a141c0df7c2e38b2", "name": "Commented-code block (5 lines) in src/components/features/invoice-uploader.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/invoice-uploader.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fff4c833858c25e1", "name": "Commented-code block (6 lines) in src/components/features/detail-header.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/detail-header.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2af1c0fc61733a3", "name": "Commented-code block (6 lines) in src/components/features/purchase-request-tracker.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/purchase-request-tracker.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4cf9ddae382477f5", "name": "Commented-code block (5 lines) in src/components/features/photo-strip.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/photo-strip.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f74aa1638c72c05c", "name": "Commented-code block (7 lines) in src/components/features/hub-nav.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/features/hub-nav.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a995627c66849e8", "name": "Commented-code block (6 lines) in src/components/features/worklist-row.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/worklist-row.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b97fe238c9a10eb1", "name": "Commented-code block (6 lines) in src/components/features/notes-field.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/notes-field.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1aeefa62d0f11f77", "name": "Commented-code block (7 lines) in src/components/features/viewport-scroll-guard.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/features/viewport-scroll-guard.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-962c02fda4d6680e", "name": "Commented-code block (6 lines) in src/components/features/radio-chip.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/radio-chip.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1c4be242a7d1e66", "name": "Commented-code block (6 lines) in src/components/features/labor-cost-view.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/features/labor-cost-view.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c6cbc9324a822a8", "name": "Commented-code block (5 lines) in src/components/features/site-purchase-acknowledge.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/site-purchase-acknowledge.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5aca7871348640be", "name": "Commented-code block (7 lines) in src/components/features/contacts-tabs.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/features/contacts-tabs.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4549d19e5f452a39", "name": "Commented-code block (5 lines) in src/components/features/app-header.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/app-header.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-854343edbc2a091c", "name": "Commented-code block (5 lines) in src/components/features/procurement-grid.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/procurement-grid.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-248de298e1402737", "name": "Commented-code block (7 lines) in src/components/features/purchase-request-attachment-stager.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/features/purchase-request-attachment-stager.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dda3dbd4102e735c", "name": "Commented-code block (5 lines) in src/components/features/confirm-dialog.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/confirm-dialog.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ee8d4d13c3c26b2", "name": "Commented-code block (5 lines) in src/components/features/wp-priority-control.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/wp-priority-control.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff40339402138ec4", "name": "Commented-code block (5 lines) in src/components/features/purchase-request-decision.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/features/purchase-request-decision.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6997dbd80d64d724", "name": "Commented-code block (6 lines) in src/app/manifest.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/manifest.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-94810b7645a40654", "name": "Commented-code block (7 lines) in src/app/global-error.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/global-error.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37263ebd93598d71", "name": "Commented-code block (6 lines) in src/app/settings/page.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/settings/page.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e5e9db9dcb4e25d", "name": "Commented-code block (6 lines) in src/app/pm/requests/route.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/pm/requests/route.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-3764fb43758a25c4", "name": "Commented-code block (5 lines) in src/app/grid-preview/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/grid-preview/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93a8b286ce878bb4", "name": "Commented-code block (11 lines) in src/app/auth/line/callback/route.ts:5", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/auth/line/callback/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8be4157a1a0c1b5", "name": "Commented-code block (6 lines) in src/app/auth/line/start/route.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/auth/line/start/route.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-c0e66f3dfac196c2", "name": "Commented-code block (7 lines) in src/app/auth/handoff/poll/route.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/auth/handoff/poll/route.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-38f3a7df07a60b99", "name": "Commented-code block (7 lines) in src/app/auth/handoff/start/route.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/auth/handoff/start/route.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-00afbfecce55099b", "name": "Commented-code block (8 lines) in src/app/requests/actions.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/requests/actions.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-641c861143a53240", "name": "Commented-code block (6 lines) in src/app/requests/page.tsx:20", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/requests/page.tsx:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-922ebdf253a939fd", "name": "Commented-code block (6 lines) in src/app/requests/[requestId]/notes-actions.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/requests/[requestId]/notes-actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89cc4937a5efdd60", "name": "Commented-code block (5 lines) in src/app/requests/[requestId]/page.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/requests/[requestId]/page.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a5792cdfa2e49f6", "name": "Commented-code block (7 lines) in src/app/review/page.tsx:31", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/review/page.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-681762923cf1435c", "name": "Commented-code block (9 lines) in src/app/review/work-packages/[workPackageId]/actions.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/review/work-packages/[workPackageId]/actions.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26697df0bd93cf6f", "name": "Commented-code block (6 lines) in src/app/review/work-packages/[workPackageId]/record-decision-form.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/review/work-packages/[workPackageId]/record-decision-form.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43668b7bf6a2cdd9", "name": "Commented-code block (6 lines) in src/app/projects/page.tsx:17", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/projects/page.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c825d224e73adbe", "name": "Commented-code block (10 lines) in src/app/projects/[projectId]/reports/reports-list.tsx:8", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/projects/[projectId]/reports/reports-list.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26171e5e81efdac3", "name": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/generate-report-button.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/generate-report-button.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46acb699d36697e3", "name": "Commented-code block (7 lines) in src/app/projects/[projectId]/reports/actions.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/reports/actions.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f4baef034175686", "name": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/page.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/page.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1951057441c9b52e", "name": "Commented-code block (12 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/use-phase-capture.ts:7", "shortDescription": {"text": "Commented-code block (12 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/use-phase-capture.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-a71f1e2fdf79a431", "name": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/assignment-actions.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/assignment-actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b708af0b67b64eda", "name": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/priority-actions.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/priority-actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1178f3510db463b", "name": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/notes-actions.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/notes-actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5be7cbf91031ae0f", "name": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/schedule-actions.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/schedule-actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a17d36493e5a9c7e", "name": "Commented-code block (14 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/actions.ts:9", "shortDescription": {"text": "Commented-code block (14 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/actions.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbfa4251a8ef91aa", "name": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/capture-sheet.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/capture-sheet.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3220f76d5e1abf18", "name": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/phase-uploader.tsx:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/phase-uploader.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3ec67aa8b763c8e", "name": "Commented-code block (5 lines) in src/app/login/standalone-login-button.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/login/standalone-login-button.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-563f089326f85d9a", "name": "Commented-code block (5 lines) in src/app/api/notifications/drain/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/notifications/drain/route.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-b273d3dc0425c9a9", "name": "Commented-code block (5 lines) in src/app/photo-markups/actions.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/photo-markups/actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7e0888870bf9d09", "name": "Commented-code block (6 lines) in src/app/dashboard/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c300241d4a917600", "name": "Commented-code block (6 lines) in src/app/payroll/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/payroll/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1e24b83f703cc72", "name": "Commented-code block (5 lines) in src/app/payroll/export/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/payroll/export/route.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-b43882a9f23a99f9", "name": "Commented-code block (8 lines) in src/app/contacts/actions.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/contacts/actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae6f69a583520ecd", "name": "Commented-code block (6 lines) in src/app/contacts/vendors/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/contacts/vendors/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa19adc579488225", "name": "Commented-code block (6 lines) in src/app/coming-soon/actions.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/coming-soon/actions.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-842cb21166fd3582", "name": "Commented-code block (6 lines) in src/app/coming-soon/page.tsx:47", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/coming-soon/page.tsx:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfdae91b41bdd2f6", "name": "Commented-code block (6 lines) in src/lib/env.server.ts:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/env.server.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-814fa9a64af9891f", "name": "Commented-code block (7 lines) in src/lib/status-colors.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/status-colors.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-a6b18811c8ddd9c7", "name": "Commented-code block (5 lines) in src/lib/dates.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/dates.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-405601bd46e22b4e", "name": "Commented-code block (6 lines) in src/lib/users/display-names.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/users/display-names.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-2573bdf941c45270", "name": "Commented-code block (5 lines) in src/lib/notifications/resolve-recipients.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/notifications/resolve-recipients.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-f5651e288e98ac07", "name": "Commented-code block (5 lines) in src/lib/i18n/labels.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/i18n/labels.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-3d5232536ff64013", "name": "Commented-code block (5 lines) in src/lib/wp-import/parse.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/wp-import/parse.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-2aea9efd9d0311e7", "name": "Commented-code block (6 lines) in src/lib/auth/require-role.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/auth/require-role.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-fb0c2cad2610a457", "name": "Commented-code block (5 lines) in src/lib/ui/page-width.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/ui/page-width.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-8682342a515ca46b", "name": "Commented-code block (6 lines) in src/lib/ui/use-toast.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/ui/use-toast.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-53d4a67c89fa0811", "name": "Commented-code block (9 lines) in src/lib/nav/project-paths.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/nav/project-paths.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-a8221aa18cf61edf", "name": "Commented-code block (6 lines) in src/lib/approvals/predicates.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/approvals/predicates.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-c6ee07b958d87def", "name": "Commented-code block (6 lines) in src/lib/approvals/latest-decision.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/approvals/latest-decision.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-2ac83cd502cb4fc6", "name": "Commented-code block (8 lines) in src/lib/deliverables/group-work-packages.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/deliverables/group-work-packages.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-8a56e1d4231804ac", "name": "Commented-code block (5 lines) in src/lib/deliverables/derive-progress.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/deliverables/derive-progress.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-951012aaecbcd29f", "name": "Commented-code block (7 lines) in src/lib/photos/phase-progress.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/photos/phase-progress.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7af2235659ba8145", "name": "Commented-code block (5 lines) in src/lib/photos/tombstone.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/photos/tombstone.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-1094e4735467d47b", "name": "Commented-code block (6 lines) in src/lib/photos/validate-markup.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/photos/validate-markup.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-bf51fe83714ab767", "name": "Commented-code block (5 lines) in src/lib/photos/transitions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/photos/transitions.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-8b8fb20da83dcb8b", "name": "Commented-code block (5 lines) in src/lib/photos/current-photos.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/photos/current-photos.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32de5f1eb0ef2110", "name": "Commented-code block (5 lines) in src/lib/photos/downscale.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/photos/downscale.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68150d5503bc7782", "name": "Commented-code block (7 lines) in src/lib/photos/upload-queue.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/photos/upload-queue.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21b4bfda073ae916", "name": "Commented-code block (5 lines) in src/lib/notes/validate.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/notes/validate.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-649797746ee2d58d", "name": "Commented-code block (6 lines) in src/lib/contacts/document-path.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/contacts/document-path.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-02de65754b6b3225", "name": "Commented-code block (5 lines) in src/lib/contacts/documents.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/contacts/documents.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-41ce1de80c65d672", "name": "Commented-code block (5 lines) in src/lib/validate/uuid.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/validate/uuid.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-df8e76c82ebd65a2", "name": "Commented-code block (6 lines) in src/lib/reports/build-pdf.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/reports/build-pdf.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-ca51d7950525ba52", "name": "Commented-code block (5 lines) in src/lib/reports/predicates.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/reports/predicates.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-ed10e6e1dee848b6", "name": "Commented-code block (7 lines) in src/lib/reports/run-report-job.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/reports/run-report-job.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-fa07e4d0a08077d6", "name": "Commented-code block (6 lines) in src/lib/reports/sarabun-font.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/reports/sarabun-font.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-f0226331a1e7d1bb", "name": "Commented-code block (5 lines) in src/lib/work-packages/action-bands.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/work-packages/action-bands.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d60ab8b6c937355", "name": "Commented-code block (5 lines) in src/lib/work-packages/gantt-scale.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/work-packages/gantt-scale.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-493fba39efef94fc", "name": "Commented-code block (5 lines) in src/lib/work-packages/hold.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/work-packages/hold.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-c8f43f91f5a615c7", "name": "Commented-code block (5 lines) in src/lib/work-packages/list-filter.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/work-packages/list-filter.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-6889a67e5b5295a6", "name": "Commented-code block (5 lines) in src/lib/purchasing/columns.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/columns.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-78f8764b039ebcbb", "name": "Commented-code block (5 lines) in src/lib/purchasing/supplier-spend.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/supplier-spend.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bf331920d9d3d22", "name": "Commented-code block (5 lines) in src/lib/purchasing/validate-site-purchase.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/validate-site-purchase.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-fc5e46a4ea7ebd6c", "name": "Commented-code block (5 lines) in src/lib/purchasing/worklist-filter.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/worklist-filter.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45bb7a10c63a0cbb", "name": "Commented-code block (7 lines) in src/lib/purchasing/purchase-order.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/purchasing/purchase-order.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-57307394c58e9add", "name": "Commented-code block (5 lines) in src/lib/purchasing/attachment-signed-urls.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/attachment-signed-urls.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-edb928ede36307f1", "name": "Commented-code block (5 lines) in src/lib/purchasing/attachment-path.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/attachment-path.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-8a32c1e2eb5fa578", "name": "Commented-code block (5 lines) in src/lib/purchasing/pending-order.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/purchasing/pending-order.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-0da96d55270806a6", "name": "Commented-code block (5 lines) in src/lib/labor/fetch-zone-data.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/labor/fetch-zone-data.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-d7c2b2cb26c2fd04", "name": "Commented-code block (6 lines) in src/lib/labor/fetch-payroll.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/labor/fetch-payroll.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-aa228d530b274710", "name": "Commented-code block (6 lines) in src/lib/labor/actions.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/labor/actions.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb45cfb034ac72ed", "name": "Commented-code block (5 lines) in src/lib/labor/variance.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/labor/variance.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-37e8253698b640fd", "name": "Commented-code block (5 lines) in src/lib/labor/current-logs.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/labor/current-logs.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-fe52b6c6067c5e85", "name": "Commented-code block (8 lines) in src/lib/labor/cost.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/labor/cost.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-c7b1f6b84ca3d4b0", "name": "Commented-code block (8 lines) in src/lib/labor/payroll.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/labor/payroll.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-482fe169f17afef1", "name": "Commented-code block (6 lines) in src/lib/storage/signed-urls.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/storage/signed-urls.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2eafc3188c36bb02", "name": "3 env vars used in code but missing from .env.example", "shortDescription": {"text": "3 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CI`, `CLAUDE_ALLOW_AUDIT_LOG_EDIT`, `NODE_ENV`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22082"}, "properties": {"repository": "VAP-Solution/prc-ops", "repoUrl": "https://github.com/VAP-Solution/prc-ops", "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-4f5656e0fb5b81f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/import-wp.ts:110"}, "properties": {"repobilityId": "38e26483a65f3d34", "scanner": "scanner-primary", "fingerprint": "4f5656e0fb5b81f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53e65b13d36627f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/run-pgtap.ts:288"}, "properties": {"repobilityId": "3246810ff9824792", "scanner": "scanner-primary", "fingerprint": "53e65b13d36627f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e3e3307f2865531", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker/src/index.ts:178"}, "properties": {"repobilityId": "9d920df95db5924f", "scanner": "scanner-primary", "fingerprint": "5e3e3307f2865531", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b3e84805adb41251", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/schedule-gantt.tsx:403"}, "properties": {"repobilityId": "61c5737ef2c1aae9", "scanner": "scanner-primary", "fingerprint": "b3e84805adb41251", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4b05819d3e907a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/record-manager.tsx:252"}, "properties": {"repobilityId": "7578fb79f112ff40", "scanner": "scanner-primary", "fingerprint": "d4b05819d3e907a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8eb8968ee6cbcf71", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-card.tsx:64"}, "properties": {"repobilityId": "4fb580aaa775929f", "scanner": "scanner-primary", "fingerprint": "8eb8968ee6cbcf71", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c281d76789f4e93d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-form.tsx:159"}, "properties": {"repobilityId": "91833532d9db547c", "scanner": "scanner-primary", "fingerprint": "c281d76789f4e93d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13af78ea7ea9476f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/upload-queue-runner.tsx:222"}, "properties": {"repobilityId": "18be4e1f4d4ddf60", "scanner": "scanner-primary", "fingerprint": "13af78ea7ea9476f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-389f487fd5fc6358", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-log-zone.tsx:82"}, "properties": {"repobilityId": "ffac86b6cf122d4d", "scanner": "scanner-primary", "fingerprint": "389f487fd5fc6358", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7785b95f9a428a0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/labor-cost-view.tsx:115"}, "properties": {"repobilityId": "663be79b9a097c10", "scanner": "scanner-primary", "fingerprint": "d7785b95f9a428a0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a9aa48a45cbbe54", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/features/purchase-request-attachment-stager.tsx:332"}, "properties": {"repobilityId": "41e6d78e5bad48ad", "scanner": "scanner-primary", "fingerprint": "4a9aa48a45cbbe54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08bc4a9350cf71c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/requests/[requestId]/page.tsx:158"}, "properties": {"repobilityId": "273dbce86116d9bf", "scanner": "scanner-primary", "fingerprint": "08bc4a9350cf71c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3736c7ffc526dd63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/page.tsx:85"}, "properties": {"repobilityId": "8ce36dbd2b8147be", "scanner": "scanner-primary", "fingerprint": "3736c7ffc526dd63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c6d1c69bcce15da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/review/work-packages/[workPackageId]/page.tsx:163"}, "properties": {"repobilityId": "9c54ece2679189f7", "scanner": "scanner-primary", "fingerprint": "9c6d1c69bcce15da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-819e4476495b6f0f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/page.tsx:75"}, "properties": {"repobilityId": "ffcc96d964b43e7b", "scanner": "scanner-primary", "fingerprint": "819e4476495b6f0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-883ef33b2c65be86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/projects/[projectId]/settings/settings-form.tsx:341"}, "properties": {"repobilityId": "78cc1be8ab95458a", "scanner": "scanner-primary", "fingerprint": "883ef33b2c65be86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-575951a97b0f173f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/payroll/page.tsx:115"}, "properties": {"repobilityId": "42cd1a84a86ba3f5", "scanner": "scanner-primary", "fingerprint": "575951a97b0f173f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-494479e3b367439f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-pgtap.ts:11"}, "properties": {"repobilityId": "0c86ba616fe4ba04", "scanner": "scanner-primary", "fingerprint": "494479e3b367439f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-pgtap.ts"}, "region": {"startLine": 11}}}]}, {"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-871dba9f26bc679b", "level": "note", "message": {"text": "Very large file: src/lib/db/database.types.ts (2178 lines)"}, "properties": {"repobilityId": "88cb8d486c20b8cf", "scanner": "scanner-primary", "fingerprint": "871dba9f26bc679b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e44f13862beaf298", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8be41399a147dbd7", "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": "c13e8191a4133950", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "9334eb72d28278a5", "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": "7173948b6edb0e42", "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": "33dd6961c0f7fe77", "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": "8f99e4bb82f8a1d9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-6cfbfe2c4efea701", "level": "none", "message": {"text": "Commented-code block (6 lines) in next.config.ts:8"}, "properties": {"repobilityId": "d6df206be1ad2af9", "scanner": "scanner-primary", "fingerprint": "6cfbfe2c4efea701", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40937ec9aedaef93", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/storage-signed-urls.test.ts:1"}, "properties": {"repobilityId": "dc76548bdfff5596", "scanner": "scanner-primary", "fingerprint": "40937ec9aedaef93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-584ac2e5b59dcaeb", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/purchase-request-tracker.test.tsx:1"}, "properties": {"repobilityId": "c7aa4d84a7ce20b0", "scanner": "scanner-primary", "fingerprint": "584ac2e5b59dcaeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9bb7aa5e20d3a2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/photo-strip.test.tsx:1"}, "properties": {"repobilityId": "8cfc34e2ea0cfbb6", "scanner": "scanner-primary", "fingerprint": "f9bb7aa5e20d3a2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35cd04c14e5eaa0c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/validate-display-name.test.ts:1"}, "properties": {"repobilityId": "10e8ceee1eaf5f4d", "scanner": "scanner-primary", "fingerprint": "35cd04c14e5eaa0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-364f16bb35d81c68", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/design-doctrine.test.ts:1"}, "properties": {"repobilityId": "84d9294c73921e0f", "scanner": "scanner-primary", "fingerprint": "364f16bb35d81c68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-984bcd902a3ca176", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/work-package-info-button.test.tsx:3"}, "properties": {"repobilityId": "5a0b626e40061c0f", "scanner": "scanner-primary", "fingerprint": "984bcd902a3ca176", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6575e29b9ddda2b0", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/unit/standalone-login-button.test.tsx:1"}, "properties": {"repobilityId": "d075a5f87cf18eb7", "scanner": "scanner-primary", "fingerprint": "6575e29b9ddda2b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6777f620b5f54ce0", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/nav-back-affordance.test.ts:6"}, "properties": {"repobilityId": "5733396ef1bcf319", "scanner": "scanner-primary", "fingerprint": "6777f620b5f54ce0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4574019c7d13b78", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/toast-provider.test.tsx:3"}, "properties": {"repobilityId": "157a0b8a5db1bc63", "scanner": "scanner-primary", "fingerprint": "a4574019c7d13b78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42482bdf0a3000dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/purchase-order.test.ts:1"}, "properties": {"repobilityId": "29115d6b9e5de447", "scanner": "scanner-primary", "fingerprint": "42482bdf0a3000dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0559301bf22fb39a", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/ui-classes-spec65.test.ts:3"}, "properties": {"repobilityId": "0433917b0ce285ed", "scanner": "scanner-primary", "fingerprint": "0559301bf22fb39a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1478d99482b8407b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/labor-cost.test.ts:1"}, "properties": {"repobilityId": "f8cdd552836e13b1", "scanner": "scanner-primary", "fingerprint": "1478d99482b8407b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-322ab67ed4e56112", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/viewport-scroll-guard.test.tsx:1"}, "properties": {"repobilityId": "7a7807deedd5d7cd", "scanner": "scanner-primary", "fingerprint": "322ab67ed4e56112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34346e8e3e0ca4b6", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/role-home.test.ts:3"}, "properties": {"repobilityId": "cb113ac20a4d66fe", "scanner": "scanner-primary", "fingerprint": "34346e8e3e0ca4b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e2fbee955b44851", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/labor-payroll.test.ts:1"}, "properties": {"repobilityId": "a32e4252f8c0d5fa", "scanner": "scanner-primary", "fingerprint": "5e2fbee955b44851", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4719b0c8d640adf", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/photo-lightbox.test.tsx:1"}, "properties": {"repobilityId": "384a39654451512e", "scanner": "scanner-primary", "fingerprint": "c4719b0c8d640adf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70576aa389637a9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/labor-variance.test.ts:1"}, "properties": {"repobilityId": "e4dd826187f16285", "scanner": "scanner-primary", "fingerprint": "70576aa389637a9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-668a44dcd04009c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/bottom-tab-bar.test.tsx:1"}, "properties": {"repobilityId": "d5bf9ecf1c77ac73", "scanner": "scanner-primary", "fingerprint": "668a44dcd04009c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d4d4351d9da8e7e", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/requests-primary-tab-nav.test.ts:1"}, "properties": {"repobilityId": "f6f3f6c640a4ff0b", "scanner": "scanner-primary", "fingerprint": "5d4d4351d9da8e7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6eb879eaf4ef7514", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/wp-schedule-panel-overflow.test.ts:1"}, "properties": {"repobilityId": "de603e1a199f804c", "scanner": "scanner-primary", "fingerprint": "6eb879eaf4ef7514", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5341fbbb14b153f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/status-colors.test.ts:1"}, "properties": {"repobilityId": "7bb810b2e66dff6e", "scanner": "scanner-primary", "fingerprint": "e5341fbbb14b153f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f9a8b3463eeb104", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/project-paths.test.ts:3"}, "properties": {"repobilityId": "13574129fb595fbf", "scanner": "scanner-primary", "fingerprint": "0f9a8b3463eeb104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdbbe85f436663f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/display-names.test.ts:1"}, "properties": {"repobilityId": "21b12d8ad0394c7b", "scanner": "scanner-primary", "fingerprint": "fdbbe85f436663f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-043c2ecc1461de8b", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/payroll-period-form-layout.test.ts:1"}, "properties": {"repobilityId": "d95eb341a76103b8", "scanner": "scanner-primary", "fingerprint": "043c2ecc1461de8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02ca8bc97df11d60", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/unit/require-role.test.ts:6"}, "properties": {"repobilityId": "945bee4722cb7829", "scanner": "scanner-primary", "fingerprint": "02ca8bc97df11d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a916f09e6de16e43", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/validate-purchase-request.test.ts:1"}, "properties": {"repobilityId": "67e0032be72251fb", "scanner": "scanner-primary", "fingerprint": "a916f09e6de16e43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2ee7cbba064823b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/dates-bangkok.test.ts:1"}, "properties": {"repobilityId": "0cdb0c49e33824c2", "scanner": "scanner-primary", "fingerprint": "d2ee7cbba064823b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21af468753fe0141", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/action-bands.test.ts:1"}, "properties": {"repobilityId": "890ad036192bde1b", "scanner": "scanner-primary", "fingerprint": "21af468753fe0141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b90a1cca406eb1d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/auth-unauthenticated.spec.ts:3"}, "properties": {"repobilityId": "f47f217e1f4fc48b", "scanner": "scanner-primary", "fingerprint": "b90a1cca406eb1d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5680328fec8cbfc7", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/import-wp.ts:5"}, "properties": {"repobilityId": "527356b8dd345067", "scanner": "scanner-primary", "fingerprint": "5680328fec8cbfc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9fe076396178020", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/run-pgtap.ts:4"}, "properties": {"repobilityId": "3ae098c9013c8706", "scanner": "scanner-primary", "fingerprint": "c9fe076396178020", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcde28d39227882d", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker/tests/unit/report.test.ts:7"}, "properties": {"repobilityId": "8be31e166df4b1a9", "scanner": "scanner-primary", "fingerprint": "bcde28d39227882d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53b9c92320bcb75e", "level": "none", "message": {"text": "Commented-code block (6 lines) in worker/src/report.ts:1"}, "properties": {"repobilityId": "ba89cab25b63e367", "scanner": "scanner-primary", "fingerprint": "53b9c92320bcb75e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cb362cfd4da4e54", "level": "none", "message": {"text": "Commented-code block (17 lines) in worker/src/index.ts:3"}, "properties": {"repobilityId": "498d6a18233ece30", "scanner": "scanner-primary", "fingerprint": "6cb362cfd4da4e54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-108d553d0116e507", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/src/supabase.ts:1"}, "properties": {"repobilityId": "d8ddd05cb0f32d9b", "scanner": "scanner-primary", "fingerprint": "108d553d0116e507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-240282e75b25ef12", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:14"}, "properties": {"repobilityId": "2ec9190d4157324e", "scanner": "scanner-primary", "fingerprint": "240282e75b25ef12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-51f474f050f870d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/test/server-only-stub.ts:1"}, "properties": {"repobilityId": "432b7bc7aa4292c5", "scanner": "scanner-primary", "fingerprint": "51f474f050f870d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0eb08fccbb11b1b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/page-skeleton.tsx:3"}, "properties": {"repobilityId": "22eb33ac55e13b62", "scanner": "scanner-primary", "fingerprint": "0eb08fccbb11b1b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-354c7b0eb04e6a93", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/site-purchase-form.tsx:3"}, "properties": {"repobilityId": "482bfe9591d61d81", "scanner": "scanner-primary", "fingerprint": "354c7b0eb04e6a93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a30fd6b53088bef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/bottom-tab-bar.tsx:7"}, "properties": {"repobilityId": "f5fbbc167b3a7d74", "scanner": "scanner-primary", "fingerprint": "4a30fd6b53088bef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be0b79040dd5d595", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/contact-crew-section.tsx:3"}, "properties": {"repobilityId": "29c667b0df069802", "scanner": "scanner-primary", "fingerprint": "be0b79040dd5d595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-078029f7b6e96ff4", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/features/schedule-gantt.tsx:3"}, "properties": {"repobilityId": "7610e0f09ae449fb", "scanner": "scanner-primary", "fingerprint": "078029f7b6e96ff4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d98de90277dcf7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/record-manager.tsx:3"}, "properties": {"repobilityId": "12e9b54c212f5cf0", "scanner": "scanner-primary", "fingerprint": "1d98de90277dcf7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f29d54bb6bb4aa9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/bottom-sheet.tsx:3"}, "properties": {"repobilityId": "bb14c96935e3d16d", "scanner": "scanner-primary", "fingerprint": "8f29d54bb6bb4aa9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a9003fec23af803", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/create-purchase-order-sheet.tsx:3"}, "properties": {"repobilityId": "ec44200033847637", "scanner": "scanner-primary", "fingerprint": "7a9003fec23af803", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79d3410a66e51a97", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/purchase-request-card.tsx:1"}, "properties": {"repobilityId": "3ec481f18bb2981f", "scanner": "scanner-primary", "fingerprint": "79d3410a66e51a97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c10c441d7ae9d9fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/wp-schedule-panel.tsx:3"}, "properties": {"repobilityId": "2a71c1ebbda51e81", "scanner": "scanner-primary", "fingerprint": "c10c441d7ae9d9fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b93d66acbd646b15", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/toast-provider.tsx:7"}, "properties": {"repobilityId": "52dc4b788aaf7727", "scanner": "scanner-primary", "fingerprint": "b93d66acbd646b15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-274e43ac43724285", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/refresh-button.tsx:3"}, "properties": {"repobilityId": "869c94e8fb39f350", "scanner": "scanner-primary", "fingerprint": "274e43ac43724285", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ab4608a7bc28b0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/status-pill.tsx:1"}, "properties": {"repobilityId": "3f77f86985b26b0f", "scanner": "scanner-primary", "fingerprint": "2ab4608a7bc28b0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b78f4752d360160f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/confirm-action-button.tsx:3"}, "properties": {"repobilityId": "f8348a066a9dd94e", "scanner": "scanner-primary", "fingerprint": "b78f4752d360160f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13af588e7adf85fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/phone-po-basket.tsx:3"}, "properties": {"repobilityId": "b6c6d976d8f03de6", "scanner": "scanner-primary", "fingerprint": "13af588e7adf85fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d02d03f4426dd261", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/refreeze-button.tsx:3"}, "properties": {"repobilityId": "e82c166305d37fe3", "scanner": "scanner-primary", "fingerprint": "d02d03f4426dd261", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43bf1114d1c00791", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/components/features/delivery-photo-uploader.tsx:7"}, "properties": {"repobilityId": "be75d76680b370c9", "scanner": "scanner-primary", "fingerprint": "43bf1114d1c00791", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f21d74a41d09d1c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/purchase-request-form.tsx:13"}, "properties": {"repobilityId": "8ca8b030a4ffaae5", "scanner": "scanner-primary", "fingerprint": "f21d74a41d09d1c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-028d16a461d3ad85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/page-shell.tsx:1"}, "properties": {"repobilityId": "a6b52d18ca1b2d30", "scanner": "scanner-primary", "fingerprint": "028d16a461d3ad85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d300fcd19596bf2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/upload-queue-runner.tsx:8"}, "properties": {"repobilityId": "2ba9c49975a845ed", "scanner": "scanner-primary", "fingerprint": "3d300fcd19596bf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a141c0df7c2e38b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/invoice-uploader.tsx:3"}, "properties": {"repobilityId": "c7d0d16d6d8def0f", "scanner": "scanner-primary", "fingerprint": "a141c0df7c2e38b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fff4c833858c25e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/detail-header.tsx:1"}, "properties": {"repobilityId": "30ecdd25c290eccb", "scanner": "scanner-primary", "fingerprint": "fff4c833858c25e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2af1c0fc61733a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/purchase-request-tracker.tsx:3"}, "properties": {"repobilityId": "f730f9886457bc09", "scanner": "scanner-primary", "fingerprint": "f2af1c0fc61733a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cf9ddae382477f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/photo-strip.tsx:1"}, "properties": {"repobilityId": "eb3e26011c3524b2", "scanner": "scanner-primary", "fingerprint": "4cf9ddae382477f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f74aa1638c72c05c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/features/hub-nav.tsx:4"}, "properties": {"repobilityId": "e51e1ad35f2717e3", "scanner": "scanner-primary", "fingerprint": "f74aa1638c72c05c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a995627c66849e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/worklist-row.tsx:1"}, "properties": {"repobilityId": "a802c79c7085821e", "scanner": "scanner-primary", "fingerprint": "9a995627c66849e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b97fe238c9a10eb1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/notes-field.tsx:3"}, "properties": {"repobilityId": "68770dd3ae89b0c1", "scanner": "scanner-primary", "fingerprint": "b97fe238c9a10eb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aeefa62d0f11f77", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/features/viewport-scroll-guard.tsx:3"}, "properties": {"repobilityId": "c9b2192fa69c8f20", "scanner": "scanner-primary", "fingerprint": "1aeefa62d0f11f77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-962c02fda4d6680e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/radio-chip.tsx:3"}, "properties": {"repobilityId": "5401b8a5225b454f", "scanner": "scanner-primary", "fingerprint": "962c02fda4d6680e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1c4be242a7d1e66", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/features/labor-cost-view.tsx:1"}, "properties": {"repobilityId": "3bdc5989fe254574", "scanner": "scanner-primary", "fingerprint": "c1c4be242a7d1e66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c6cbc9324a822a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/site-purchase-acknowledge.tsx:3"}, "properties": {"repobilityId": "413751d6c4a79e19", "scanner": "scanner-primary", "fingerprint": "4c6cbc9324a822a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aca7871348640be", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/features/contacts-tabs.tsx:3"}, "properties": {"repobilityId": "157aebf3e857d440", "scanner": "scanner-primary", "fingerprint": "5aca7871348640be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4549d19e5f452a39", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/app-header.tsx:6"}, "properties": {"repobilityId": "e2d4a5f5aba2655b", "scanner": "scanner-primary", "fingerprint": "4549d19e5f452a39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-854343edbc2a091c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/procurement-grid.tsx:8"}, "properties": {"repobilityId": "ee474b48504b1b54", "scanner": "scanner-primary", "fingerprint": "854343edbc2a091c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-248de298e1402737", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/features/purchase-request-attachment-stager.tsx:6"}, "properties": {"repobilityId": "a6dc7f48e681c293", "scanner": "scanner-primary", "fingerprint": "248de298e1402737", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dda3dbd4102e735c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/confirm-dialog.tsx:3"}, "properties": {"repobilityId": "89884660c4b2b09c", "scanner": "scanner-primary", "fingerprint": "dda3dbd4102e735c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ee8d4d13c3c26b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/wp-priority-control.tsx:3"}, "properties": {"repobilityId": "916b91f94a192d45", "scanner": "scanner-primary", "fingerprint": "3ee8d4d13c3c26b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff40339402138ec4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/features/purchase-request-decision.tsx:7"}, "properties": {"repobilityId": "0b8439836e060b3c", "scanner": "scanner-primary", "fingerprint": "ff40339402138ec4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6997dbd80d64d724", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/manifest.ts:3"}, "properties": {"repobilityId": "a0f53892698e042a", "scanner": "scanner-primary", "fingerprint": "6997dbd80d64d724", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94810b7645a40654", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/global-error.tsx:3"}, "properties": {"repobilityId": "30818759453e7f3d", "scanner": "scanner-primary", "fingerprint": "94810b7645a40654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37263ebd93598d71", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/settings/page.tsx:25"}, "properties": {"repobilityId": "22a79aa2d71519cf", "scanner": "scanner-primary", "fingerprint": "37263ebd93598d71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e5e9db9dcb4e25d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/pm/requests/route.ts:3"}, "properties": {"repobilityId": "5c6a2caaeae0bfbd", "scanner": "scanner-primary", "fingerprint": "5e5e9db9dcb4e25d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3764fb43758a25c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/grid-preview/page.tsx:1"}, "properties": {"repobilityId": "28b45875cb36bc5c", "scanner": "scanner-primary", "fingerprint": "3764fb43758a25c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93a8b286ce878bb4", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/auth/line/callback/route.ts:5"}, "properties": {"repobilityId": "7ee5631e75f421e4", "scanner": "scanner-primary", "fingerprint": "93a8b286ce878bb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8be4157a1a0c1b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/auth/line/start/route.ts:3"}, "properties": {"repobilityId": "362537f6d3ecb6b6", "scanner": "scanner-primary", "fingerprint": "f8be4157a1a0c1b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0e66f3dfac196c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/auth/handoff/poll/route.ts:3"}, "properties": {"repobilityId": "74be747dd751f79b", "scanner": "scanner-primary", "fingerprint": "c0e66f3dfac196c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38f3a7df07a60b99", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/auth/handoff/start/route.ts:3"}, "properties": {"repobilityId": "027fc6cfd003c142", "scanner": "scanner-primary", "fingerprint": "38f3a7df07a60b99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00afbfecce55099b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/requests/actions.ts:9"}, "properties": {"repobilityId": "61f1b4f14247fe72", "scanner": "scanner-primary", "fingerprint": "00afbfecce55099b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-641c861143a53240", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/requests/page.tsx:20"}, "properties": {"repobilityId": "39bbd795af32ef09", "scanner": "scanner-primary", "fingerprint": "641c861143a53240", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922ebdf253a939fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/requests/[requestId]/notes-actions.ts:3"}, "properties": {"repobilityId": "22183075ec90c5cd", "scanner": "scanner-primary", "fingerprint": "922ebdf253a939fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89cc4937a5efdd60", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/requests/[requestId]/page.tsx:15"}, "properties": {"repobilityId": "816fe397d34cab42", "scanner": "scanner-primary", "fingerprint": "89cc4937a5efdd60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a5792cdfa2e49f6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/review/page.tsx:31"}, "properties": {"repobilityId": "32389c0fad549d8f", "scanner": "scanner-primary", "fingerprint": "2a5792cdfa2e49f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-681762923cf1435c", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/review/work-packages/[workPackageId]/actions.ts:5"}, "properties": {"repobilityId": "2f54cfda6fb731ca", "scanner": "scanner-primary", "fingerprint": "681762923cf1435c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26697df0bd93cf6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/review/work-packages/[workPackageId]/record-decision-form.tsx:5"}, "properties": {"repobilityId": "9e531f2305b73151", "scanner": "scanner-primary", "fingerprint": "26697df0bd93cf6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43668b7bf6a2cdd9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/projects/page.tsx:17"}, "properties": {"repobilityId": "7b51cfb9a3d52218", "scanner": "scanner-primary", "fingerprint": "43668b7bf6a2cdd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c825d224e73adbe", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/projects/[projectId]/reports/reports-list.tsx:8"}, "properties": {"repobilityId": "b88fae4f34b65243", "scanner": "scanner-primary", "fingerprint": "1c825d224e73adbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26171e5e81efdac3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/generate-report-button.tsx:5"}, "properties": {"repobilityId": "ebe4d5033c07950f", "scanner": "scanner-primary", "fingerprint": "26171e5e81efdac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46acb699d36697e3", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/reports/actions.ts:5"}, "properties": {"repobilityId": "e7355c44ae0c8614", "scanner": "scanner-primary", "fingerprint": "46acb699d36697e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f4baef034175686", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/reports/page.tsx:15"}, "properties": {"repobilityId": "f3a55ad1171cfac5", "scanner": "scanner-primary", "fingerprint": "4f4baef034175686", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1951057441c9b52e", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/use-phase-capture.ts:7"}, "properties": {"repobilityId": "3a0cdbb41817ed93", "scanner": "scanner-primary", "fingerprint": "1951057441c9b52e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a71f1e2fdf79a431", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/assignment-actions.ts:3"}, "properties": {"repobilityId": "aff140e3ddbaa97a", "scanner": "scanner-primary", "fingerprint": "a71f1e2fdf79a431", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b708af0b67b64eda", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/priority-actions.ts:3"}, "properties": {"repobilityId": "6b6194f479efcb34", "scanner": "scanner-primary", "fingerprint": "b708af0b67b64eda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1178f3510db463b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/notes-actions.ts:3"}, "properties": {"repobilityId": "961b48c8c4c4b95e", "scanner": "scanner-primary", "fingerprint": "b1178f3510db463b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5be7cbf91031ae0f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/schedule-actions.ts:3"}, "properties": {"repobilityId": "5a0143e60b0fce43", "scanner": "scanner-primary", "fingerprint": "5be7cbf91031ae0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a17d36493e5a9c7e", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/actions.ts:9"}, "properties": {"repobilityId": "ea94c48e7c6a9777", "scanner": "scanner-primary", "fingerprint": "a17d36493e5a9c7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbfa4251a8ef91aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/capture-sheet.tsx:7"}, "properties": {"repobilityId": "ea78222fdb51dd83", "scanner": "scanner-primary", "fingerprint": "cbfa4251a8ef91aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3220f76d5e1abf18", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/projects/[projectId]/work-packages/[workPackageId]/phase-uploader.tsx:7"}, "properties": {"repobilityId": "4f296391c73c74b6", "scanner": "scanner-primary", "fingerprint": "3220f76d5e1abf18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3ec67aa8b763c8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/login/standalone-login-button.tsx:6"}, "properties": {"repobilityId": "22c5e2f327c75de3", "scanner": "scanner-primary", "fingerprint": "b3ec67aa8b763c8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-563f089326f85d9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/notifications/drain/route.ts:3"}, "properties": {"repobilityId": "4fee6d0a55befdb1", "scanner": "scanner-primary", "fingerprint": "563f089326f85d9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b273d3dc0425c9a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/photo-markups/actions.ts:3"}, "properties": {"repobilityId": "5a8a9c2e8d03c6f2", "scanner": "scanner-primary", "fingerprint": "b273d3dc0425c9a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7e0888870bf9d09", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/page.tsx:1"}, "properties": {"repobilityId": "35b6a885b3b1e14c", "scanner": "scanner-primary", "fingerprint": "a7e0888870bf9d09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c300241d4a917600", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/payroll/page.tsx:1"}, "properties": {"repobilityId": "43d7e98e13fb84d3", "scanner": "scanner-primary", "fingerprint": "c300241d4a917600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1e24b83f703cc72", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/payroll/export/route.ts:1"}, "properties": {"repobilityId": "ccdc2e05121a24d3", "scanner": "scanner-primary", "fingerprint": "a1e24b83f703cc72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b43882a9f23a99f9", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/contacts/actions.ts:3"}, "properties": {"repobilityId": "183169902ce497dc", "scanner": "scanner-primary", "fingerprint": "b43882a9f23a99f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae6f69a583520ecd", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/contacts/vendors/page.tsx:1"}, "properties": {"repobilityId": "264e45c0997093b5", "scanner": "scanner-primary", "fingerprint": "ae6f69a583520ecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa19adc579488225", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/coming-soon/actions.ts:6"}, "properties": {"repobilityId": "a049218b62f5e31a", "scanner": "scanner-primary", "fingerprint": "fa19adc579488225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-842cb21166fd3582", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/coming-soon/page.tsx:47"}, "properties": {"repobilityId": "7852dfd5c7787856", "scanner": "scanner-primary", "fingerprint": "842cb21166fd3582", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfdae91b41bdd2f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/env.server.ts:25"}, "properties": {"repobilityId": "cd88c934dd937875", "scanner": "scanner-primary", "fingerprint": "cfdae91b41bdd2f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-814fa9a64af9891f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/status-colors.ts:1"}, "properties": {"repobilityId": "df65390fd6975443", "scanner": "scanner-primary", "fingerprint": "814fa9a64af9891f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6b18811c8ddd9c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/dates.ts:1"}, "properties": {"repobilityId": "4946a66ffef1c633", "scanner": "scanner-primary", "fingerprint": "a6b18811c8ddd9c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-405601bd46e22b4e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/users/display-names.ts:3"}, "properties": {"repobilityId": "b38428e1c4763901", "scanner": "scanner-primary", "fingerprint": "405601bd46e22b4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2573bdf941c45270", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/notifications/resolve-recipients.ts:1"}, "properties": {"repobilityId": "896cc9b710c02e22", "scanner": "scanner-primary", "fingerprint": "2573bdf941c45270", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5651e288e98ac07", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/i18n/labels.ts:1"}, "properties": {"repobilityId": "7829172286ab958a", "scanner": "scanner-primary", "fingerprint": "f5651e288e98ac07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d5232536ff64013", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/wp-import/parse.ts:40"}, "properties": {"repobilityId": "d39ff20c3d944a40", "scanner": "scanner-primary", "fingerprint": "3d5232536ff64013", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2aea9efd9d0311e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/auth/require-role.ts:1"}, "properties": {"repobilityId": "d991c881aba97ca9", "scanner": "scanner-primary", "fingerprint": "2aea9efd9d0311e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb0c2cad2610a457", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/ui/page-width.ts:1"}, "properties": {"repobilityId": "348a6dc3f7270ac8", "scanner": "scanner-primary", "fingerprint": "fb0c2cad2610a457", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8682342a515ca46b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/ui/use-toast.ts:3"}, "properties": {"repobilityId": "1f43fb1e0f027509", "scanner": "scanner-primary", "fingerprint": "8682342a515ca46b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53d4a67c89fa0811", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/nav/project-paths.ts:1"}, "properties": {"repobilityId": "872456e51bcf481a", "scanner": "scanner-primary", "fingerprint": "53d4a67c89fa0811", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8221aa18cf61edf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/approvals/predicates.ts:1"}, "properties": {"repobilityId": "6bfc8a3de1c66362", "scanner": "scanner-primary", "fingerprint": "a8221aa18cf61edf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6ee07b958d87def", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/approvals/latest-decision.ts:8"}, "properties": {"repobilityId": "36b3b994ddcddfbe", "scanner": "scanner-primary", "fingerprint": "c6ee07b958d87def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ac83cd502cb4fc6", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/deliverables/group-work-packages.ts:3"}, "properties": {"repobilityId": "1d4f906490e675d1", "scanner": "scanner-primary", "fingerprint": "2ac83cd502cb4fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a56e1d4231804ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/deliverables/derive-progress.ts:1"}, "properties": {"repobilityId": "75a9bb187d47137f", "scanner": "scanner-primary", "fingerprint": "8a56e1d4231804ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-951012aaecbcd29f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/photos/phase-progress.ts:5"}, "properties": {"repobilityId": "c0fa3f953ccbb62e", "scanner": "scanner-primary", "fingerprint": "951012aaecbcd29f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7af2235659ba8145", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/photos/tombstone.ts:1"}, "properties": {"repobilityId": "96f4250cfccb8d15", "scanner": "scanner-primary", "fingerprint": "7af2235659ba8145", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1094e4735467d47b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/photos/validate-markup.ts:1"}, "properties": {"repobilityId": "11454a6d807af3e3", "scanner": "scanner-primary", "fingerprint": "1094e4735467d47b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf51fe83714ab767", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/photos/transitions.ts:1"}, "properties": {"repobilityId": "6e6f59d0dbad8330", "scanner": "scanner-primary", "fingerprint": "bf51fe83714ab767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b8fb20da83dcb8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/photos/current-photos.ts:6"}, "properties": {"repobilityId": "dac497cc10913e15", "scanner": "scanner-primary", "fingerprint": "8b8fb20da83dcb8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32de5f1eb0ef2110", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/photos/downscale.ts:5"}, "properties": {"repobilityId": "ea069c7d926354fb", "scanner": "scanner-primary", "fingerprint": "32de5f1eb0ef2110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68150d5503bc7782", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/photos/upload-queue.ts:6"}, "properties": {"repobilityId": "4c6dde872a772481", "scanner": "scanner-primary", "fingerprint": "68150d5503bc7782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21b4bfda073ae916", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/notes/validate.ts:1"}, "properties": {"repobilityId": "827fa31098ff749c", "scanner": "scanner-primary", "fingerprint": "21b4bfda073ae916", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-649797746ee2d58d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/contacts/document-path.ts:1"}, "properties": {"repobilityId": "6db5c2ba270679c6", "scanner": "scanner-primary", "fingerprint": "649797746ee2d58d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02de65754b6b3225", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/contacts/documents.ts:3"}, "properties": {"repobilityId": "3dc22c5c854929ae", "scanner": "scanner-primary", "fingerprint": "02de65754b6b3225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ce1de80c65d672", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/validate/uuid.ts:1"}, "properties": {"repobilityId": "f344d69f8dce5bdf", "scanner": "scanner-primary", "fingerprint": "41ce1de80c65d672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df8e76c82ebd65a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/reports/build-pdf.ts:1"}, "properties": {"repobilityId": "6dc7c5f333a165d3", "scanner": "scanner-primary", "fingerprint": "df8e76c82ebd65a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca51d7950525ba52", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/reports/predicates.ts:1"}, "properties": {"repobilityId": "6384c6ed5e3c2d19", "scanner": "scanner-primary", "fingerprint": "ca51d7950525ba52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed10e6e1dee848b6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/reports/run-report-job.ts:1"}, "properties": {"repobilityId": "d118f3d69998748c", "scanner": "scanner-primary", "fingerprint": "ed10e6e1dee848b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa07e4d0a08077d6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/reports/sarabun-font.ts:1"}, "properties": {"repobilityId": "b69bcf560113052e", "scanner": "scanner-primary", "fingerprint": "fa07e4d0a08077d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0226331a1e7d1bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/work-packages/action-bands.ts:12"}, "properties": {"repobilityId": "ea821d5fb5a5fc23", "scanner": "scanner-primary", "fingerprint": "f0226331a1e7d1bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d60ab8b6c937355", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/work-packages/gantt-scale.ts:1"}, "properties": {"repobilityId": "f531151fdde876e3", "scanner": "scanner-primary", "fingerprint": "0d60ab8b6c937355", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-493fba39efef94fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/work-packages/hold.ts:8"}, "properties": {"repobilityId": "0e1d9e433bb92ce0", "scanner": "scanner-primary", "fingerprint": "493fba39efef94fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8f43f91f5a615c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/work-packages/list-filter.ts:1"}, "properties": {"repobilityId": "3c25f83898e0578e", "scanner": "scanner-primary", "fingerprint": "c8f43f91f5a615c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6889a67e5b5295a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/columns.ts:1"}, "properties": {"repobilityId": "0422bb6eaaabc7f7", "scanner": "scanner-primary", "fingerprint": "6889a67e5b5295a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78f8764b039ebcbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/supplier-spend.ts:33"}, "properties": {"repobilityId": "56f1434d36c8a2eb", "scanner": "scanner-primary", "fingerprint": "78f8764b039ebcbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bf331920d9d3d22", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/validate-site-purchase.ts:1"}, "properties": {"repobilityId": "728a3e5a2990f0c4", "scanner": "scanner-primary", "fingerprint": "6bf331920d9d3d22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc5e46a4ea7ebd6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/worklist-filter.ts:5"}, "properties": {"repobilityId": "0d38e8bc78fc9e7f", "scanner": "scanner-primary", "fingerprint": "fc5e46a4ea7ebd6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45bb7a10c63a0cbb", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/purchasing/purchase-order.ts:1"}, "properties": {"repobilityId": "3b405a570116bedd", "scanner": "scanner-primary", "fingerprint": "45bb7a10c63a0cbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57307394c58e9add", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/attachment-signed-urls.ts:1"}, "properties": {"repobilityId": "ad7968a9261f5609", "scanner": "scanner-primary", "fingerprint": "57307394c58e9add", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edb928ede36307f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/attachment-path.ts:1"}, "properties": {"repobilityId": "6be3469b10a8e6fd", "scanner": "scanner-primary", "fingerprint": "edb928ede36307f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a32c1e2eb5fa578", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/purchasing/pending-order.ts:1"}, "properties": {"repobilityId": "d5261adf514eae89", "scanner": "scanner-primary", "fingerprint": "8a32c1e2eb5fa578", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0da96d55270806a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/labor/fetch-zone-data.ts:1"}, "properties": {"repobilityId": "a6b7e43e1f5a8f00", "scanner": "scanner-primary", "fingerprint": "0da96d55270806a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7c2b2cb26c2fd04", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/labor/fetch-payroll.ts:1"}, "properties": {"repobilityId": "0b068a66e1b88373", "scanner": "scanner-primary", "fingerprint": "d7c2b2cb26c2fd04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa228d530b274710", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/labor/actions.ts:3"}, "properties": {"repobilityId": "2eb662080ce2b5fd", "scanner": "scanner-primary", "fingerprint": "aa228d530b274710", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb45cfb034ac72ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/labor/variance.ts:1"}, "properties": {"repobilityId": "cb321316cfe42c5b", "scanner": "scanner-primary", "fingerprint": "eb45cfb034ac72ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37e8253698b640fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/labor/current-logs.ts:1"}, "properties": {"repobilityId": "352a38f37739c6d8", "scanner": "scanner-primary", "fingerprint": "37e8253698b640fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe52b6c6067c5e85", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/labor/cost.ts:1"}, "properties": {"repobilityId": "558bdec72af49b7e", "scanner": "scanner-primary", "fingerprint": "fe52b6c6067c5e85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7b1f6b84ca3d4b0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/labor/payroll.ts:1"}, "properties": {"repobilityId": "00b04593aed89378", "scanner": "scanner-primary", "fingerprint": "c7b1f6b84ca3d4b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-482fe169f17afef1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/storage/signed-urls.ts:5"}, "properties": {"repobilityId": "8f83aef4e40e2650", "scanner": "scanner-primary", "fingerprint": "482fe169f17afef1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eafc3188c36bb02", "level": "none", "message": {"text": "3 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "bd934ba112b02ffa", "scanner": "scanner-primary", "fingerprint": "2eafc3188c36bb02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}