{"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-c14433e1f60662b7", "name": "Possibly dead Python function: patched_config_get", "shortDescription": {"text": "Possibly dead Python function: patched_config_get"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-997745645c5a7104", "name": "Possibly dead Python function: render_savings_by_function_slide", "shortDescription": {"text": "Possibly dead Python function: render_savings_by_function_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8dd894b36aeb3482", "name": "Possibly dead Python function: render_yearly_projection_slide", "shortDescription": {"text": "Possibly dead Python function: render_yearly_projection_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87f2ff590d01b9cb", "name": "Possibly dead Python function: render_monthly_cashflow_slide", "shortDescription": {"text": "Possibly dead Python function: render_monthly_cashflow_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2a817f98e1bd525", "name": "Possibly dead Python function: render_programme_timeline_slide", "shortDescription": {"text": "Possibly dead Python function: render_programme_timeline_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-24acc8b5ba6570f5", "name": "Possibly dead Python function: render_function_opportunities_slide", "shortDescription": {"text": "Possibly dead Python function: render_function_opportunities_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a80c512a0aee79fb", "name": "Possibly dead Python function: render_implementation_roadmap_slide", "shortDescription": {"text": "Possibly dead Python function: render_implementation_roadmap_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-903371c71ef381dc", "name": "Possibly dead Python function: render_savings_by_technology_slide", "shortDescription": {"text": "Possibly dead Python function: render_savings_by_technology_slide"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5012654100f65037", "name": "Possibly dead Python function: register_use_cases_blueprint", "shortDescription": {"text": "Possibly dead Python function: register_use_cases_blueprint"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-458156524396683f", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c042d9b94b504f3", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-027689b83f47e1a5", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2df4e1e78cc5e526", "name": "Possibly dead Python function: visit_FunctionDef", "shortDescription": {"text": "Possibly dead Python function: visit_FunctionDef"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3d8ee0036cb2794", "name": "Possibly dead Python function: visit_AsyncFunctionDef", "shortDescription": {"text": "Possibly dead Python function: visit_AsyncFunctionDef"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6951c407df1976ae", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-44d0fd363ff67307", "name": "Possibly dead Python function: visit_ExceptHandler", "shortDescription": {"text": "Possibly dead Python function: visit_ExceptHandler"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40727a84b243b495", "name": "Possibly dead Python function: visit_FunctionDef", "shortDescription": {"text": "Possibly dead Python function: visit_FunctionDef"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0063cccf593cc566", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0bbb8c62388ff8c4", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e60370aa576cf6e5", "name": "Possibly dead Python function: visit_keyword", "shortDescription": {"text": "Possibly dead Python function: visit_keyword"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5199fcdf4f537e4", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca60d606de35e421", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a745faadfc9e860d", "name": "Possibly dead Python function: visit_Compare", "shortDescription": {"text": "Possibly dead Python function: visit_Compare"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae54fcb5fe988012", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76b617bb1708f4c1", "name": "Possibly dead Python function: visit_ImportFrom", "shortDescription": {"text": "Possibly dead Python function: visit_ImportFrom"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77436592b88a190d", "name": "Possibly dead Python function: visit_Import", "shortDescription": {"text": "Possibly dead Python function: visit_Import"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1de8e882bbf1617f", "name": "Possibly dead Python function: visit_FunctionDef", "shortDescription": {"text": "Possibly dead Python function: visit_FunctionDef"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e7c6a83d2446962", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75dcd58b8aa8e2ee", "name": "Possibly dead Python function: visit_Attribute", "shortDescription": {"text": "Possibly dead Python function: visit_Attribute"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c6cfbc44535e009", "name": "Possibly dead Python function: visit_Call", "shortDescription": {"text": "Possibly dead Python function: visit_Call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c1af83728ef67040", "name": "Stray `console.log` in TS/JS \u2014 scripts/collect-exit-metrics.js:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-exit-metrics.js:209"}, "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-864f801061f8b550", "name": "Stray `console.log` in TS/JS \u2014 frontend/vitest.setup.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/vitest.setup.js:132"}, "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-8d6976910754fdef", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-fetch-callers.js:117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-fetch-callers.js:117"}, "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-15afd0b0dd2aa854", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-content.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-content.js:15"}, "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-65b0d56aee1b1afa", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-index.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-index.js:70"}, "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-172eb58823f5bcb5", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-guards.js:218", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-guards.js:218"}, "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-448865bf19773ab5", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/coverage-breakdown.js:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/coverage-breakdown.js:155"}, "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-595f3d68a7eb4425", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-allowlist.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-allowlist.js:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9dca38d84c6f97fb", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-model-dropdown.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-model-dropdown.js:104"}, "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-9d1d63a379695493", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/generate-lcov.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/generate-lcov.js:70"}, "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-5ad6fdbd8f4602e7", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/__tests__/safeStringify.test.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/__tests__/safeStringify.test.js:26"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-264fbf8fbf2f8623", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/RouteBoundary.jsx:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/RouteBoundary.jsx:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d7ad8a40cdbd105", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchRepositoryPanel.jsx:326", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchRepositoryPanel.jsx:326"}, "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-cc51231a67232a5c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchCoverageDashboard.jsx:231", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchCoverageDashboard.jsx:231"}, "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-e69353af46d9cfdd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchExtractionSummary.jsx:171", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchExtractionSummary.jsx:171"}, "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-b95fc702e9b3bd19", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/BenchmarkBrowserModal.jsx:151", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/BenchmarkBrowserModal.jsx:151"}, "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-dedf73b3e4a6381c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchUploadSection.jsx:285", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchUploadSection.jsx:285"}, "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-044eab9d5f3bd759", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchStagingPanel.jsx:199", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchStagingPanel.jsx:199"}, "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-bd4993671acc3c81", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUpload.jsx:191", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUpload.jsx:191"}, "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-e990fbe71e27dfad", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopReview.jsx:369", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopReview.jsx:369"}, "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-23936e3ec8203a86", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopSteps.jsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopSteps.jsx:52"}, "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-2cfbe580fff55b31", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/SpreadsheetUploadArea.jsx:368", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/SpreadsheetUploadArea.jsx:368"}, "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-116a884259cb5a67", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUseCases.jsx:979", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUseCases.jsx:979"}, "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-2d7c3cca43c843cc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopPanel.jsx:232", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopPanel.jsx:232"}, "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-0c5099f228ad2339", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/MatrixLegend.jsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/MatrixLegend.jsx:28"}, "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-fdcc607a7609fdbc", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/components/Workshop/DataGaps.jsx:200", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/Workshop/DataGaps.jsx:200"}, "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-ca9d7594219b1078", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/DocumentUpload.jsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/DocumentUpload.jsx:224"}, "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-745302900d91a625", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/BenchmarkSummaryCard.jsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/BenchmarkSummaryCard.jsx:111"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea2269728ba60307", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientLinkedUseCasesPanel.jsx:290", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientLinkedUseCasesPanel.jsx:290"}, "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-9a32c6ebdfe6f1f8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/FieldDiff.jsx:266", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/FieldDiff.jsx:266"}, "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-41ddf8afd7f7e63a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientWorkflowVisualiser.jsx:136", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientWorkflowVisualiser.jsx:136"}, "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-c9cee8a5a724f69e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/InsightCategoryGrid.jsx:207", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/InsightCategoryGrid.jsx:207"}, "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-0e2e96ef0009941f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforceLinkModal.jsx:188", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforceLinkModal.jsx:188"}, "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-be023c3fc36fe989", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/AugmentClientDataModal.jsx:173", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/AugmentClientDataModal.jsx:173"}, "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-fa7e0334bda430fb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforcePanel.jsx:267", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforcePanel.jsx:267"}, "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-d7a5f383d021f904", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/Client/CalibrationTab.jsx:162", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/Client/CalibrationTab.jsx:162"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-279c44c94b23dad4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/MeetingCreationModal.jsx:322", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/MeetingCreationModal.jsx:322"}, "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-b0e5faac1a152964", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientFormSections/ClientBasicInfoSe", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientFormSections/ClientBasicInfoSection.jsx:119"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63499de9b06c84da", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/benchmarking/DiagnosticWizard.jsx:254", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/benchmarking/DiagnosticWizard.jsx:254"}, "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-a80248f7495989d5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Copilot/CopilotPanel.jsx:359", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Copilot/CopilotPanel.jsx:359"}, "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-c347b6ca0cdb2467", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/CalculationBreakdown.jsx:261", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/CalculationBreakdown.jsx:261"}, "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-8721ef970987ce6f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/FeedbackModal.jsx:184", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/FeedbackModal.jsx:184"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e670c106b15ea4f5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/StatCard.jsx:58", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/StatCard.jsx:58"}, "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-e0fbf0add8dc2dba", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout/SiteHeader.jsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout/SiteHeader.jsx:116"}, "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-2e65398585b094f4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/UseCases/UseCasePickList.jsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/UseCases/UseCasePickList.jsx:55"}, "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-3f668a5ac6f6a665", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselineDetail.jsx:280", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselineDetail.jsx:280"}, "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-a9954ad89266b494", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselinesList.jsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselinesList.jsx:112"}, "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-6bbe8333b565f184", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/KPIPainPointsManager.jsx:304", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/KPIPainPointsManager.jsx:304"}, "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-0324776db3b3c2a2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/StoredDocumentsPanel.jsx:136", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/StoredDocumentsPanel.jsx:136"}, "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-b4985d39df135eb9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/VendorDataTable.jsx:196", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/VendorDataTable.jsx:196"}, "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-2c67e25df183326a", "name": "Stray `console.log` in TS/JS \u2014 frontend/src/store/slices/workshop.js:1220", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/store/slices/workshop.js:1220"}, "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-db32739ca4a10759", "name": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/workshop.spec.js:868", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/workshop.spec.js:868"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5038d99472612280", "name": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/proposal.spec.js:515", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/proposal.spec.js:515"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec820e405fd32aae", "name": "Stray `console.log` in TS/JS \u2014 frontend/e2e/fixtures.js:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/e2e/fixtures.js:129"}, "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-fe48e904474dd2ae", "name": "Stray `console.log` in TS/JS \u2014 frontend/e2e/global-setup.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/e2e/global-setup.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb4ade39b7e10076", "name": "TODO/FIXME marker in shipping code \u2014 sdk/usage-telemetry/examples/nextjs-server-route.ts:26", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 sdk/usage-telemetry/examples/nextjs-server-route.ts:26"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15d342200217e87b", "name": "Privileged port 2 in use", "shortDescription": {"text": "Privileged port 2 in use"}, "fullDescription": {"text": "Port 2 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-224d6d76f74f9bb5", "name": "Privileged port 3 in use", "shortDescription": {"text": "Privileged port 3 in use"}, "fullDescription": {"text": "Port 3 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-372ed4bd43cd24f3", "name": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-714c31ca9f474ae6", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bfb1caa8d76b37a1", "name": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3afcc8a8ba353a4b", "name": "Insecure pattern 'cors_wildcard' in backend/extensions.py:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in backend/extensions.py:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8252348937f84796", "name": "Insecure pattern 'debug_true' in backend/run.py:17", "shortDescription": {"text": "Insecure pattern 'debug_true' in backend/run.py:17"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a23e9f431da53f37", "name": "Insecure pattern 'node_child_process' in scripts/collect-exit-metrics.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/collect-exit-metrics.js:20"}, "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-361a542c85977083", "name": "Insecure pattern 'node_child_process' in frontend/scripts/audit-fetch-callers.js:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/audit-fetch-callers.js:17"}, "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-8dd3e13b6b4330e5", "name": "Insecure pattern 'node_child_process' in frontend/scripts/build-help-content.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/build-help-content.js:5"}, "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-9fe2d957c72e97c2", "name": "Insecure pattern 'node_child_process' in frontend/scripts/css-cleanup-pass2.cjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/css-cleanup-pass2.cjs:15"}, "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-1c27fd67f2bbf354", "name": "Insecure pattern 'node_child_process' in frontend/scripts/css-audit.cjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/css-audit.cjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d2cbf54bc7f249c", "name": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-context-monitor.js:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-context-monitor.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5b880e63aed2008", "name": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update-worker.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update-worker.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d2a7c2317f80426", "name": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab62dc40bac7837a", "name": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-context-monitor.js:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-context-monitor.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce7245497d785807", "name": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update-worker.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update-worker.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7bc947a061a7797c", "name": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a906f86080d46ccc", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77166cbd46fcd8e4", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-376ceef717f12640", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7df94b08d4a31975", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/download-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb99c79c94e80fbe", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd7350800a087e8d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a6f08a70e7bf2b2", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68a629a9e35a88dd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-930799999ba968f5", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6086d82f580936eb", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75ce18cb75310c6a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fba68eabdda7d994", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/download-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee9c64813208c901", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df4cfee27c319a9e", "name": "Very large file: tests/smoke/cortex_e2e_inprocess.py (1437 lines)", "shortDescription": {"text": "Very large file: tests/smoke/cortex_e2e_inprocess.py (1437 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-9550af36e98d0207", "name": "Very large file: backend/tests/test_calculation_service.py (1447 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_calculation_service.py (1447 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-999423859ab5b32e", "name": "Very large file: backend/tests/test_calculations_endpoints.py (1545 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_calculations_endpoints.py (1545 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-de629ecf665a4b13", "name": "Very large file: backend/tests/conftest.py (1881 lines)", "shortDescription": {"text": "Very large file: backend/tests/conftest.py (1881 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-7eec9db83fefc4c6", "name": "Very large file: backend/tests/test_knowledge_endpoints.py (1240 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_knowledge_endpoints.py (1240 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-b00893a544dea4a1", "name": "Very large file: backend/tests/test_vendor_catalogue_service.py (1588 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_vendor_catalogue_service.py (1588 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-d562b5601868a570", "name": "Very large file: backend/tests/test_workshops_endpoints.py (1163 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_workshops_endpoints.py (1163 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-b9ed01d61ee3c44b", "name": "Very large file: backend/tests/test_benchmarking_endpoints.py (1382 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_benchmarking_endpoints.py (1382 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-e9801b83d6db74c7", "name": "Very large file: backend/tests/test_research_service.py (1356 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_research_service.py (1356 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-576b16dc4cedddb7", "name": "Very large file: backend/tests/test_settings_api_wiring.py (1337 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_settings_api_wiring.py (1337 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-fad0bf814a80cb97", "name": "Very large file: backend/tests/test_tasks_knowledge_settings_endpoints.py (1383 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_tasks_knowledge_settings_endpoints.py (1383 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-397e3e3294c3785a", "name": "Very large file: backend/tests/test_auth_endpoints.py (2868 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_auth_endpoints.py (2868 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-fc3a31da61cf9fd6", "name": "Very large file: backend/tests/test_proposals_endpoints.py (1309 lines)", "shortDescription": {"text": "Very large file: backend/tests/test_proposals_endpoints.py (1309 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-e9874ae764e64c59", "name": "Very large file: backend/tests/smoke/cortex_e2e_inprocess.py (1437 lines)", "shortDescription": {"text": "Very large file: backend/tests/smoke/cortex_e2e_inprocess.py (1437 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-d9730686e6f450da", "name": "Very large file: backend/tests/services/test_validation_service_wave4_coverage.py (1670 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_validation_service_wave4_coverage.py (1670 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-04f8ac5b93672379", "name": "Very large file: backend/tests/services/test_research_service_wave4b_coverage.py (1575 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_research_service_wave4b_coverage.py (1575 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-a00d18cbdc095b73", "name": "Very large file: backend/tests/services/test_vector_search_service_wave6_coverage.py (2091 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_vector_search_service_wave6_coverage.py (2091 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-356c4fa8ae60d1ef", "name": "Very large file: backend/tests/services/test_validation_service_branches.py (1658 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_validation_service_branches.py (1658 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-a336f722e2818df0", "name": "Very large file: backend/tests/services/test_salesforce_calibration_service.py (2044 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_salesforce_calibration_service.py (2044 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-60f8eba044a57d0b", "name": "Very large file: backend/tests/services/test_proposal_service_extended.py (2828 lines)", "shortDescription": {"text": "Very large file: backend/tests/services/test_proposal_service_extended.py (2828 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-8df4ddf438dbff8f", "name": "Very large file: backend/api/admin.py (2404 lines)", "shortDescription": {"text": "Very large file: backend/api/admin.py (2404 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-3d1307297faf26e3", "name": "Very large file: backend/api/knowledge.py (1723 lines)", "shortDescription": {"text": "Very large file: backend/api/knowledge.py (1723 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-c1c8cc28591082a9", "name": "Very large file: backend/api/cortex.py (1651 lines)", "shortDescription": {"text": "Very large file: backend/api/cortex.py (1651 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bac706f81bf6b82", "name": "Very large file: backend/api/benchmarking.py (1403 lines)", "shortDescription": {"text": "Very large file: backend/api/benchmarking.py (1403 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-c89b16299f862842", "name": "Very large file: backend/api/clients/synthesis.py (1935 lines)", "shortDescription": {"text": "Very large file: backend/api/clients/synthesis.py (1935 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-12ac30f4dcbd5b5d", "name": "Very large file: backend/api/research/analysis.py (2692 lines)", "shortDescription": {"text": "Very large file: backend/api/research/analysis.py (2692 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-eb3293e1ff0eded9", "name": "Very large file: backend/scripts/seed_e2e.py (1654 lines)", "shortDescription": {"text": "Very large file: backend/scripts/seed_e2e.py (1654 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-e33604d2fbe37913", "name": "Very large file: backend/services/enrichment_service.py (1355 lines)", "shortDescription": {"text": "Very large file: backend/services/enrichment_service.py (1355 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-de5ce061fcd54aab", "name": "Very large file: backend/services/research_service.py (1911 lines)", "shortDescription": {"text": "Very large file: backend/services/research_service.py (1911 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-fbb5ab9bd08756ee", "name": "Very large file: backend/services/vendor_catalogue_service.py (1669 lines)", "shortDescription": {"text": "Very large file: backend/services/vendor_catalogue_service.py (1669 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-a6f9ea53ed728dcf", "name": "Very large file: backend/services/copilot_service.py (2664 lines)", "shortDescription": {"text": "Very large file: backend/services/copilot_service.py (2664 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-5040b9bcbf4decb3", "name": "Very large file: backend/services/proposal_service.py (1372 lines)", "shortDescription": {"text": "Very large file: backend/services/proposal_service.py (1372 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-b74cd3182ac2a047", "name": "Very large file: backend/services/claude_service.py (1300 lines)", "shortDescription": {"text": "Very large file: backend/services/claude_service.py (1300 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-0ae3f01b8b63dcb3", "name": "Very large file: backend/services/vector_search_service.py (2129 lines)", "shortDescription": {"text": "Very large file: backend/services/vector_search_service.py (2129 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-12935e58c998e076", "name": "Very large file: backend/services/cortex_score_service.py (1920 lines)", "shortDescription": {"text": "Very large file: backend/services/cortex_score_service.py (1920 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-5378d1a693b15a37", "name": "Very large file: backend/services/validation_service.py (1853 lines)", "shortDescription": {"text": "Very large file: backend/services/validation_service.py (1853 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-d932cdf057f56a13", "name": "Very large file: backend/services/salesforce_sync_service.py (1092 lines)", "shortDescription": {"text": "Very large file: backend/services/salesforce_sync_service.py (1092 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-799b6c1ff0089583", "name": "Very large file: backend/migrations/versions/47647706d452_initial_schema.py (1012 lines)", "shortDescription": {"text": "Very large file: backend/migrations/versions/47647706d452_initial_schema.py (1012 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-3bba6e32b4bf0336", "name": "Very large file: frontend/src/store/slices/workshop.js (1358 lines)", "shortDescription": {"text": "Very large file: frontend/src/store/slices/workshop.js (1358 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-bb83f6e67166d21e", "name": "Very large file: frontend/src/store/slices/cortex.js (1460 lines)", "shortDescription": {"text": "Very large file: frontend/src/store/slices/cortex.js (1460 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-5b99d1a3a09b1419", "name": "32 TODO/FIXME markers", "shortDescription": {"text": "32 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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 786 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 196 placeholder/mock markers across 83 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-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d23d984364364f8", "name": "Agent authority lacks a verifier contract: frontend/.mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.mcp.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31e6aac02371f75a", "name": "Agent authority lacks a verifier contract: frontend/.claude/agents/playwright-test-generator.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/agents/playwright-test-generator.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2722702157f0f8a7", "name": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8769bcc771831214", "name": "Agent instruction contains unpinned remote install: .claude/settings.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-152c8992ea15a3ea", "name": "Agent authority lacks a verifier contract: .claude/settings-legacy.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings-legacy.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b25c5b73f4bf5a3a", "name": "Agent instruction contains unpinned remote install: .claude/settings-legacy.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/settings-legacy.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-709c4873477bbd47", "name": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest-legacy.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest-legacy.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbaf78bedbfd3353", "name": "Agent authority lacks a verifier contract: .claude/agents/python-reviewer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/python-reviewer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-600a6dd2d3dbc9a7", "name": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal/2026-05-27T12-00-27-074Z-3a1c8f01bbc2d239.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal/2026-05-27T12-00-27-074Z-3a1c8f01bbc2d239.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47d932c89e28d3de", "name": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/agents/gsd-ui-auditor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/agents/gsd-ui-auditor.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23b1d1bd2a2afcd5", "name": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/templates/phase-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/templates/phase-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ec10222df371e45", "name": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/references/checkpoints.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/references/checkpoints.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9514063ee81f61fd", "name": "Agent authority lacks a verifier contract: .claude/commands/verify.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/verify.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c928ae5c6fa5269a", "name": "Agent authority lacks a verifier contract: .claude/commands/refresh.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/refresh.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-666949a02fe96907", "name": "Agent authority lacks a verifier contract: .claude/commands/add-test.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/add-test.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9bf971fb959c1bd9", "name": "Agent authority lacks a verifier contract: .claude/commands/review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-035a42c9c31ddf6d", "name": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/agents/python-reviewer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/agents/python-reviewer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da64f12201b3062f", "name": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/explore-codebase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/explore-codebase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-921171c30920ea33", "name": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/debug-issue.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/debug-issue.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d8ce66e167ede89", "name": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/chromadb-debug/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/chromadb-debug/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d67e60dfa73b6ed", "name": "Agent instruction/config may expose a secret: .claude/plans/2026-02-17-composite-matrix-scoring-plan.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/plans/2026-02-17-composite-matrix-scoring-plan.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6bc82e20230242e", "name": "Agent instruction/config may expose a secret: .claude/plans/2026-02-18-data-gap-answers-plan.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/plans/2026-02-18-data-gap-answers-plan.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-301e32a7f84c2fe7", "name": "Agent authority lacks a verifier contract: .claude/plans/2026-02-18-data-gaps-ux-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/plans/2026-02-18-data-gaps-ux-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b2356f2eb3d31b5b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/contexts/dev.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/contexts/dev.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6070019189f987b4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/milestone-archive.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/milestone-archive.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e076d79475cf166", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/VALIDATION.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/VALIDATION.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f30c900c47f9f47", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/state.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/state.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e64fff7912a0a16", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/phase-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/phase-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-881a85631f7680c5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/AI-SPEC.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/AI-SPEC.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3694e34b34a95d76", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/SECURITY.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/SECURITY.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a567088f1adb0f8c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/copilot-instructions.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/copilot-instructions.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae97143b242b0206", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/dev-preferences.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/dev-preferences.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3a9e689d74736a4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/claude-md.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/claude-md.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0572be762683c10d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d8dfa2e4ac21016", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research-project/STACK.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research-project/STACK.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c7981917d0fa35a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/stack.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/stack.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d65454087fe2288", "name": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/templates/codebase/stack.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/templates/codebase/stack.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f8fdada49ea7eee", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/concerns.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/concerns.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df10c011683203bb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/testing.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/testing.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a7da0504283f483", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/architecture.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/architecture.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3308bb9e064eefe9", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-todo.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-todo.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58878aa486789801", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/sketch.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/sketch.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8c5b37e5dda9c41", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/diagnose-issues.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/diagnose-issues.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75784db5d14d2f3b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/help.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/help.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-debf58b497682f90", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-tests.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-tests.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54ba9c001241dbff", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/pause-work.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/pause-work.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b37ae6cb4551567b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e270e80f0c45484a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/health.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/health.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df4cb27a96359469", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-uat.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-uat.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df7a616130ecd34f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9619a9a05fd030f4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-work.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-work.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b12da75a67451c5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/insert-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/insert-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f239aee88698f518", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/milestone-summary.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/milestone-summary.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3adbd35468ed94a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings-advanced.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings-advanced.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-871c0d2b3db8b8c8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/reapply-patches.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/reapply-patches.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33dec6ec3e200b96", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-plan.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-plan.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9bf42d403148b255", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5eb1ad6c4002c0f0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-workspace.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-workspace.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8720de21529f8e24", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d22875e42591f581", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/scan.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/scan.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbd27f3457d507db", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ad4f62b18b6fcdc", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-milestone.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-milestone.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7d0a092c01b340b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/explore.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/explore.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1bcc545f70e6996", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/validate-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/validate-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-560906cadce1b666", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/check-todos.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/check-todos.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce8a38ccf48115d6", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ship.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ship.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b7c8a13abcfa3583", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase-power.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase-power.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e922509cd88d5ab3", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b403071037b7495", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/resume-project.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/resume-project.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d5e2c55fd0069ff", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd9f77982d4dc488", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-milestone.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-milestone.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-680a2d1fe0abcf8a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/autonomous.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/autonomous.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-810fd9337362dbee", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/spike.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/spike.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10e0f2ec3ae9c749", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/quick.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/quick.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a44bb67968f7c24b", "name": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/quick.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/quick.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b88db6680e98308d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/plan-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/plan-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-283c322b25ae0829", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1297fca3381f9e87", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/docs-update.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/docs-update.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f595c98036ff8d0f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/manager.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/manager.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e3852b50b1a5609", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/list-workspaces.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/list-workspaces.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-803b1032dc0e8654", "name": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/update.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/update.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6bb0a5d35f56ba69", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/cleanup.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/cleanup.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bae879d83b4984ee", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-project.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-project.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00d2ad4ec4e0d58a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/stats.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/stats.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b432635805152f12", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/secure-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/secure-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d52c1d752db40b41", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a726fd5b9ac758d8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/import.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/import.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c0a49e693b1cbb9", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-afb73cc617e2a375", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/inbox.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/inbox.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e22628f28df243a0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/post-merge-gate.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/post-merge-gate.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-579640e78d627175", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/codebase-drift-gat", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/codebase-drift-gate.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-991af3d1a42138a4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/power.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/power.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b34a4086c53786fb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/auto.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/auto.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb2c4c3db94f27b9", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/all.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/all.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e575e0a00ee5244", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/chain.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/chain.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95aac58d4082dfa8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/default.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/default.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1effc7d2ba1a92c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/text.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/text.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89de8655de1dbc19", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/tdd.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/tdd.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d13fbf7318305986", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/continuation-format.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/continuation-format.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f56361f07a0670f8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/planner-chunked.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/planner-chunked.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-836ba7b27b90d3f0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-integration.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-integration.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c184b43330916b53", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-debug.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-debug.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f57de4ede3f5dce", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/ai-evals.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/ai-evals.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6bf48737c7cf6c1", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/decimal-phase-calculation.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/decimal-phase-calculation.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-113de2ffabf4ea68", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verification-overrides.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verification-overrides.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1b1df42e8ff1962", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/model-profile-resolution.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/model-profile-resolution.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e2997583a54b1dcb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/artifact-types.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/artifact-types.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a1b738aae980b43", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/sketch-theme-system.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/sketch-theme-system.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2db09b35778f00e4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-planning-commit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-planning-commit.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bfd914a6d1ce931c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/checkpoints.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/checkpoints.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c41b088d7e83fcd", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verify-mvp-mode.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verify-mvp-mode.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4402de9d190eef0", "name": "Agent instruction/config may expose a secret: .claude/get-shit-done-legacy/references/workstream-flag.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/get-shit-done-legacy/references/workstream-flag.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc1123c76bf85b2c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/workstream-flag.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/workstream-flag.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1155de24a106a26a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-execution.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-execution.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb6bfbdb8076f441", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-verification.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-verification.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22d4a31a7cd26253", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/spidr-splitting.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/spidr-splitting.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab6d1f011fff0bb5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/phase-argument-parsing.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/phase-argument-parsing.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60d50f9e7e58f651", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/few-shot-examples/verifier.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/few-shot-examples/verifier.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0bbc5836cb724da", "name": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal-legacy/2026-05-15T16-01-55-630Z-43bcd0fb95e71d0", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal-legacy/2026-05-15T16-01-55-630Z-43bcd0fb95e71d06.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-583063d693a88bb9", "name": "Agent authority lacks a verifier contract: .claude/skills/autobuild/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/autobuild/README.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd9d647247b141de", "name": "Agent authority lacks a verifier contract: .claude/skills/autobuild/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/autobuild/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e232d4fc39a54ae9", "name": "Agent authority lacks a verifier contract: .claude/skills/chromadb-debug/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/chromadb-debug/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75d80c6813cb18ae", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/contexts/dev.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/contexts/dev.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9a666c8b5e2963d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/milestone-archive.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/milestone-archive.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c460598f508f51ca", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/VALIDATION.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/VALIDATION.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92f8d012173ae0f2", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/state.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/state.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-665596707e65a898", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/phase-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/phase-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b846b61ec0a0b90a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/AI-SPEC.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/AI-SPEC.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35cc1456776a124b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/SECURITY.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/SECURITY.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2a8910d54e4c885", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/copilot-instructions.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/copilot-instructions.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b03ee0354e205d1", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/dev-preferences.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/dev-preferences.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-896a0568829cadd9", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/claude-md.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/claude-md.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1e18490e7a7b3bb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42edafe48e3bf20c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research-project/STACK.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research-project/STACK.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8301f5b45cf87820", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/stack.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/stack.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35043920d856b91c", "name": "Agent instruction contains unpinned remote install: .claude/get-shit-done/templates/codebase/stack.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done/templates/codebase/stack.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1216a6c6e25a8a7b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/concerns.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/concerns.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a7ab6f4c4a57b25", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/testing.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/testing.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-920ae36b2b11fdc0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/architecture.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/architecture.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b15cb6d897ccccf8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-todo.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-todo.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71f50cd00f7b7571", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/sketch.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/sketch.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47cf1675d1a44ad3", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/diagnose-issues.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/diagnose-issues.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4097ef770f26398e", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cd93ec5a51a8b2d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-tests.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-tests.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f133dfc70b08d00", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/pause-work.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/pause-work.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86d01f50ee092aa4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf02774b276f4ad6", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/health.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/health.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73bb90d58599151f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-uat.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-uat.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3437f3958e1b3c9b", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff1fd4e293bfd611", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-work.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-work.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ce99967d20744eb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/insert-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/insert-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a691ed9c4b9f5186", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/milestone-summary.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/milestone-summary.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7b25d5294d636ca", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings-advanced.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings-advanced.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f9d46b0ab283962", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/reapply-patches.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/reapply-patches.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-978a49899a067bfa", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-plan.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-plan.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4e21cd88c702c831", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e09aeb1f6d47294", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-workspace.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-workspace.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91ab092218fa61b4", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10b459d93658c312", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/scan.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/scan.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b22d0e879a7bffe7", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ba386741a97dcbd", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-milestone.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-milestone.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca6ebc23b99d38d0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/explore.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/explore.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0985cfb3642a73a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/validate-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/validate-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c57d8f6dac0ce98", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/check-todos.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/check-todos.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b38e3c7b17d0eea0", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ship.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ship.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-953b9445facd8ce5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase-power.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase-power.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96a9f93d7170619f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review-fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review-fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87c15cb5dbcdc1e8", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/resume-project.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/resume-project.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-362cc90b28a7d48c", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-218513de85ccca21", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-milestone.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-milestone.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f573c4dcc8f682cc", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/autonomous.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/autonomous.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0abe558693eaf50", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/spike.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/spike.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1cfaf4b080703fd1", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/quick.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/quick.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b74778d433cb776", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/plan-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/plan-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41db87ed704dd194", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8f307819875b7ae", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/docs-update.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/docs-update.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-daee60f6b27301d5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/manager.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/manager.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2afb9ed742bc85d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/list-workspaces.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/list-workspaces.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e40ead765fcc3fb9", "name": "Agent instruction contains unpinned remote install: .claude/get-shit-done/workflows/update.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done/workflows/update.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c29eafa422b6edfe", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/cleanup.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/cleanup.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61ed08f466344220", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-project.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-project.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91fbb35bfb488f7a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/stats.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/stats.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c768719180278c84", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/secure-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/secure-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5361a2e1ca4b553", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2abc049f7dbc82e", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/import.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/import.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c908b0735d48d61f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-phase.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-phase.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ec63b2d6c662289", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/inbox.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/inbox.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8411fa6f20d420d2", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d052e56abc226bb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66dc8b185c1bc8bb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/power.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/power.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1ceeced2a0835ea", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/auto.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/auto.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9aba490f56861260", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/all.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/all.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b0b5d46437d65fc", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/chain.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/chain.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff65d67fcbbb9074", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/default.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/default.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8732c730ecbd4d14", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/text.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/text.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e4fe3c9b7a72e08", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/default.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/default.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8f5438b677abcfb", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/full.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/full.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a013aef072fe932", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/brief.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/brief.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ce36038651b8e68", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/tdd.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/tdd.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-348cb256c318de42", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-interface-context.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-interface-context.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72f2912e92722897", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/continuation-format.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/continuation-format.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd9e4f72d4b40638", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-chunked.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-chunked.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9d2390111805c9f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-integration.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-integration.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-000b0232a5925514", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-debug.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-debug.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc23ac61286f4fb9", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/ai-evals.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/ai-evals.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9025bd8fed9a19e", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/decimal-phase-calculation.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/decimal-phase-calculation.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eef98bc15abc163f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verification-overrides.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verification-overrides.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56945162ec777f74", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/model-profile-resolution.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/model-profile-resolution.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07fcb831bbf8d2f5", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/artifact-types.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/artifact-types.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d7ceb54c16db502", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/sketch-theme-system.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/sketch-theme-system.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68c06571bc6e109f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-planning-commit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-planning-commit.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff52d9241b568d0a", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/checkpoints.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/checkpoints.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2944aeaaf0e69992", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verify-mvp-mode.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verify-mvp-mode.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1932db8b19767ccb", "name": "Agent instruction/config may expose a secret: .claude/get-shit-done/references/workstream-flag.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/get-shit-done/references/workstream-flag.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-164373bdbf980d34", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/workstream-flag.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/workstream-flag.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a06d794d2632e162", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-execution.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-execution.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6905304ece3e3b5d", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-verification.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-verification.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0ec8dfa1594d531", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/spidr-splitting.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/spidr-splitting.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-852ec1190d69fa1f", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/phase-argument-parsing.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/phase-argument-parsing.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b54ee71a40b514de", "name": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/few-shot-examples/verifier.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/few-shot-examples/verifier.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5473f28c3fa88d42", "name": "Commented-code block (5 lines) in tests/services/test_enrichment_service.py:90", "shortDescription": {"text": "Commented-code block (5 lines) in tests/services/test_enrichment_service.py:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a95f140ab46eab18", "name": "Commented-code block (6 lines) in backend/config.py:220", "shortDescription": {"text": "Commented-code block (6 lines) in backend/config.py:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9597a60d0f0e1db", "name": "Legacy-named symbol `old_backup` in backend/app_factory.py:40", "shortDescription": {"text": "Legacy-named symbol `old_backup` in backend/app_factory.py:40"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c465c77c12975539", "name": "Commented-code block (6 lines) in backend/app_factory.py:243", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app_factory.py:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4477528794437f17", "name": "Legacy-named symbol `insights_v1` in backend/tests/test_vision_escalation.py:419", "shortDescription": {"text": "Legacy-named symbol `insights_v1` in backend/tests/test_vision_escalation.py:419"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ff9a91903bf9f40d", "name": "Commented-code block (5 lines) in backend/tests/test_vision_escalation.py:483", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_vision_escalation.py:483"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1736ed396bf50b1c", "name": "Legacy-named symbol `TestTaxonomyPostConfigDeprecated` in backend/tests/test_taxonomy_help_feedback_endpoints.py:116", "shortDescription": {"text": "Legacy-named symbol `TestTaxonomyPostConfigDeprecated` in backend/tests/test_taxonomy_help_feedback_endpoints.py:116"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7af363f9f8a65c42", "name": "Legacy-named symbol `test_auth_clears_research_deprecated` in backend/tests/test_clients_documents_endpoints.py:172", "shortDescription": {"text": "Legacy-named symbol `test_auth_clears_research_deprecated` in backend/tests/test_clients_documents_endpoints.py:172"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15a98a5d5a62e94f", "name": "Commented-code block (5 lines) in backend/tests/conftest.py:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/conftest.py: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-60908d04aec74e95", "name": "Legacy-named symbol `TestParseAndImportPricebookDeprecated` in backend/tests/test_vendor_catalogue_service.py:381", "shortDescription": {"text": "Legacy-named symbol `TestParseAndImportPricebookDeprecated` in backend/tests/test_vendor_catalogue_service.py:381"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cad1fdefc0c33dc9", "name": "Legacy-named symbol `test_archive_failure_keeps_staging_copy` in backend/tests/test_archive_service.py:110", "shortDescription": {"text": "Legacy-named symbol `test_archive_failure_keeps_staging_copy` in backend/tests/test_archive_service.py:110"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7ac8f1c1fa571e9", "name": "Commented-code block (6 lines) in backend/tests/test_proposals_c06_cross_tenant_write.py:220", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_proposals_c06_cross_tenant_write.py:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94ffc778f17395b7", "name": "Commented-code block (6 lines) in backend/tests/test_benchmark_extraction_service.py:200", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_benchmark_extraction_service.py:200"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b06c60023fdb628", "name": "Commented-code block (6 lines) in backend/tests/test_enrichment_service.py:115", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/test_enrichment_service.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ceff757d0e9c8007", "name": "Legacy-named symbol `test_freshness_very_old` in backend/tests/test_cortex_score_service.py:77", "shortDescription": {"text": "Legacy-named symbol `test_freshness_very_old` in backend/tests/test_cortex_score_service.py:77"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d8bc4cb90126432", "name": "Legacy-named symbol `c_legacy` in backend/tests/test_clients_synthesis_extended.py:496", "shortDescription": {"text": "Legacy-named symbol `c_legacy` in backend/tests/test_clients_synthesis_extended.py:496"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-534e50e6969f92a1", "name": "Commented-code block (5 lines) in backend/tests/test_file_extraction.py:117", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_file_extraction.py:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-041479f3769f74c7", "name": "Commented-code block (8 lines) in backend/tests/test_knowledge_service.py:53", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/test_knowledge_service.py:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23768ea5667572e0", "name": "Legacy-named symbol `google_legacy` in backend/tests/test_oauth_user_creation.py:90", "shortDescription": {"text": "Legacy-named symbol `google_legacy` in backend/tests/test_oauth_user_creation.py:90"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eca84745a89838a2", "name": "Legacy-named symbol `test_rejects_shutil_copy` in backend/tests/test_lint_storage_abstraction.py:49", "shortDescription": {"text": "Legacy-named symbol `test_rejects_shutil_copy` in backend/tests/test_lint_storage_abstraction.py:49"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78831cd2fd2f7dbd", "name": "Legacy-named symbol `has_legacy` in backend/tests/test_vector_search_rename.py:51", "shortDescription": {"text": "Legacy-named symbol `has_legacy` in backend/tests/test_vector_search_rename.py:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c64d6e3a3c895501", "name": "Commented-code block (5 lines) in backend/tests/test_999_1_service_layer_admin_bypass.py:486", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_999_1_service_layer_admin_bypass.py:486"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74a3c07d45ebeb24", "name": "Commented-code block (5 lines) in backend/tests/test_claude_api_wiring.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/test_claude_api_wiring.py:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb61e69fcc40c6cd", "name": "Legacy-named symbol `TestParseLegacy` in backend/tests/services/test_spreadsheet_parser.py:162", "shortDescription": {"text": "Legacy-named symbol `TestParseLegacy` in backend/tests/services/test_spreadsheet_parser.py:162"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c8ee366371ef9428", "name": "Legacy-named symbol `006_old` in backend/tests/services/test_evidence_stub_service.py:371", "shortDescription": {"text": "Legacy-named symbol `006_old` in backend/tests/services/test_evidence_stub_service.py:371"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2fe8e207b54e2d8", "name": "Legacy-named symbol `avg_old` in backend/tests/services/test_bayesian_value_service.py:214", "shortDescription": {"text": "Legacy-named symbol `avg_old` in backend/tests/services/test_bayesian_value_service.py:214"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05ed4ea5701fe27b", "name": "Commented-code block (6 lines) in backend/tests/services/test_settings_helpers.py:8", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/services/test_settings_helpers.py: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-4cc0b671735f64f0", "name": "Commented-code block (5 lines) in backend/api/admin.py:1530", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/admin.py:1530"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d5a69f27514a7fa", "name": "Commented-code block (5 lines) in backend/api/calculations.py:135", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/calculations.py:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d6cadef87208473", "name": "Commented-code block (6 lines) in backend/api/knowledge.py:62", "shortDescription": {"text": "Commented-code block (6 lines) in backend/api/knowledge.py:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5c6854f5bd2d6e1", "name": "Commented-code block (5 lines) in backend/api/copilot.py:61", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/copilot.py:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88b0cb65eae6dd4f", "name": "Commented-code block (5 lines) in backend/api/salesforce.py:23", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/salesforce.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e7f2277c30c0ac4", "name": "Legacy-named symbol `update_config_deprecated` in backend/api/taxonomy.py:95", "shortDescription": {"text": "Legacy-named symbol `update_config_deprecated` in backend/api/taxonomy.py:95"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15c3abb387ca919c", "name": "Commented-code block (5 lines) in backend/api/taxonomy.py:207", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/taxonomy.py:207"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2bbec4f777698fc", "name": "Commented-code block (5 lines) in backend/api/benchmarking.py:574", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/benchmarking.py:574"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2d8071dd0bd98b6", "name": "Commented-code block (5 lines) in backend/api/vendor_catalogue.py:218", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/vendor_catalogue.py:218"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8917fdacfd835831", "name": "Commented-code block (5 lines) in backend/api/drive.py:7", "shortDescription": {"text": "Commented-code block (5 lines) in backend/api/drive.py: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-c7e4e706a17a9810", "name": "Legacy-named symbol `doc_copy` in backend/api/research/analysis.py:570", "shortDescription": {"text": "Legacy-named symbol `doc_copy` in backend/api/research/analysis.py:570"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f32073ef8306c9c8", "name": "Commented-code block (6 lines) in backend/api/research/analysis.py:692", "shortDescription": {"text": "Commented-code block (6 lines) in backend/api/research/analysis.py:692"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43582ec89077f045", "name": "Commented-code block (9 lines) in backend/api/research/uploads.py:39", "shortDescription": {"text": "Commented-code block (9 lines) in backend/api/research/uploads.py:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba60b588959a20c4", "name": "Commented-code block (5 lines) in backend/scripts/migrate_sqlite_to_postgres.py:305", "shortDescription": {"text": "Commented-code block (5 lines) in backend/scripts/migrate_sqlite_to_postgres.py:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfc23f397cd6cced", "name": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/migrate_sqlite_to_postgres.py:63", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/migrate_sqlite_to_postgres.py:63"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3278c1f5b4fa7633", "name": "Commented-code block (10 lines) in backend/scripts/lint_query_get_deprecation.py:25", "shortDescription": {"text": "Commented-code block (10 lines) in backend/scripts/lint_query_get_deprecation.py: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-7fc4d4c2bff59f00", "name": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/lint_architecture.py:204", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/lint_architecture.py:204"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b332ba27752a966e", "name": "Legacy-named symbol `update_config_deprecated` in backend/scripts/lint_auth_decorators.py:99", "shortDescription": {"text": "Legacy-named symbol `update_config_deprecated` in backend/scripts/lint_auth_decorators.py:99"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00560f0f158917cd", "name": "Commented-code block (5 lines) in backend/scripts/lint_auth_decorators.py:100", "shortDescription": {"text": "Commented-code block (5 lines) in backend/scripts/lint_auth_decorators.py:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e0ce39b1f5f2546", "name": "Commented-code block (6 lines) in backend/scripts/lint_request_thread_parsing.py:69", "shortDescription": {"text": "Commented-code block (6 lines) in backend/scripts/lint_request_thread_parsing.py:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-692f9c8fe546d6f6", "name": "Legacy-named symbol `restore_from_backup` in backend/scripts/backup_sqlite.py:94", "shortDescription": {"text": "Legacy-named symbol `restore_from_backup` in backend/scripts/backup_sqlite.py:94"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7d5138ee24ca3d0", "name": "Commented-code block (5 lines) in backend/scripts/seed_e2e.py:245", "shortDescription": {"text": "Commented-code block (5 lines) in backend/scripts/seed_e2e.py:245"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9337ffd6d93685a", "name": "Commented-code block (7 lines) in backend/scripts/lint_datetime_deprecation.py:32", "shortDescription": {"text": "Commented-code block (7 lines) in backend/scripts/lint_datetime_deprecation.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afecd17e750b2d25", "name": "Commented-code block (7 lines) in backend/scripts/lint_guards.py:25", "shortDescription": {"text": "Commented-code block (7 lines) in backend/scripts/lint_guards.py: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-4791e62f62bd9eb0", "name": "Commented-code block (6 lines) in backend/scripts/lint_storage_abstraction.py:46", "shortDescription": {"text": "Commented-code block (6 lines) in backend/scripts/lint_storage_abstraction.py:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a67b7ae628cd386", "name": "Commented-code block (5 lines) in backend/scripts/check_claude_wiring.py:85", "shortDescription": {"text": "Commented-code block (5 lines) in backend/scripts/check_claude_wiring.py:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7eea45dedcb7ea4", "name": "Commented-code block (6 lines) in backend/utils/auth.py:245", "shortDescription": {"text": "Commented-code block (6 lines) in backend/utils/auth.py:245"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a19f40887177346", "name": "Commented-code block (6 lines) in backend/models/meeting.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in backend/models/meeting.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e582e6c06b0ab51a", "name": "Commented-code block (5 lines) in backend/models/calculation.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in backend/models/calculation.py:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74c7cc38bf559689", "name": "Commented-code block (5 lines) in backend/constants/models.py:30", "shortDescription": {"text": "Commented-code block (5 lines) in backend/constants/models.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6352f29677235bda", "name": "Legacy-named symbol `_parse_legacy` in backend/services/spreadsheet_parser.py:104", "shortDescription": {"text": "Legacy-named symbol `_parse_legacy` in backend/services/spreadsheet_parser.py:104"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ee8932770bd04aa", "name": "Commented-code block (7 lines) in backend/services/benchmark_extraction_service.py:134", "shortDescription": {"text": "Commented-code block (7 lines) in backend/services/benchmark_extraction_service.py:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0eb3fe2f34eaf9e", "name": "Commented-code block (7 lines) in backend/services/cortex_intelligence_feed_service.py:98", "shortDescription": {"text": "Commented-code block (7 lines) in backend/services/cortex_intelligence_feed_service.py:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f7408523e138fd5", "name": "Commented-code block (7 lines) in backend/services/research_service.py:100", "shortDescription": {"text": "Commented-code block (7 lines) in backend/services/research_service.py:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-168421a5d6a60568", "name": "Commented-code block (5 lines) in backend/services/vendor_catalogue_service.py:368", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/vendor_catalogue_service.py:368"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb97d85150f732ce", "name": "Commented-code block (5 lines) in backend/services/drive_transcript_matcher.py:223", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/drive_transcript_matcher.py:223"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-815f2be95c30f735", "name": "Legacy-named symbol `m_copy` in backend/services/mapping_service.py:232", "shortDescription": {"text": "Legacy-named symbol `m_copy` in backend/services/mapping_service.py:232"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25326970e8b36d88", "name": "Commented-code block (6 lines) in backend/services/vector_search_service.py:779", "shortDescription": {"text": "Commented-code block (6 lines) in backend/services/vector_search_service.py:779"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df37d3b56ef925f3", "name": "Commented-code block (7 lines) in backend/services/cortex_score_service.py:388", "shortDescription": {"text": "Commented-code block (7 lines) in backend/services/cortex_score_service.py:388"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fe5f2e29690e46a", "name": "Commented-code block (5 lines) in backend/services/value_estimation_service.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/value_estimation_service.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ad9e9b0aaa816c3", "name": "Commented-code block (5 lines) in backend/services/storage_service.py:238", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/storage_service.py:238"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d953edb7988a1e0", "name": "Commented-code block (5 lines) in backend/config/cortex.py:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/config/cortex.py: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-c9e9b7754700bbde", "name": "Commented-code block (9 lines) in backend/config/benchmarking.py:8", "shortDescription": {"text": "Commented-code block (9 lines) in backend/config/benchmarking.py: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-59479c01664adeca", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/a2d5a6baa4e2_merge_heads.py:19", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/a2d5a6baa4e2_merge_heads.py:19"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-311e93b5b7fb979d", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/cee6921256bf_merge_migration_branch", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/cee6921256bf_merge_migration_branches.py:19"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cb99f77aaadc8c9", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/c4c7a50d5f9a_merge_heads_workshops_", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/c4c7a50d5f9a_merge_heads_workshops_themes_cortex_v7_.py:19"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a07b25c4cf6af951", "name": "Commented-code block (7 lines) in frontend/vitest.config.js:39", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/vitest.config.js:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b27c4a3976150bb5", "name": "Commented-code block (6 lines) in frontend/playwright.config.js:62", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/playwright.config.js:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c843406df8e1c8d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/eslint.config.js:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/eslint.config.js:60"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58d82813f4bf71e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/audit-fetch-callers.js:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/audit-fetch-callers.js:3"}, "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-088482393921fd83", "name": "Commented-code block (7 lines) in frontend/scripts/lint-guards.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/scripts/lint-guards.js: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-b48a6c5a30dae7d6", "name": "Commented-code block (5 lines) in frontend/scripts/compute-gap.cjs:162", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/scripts/compute-gap.cjs:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93c604f545f2fbf7", "name": "Commented-code block (5 lines) in frontend/src/App.jsx:103", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/App.jsx:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b1f19316974b60e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/main.jsx:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/main.jsx: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-c00dbe38b97ea4ca", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/api.js:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/api.js:74"}, "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-2560e8d6696d2185", "name": "Commented-code block (5 lines) in frontend/src/components/Research/ResearchExtractionSummary.jsx:155", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Research/ResearchExtractionSummary.jsx:155"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-610b378038b662fa", "name": "Commented-code block (5 lines) in frontend/src/components/Research/useResearchDocuments.js:119", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Research/useResearchDocuments.js:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-913f515023aad1aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/Research/useResearchDocuments.js:179", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/Research/useResearchDocuments.js:179"}, "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-9ce5f074996bb727", "name": "Commented-code block (5 lines) in frontend/src/components/Workshop/PrioritisationMatrix.jsx:30", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Workshop/PrioritisationMatrix.jsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-110f9cf862061392", "name": "Commented-code block (5 lines) in frontend/src/components/Admin/CatalogueImportDetail.jsx:146", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Admin/CatalogueImportDetail.jsx:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd3d42a75ace4de0", "name": "Commented-code block (5 lines) in frontend/src/components/benchmarking/admin/ExtractionReviewDetail.jsx:64", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/benchmarking/admin/ExtractionReviewDetail.jsx:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d88b46d1118f9653", "name": "Commented-code block (5 lines) in frontend/src/components/shared/SecretField.jsx:40", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/shared/SecretField.jsx: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-e7d6501dc6ff37ce", "name": "Commented-code block (5 lines) in frontend/src/components/shared/ConfidenceBadge.jsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/shared/ConfidenceBadge.jsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef70772e90993652", "name": "Commented-code block (6 lines) in frontend/src/components/Settings/DomainWeightsPanel.test.jsx:211", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/Settings/DomainWeightsPanel.test.jsx:211"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8816de15463384ac", "name": "Commented-code block (11 lines) in frontend/src/components/Settings/AIModelsKeysSection.jsx:6", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/components/Settings/AIModelsKeysSection.jsx: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-c79d30c299a9cc84", "name": "Commented-code block (5 lines) in frontend/src/components/Knowledge/TqaDataPanel.jsx:131", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Knowledge/TqaDataPanel.jsx:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c40b6973c33db45", "name": "Commented-code block (5 lines) in frontend/src/store/slices/validation.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/store/slices/validation.js:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-563478a6f70346d2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/slices/salesforceSlice.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/slices/salesforceSlice.js:24"}, "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-bbad4b34ae9715b5", "name": "Commented-code block (6 lines) in frontend/src/store/slices/admin.js:56", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/store/slices/admin.js:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef10ace290820f80", "name": "Commented-code block (5 lines) in frontend/src/store/slices/__tests__/salesforceSlice.test.js:409", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/store/slices/__tests__/salesforceSlice.test.js:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d9c99c92a7a9a82", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/__tests__/boundary-enforcement.test.js:608", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/__tests__/boundary-enforcement.test.js:608"}, "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-5fb69c666aa5da31", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/test/handlers/handlers.test.js:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/test/handlers/handlers.test.js:54"}, "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-c22bb927f6053d75", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/__tests__/errorBoundary-toast.integration.test.jsx:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/__tests__/errorBoundary-toast.integration.test.jsx:144"}, "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-0bfdbb4cc1e51772", "name": "Commented-code block (5 lines) in frontend/e2e/help-system.spec.js:173", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/help-system.spec.js:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-616beb23a2f03f60", "name": "Commented-code block (7 lines) in frontend/e2e/login.spec.js:68", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/e2e/login.spec.js:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c8456bcd579e71f", "name": "Commented-code block (8 lines) in frontend/e2e/proposal.spec.js:515", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/e2e/proposal.spec.js:515"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4ea88d3020bede0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/e2e/proposal.spec.js:254", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/e2e/proposal.spec.js:254"}, "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-18b72bd4082c3bb5", "name": "Commented-code block (7 lines) in frontend/e2e/configuration-admin.spec.js:298", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/e2e/configuration-admin.spec.js:298"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-658aa6ef1c40961f", "name": "Commented-code block (5 lines) in frontend/e2e/client-form-create.spec.js:81", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/client-form-create.spec.js:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1aa02a8e730ec53", "name": "Commented-code block (5 lines) in frontend/e2e/research.spec.js:393", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/research.spec.js:393"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c25da6f40ffe423", "name": "Commented-code block (8 lines) in frontend/e2e/copilot-mock-fixture.js:380", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/e2e/copilot-mock-fixture.js:380"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99de39405c73bbc4", "name": "Commented-code block (6 lines) in frontend/e2e/cortex-extra.spec.js:12", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/e2e/cortex-extra.spec.js: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-3b035774537dab49", "name": "Commented-code block (5 lines) in frontend/e2e/helpers/copilot_helpers.js:563", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/helpers/copilot_helpers.js:563"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e07353c1931763d", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_7_research.spec.js:37", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_7_research.spec.js:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4c60c8803fe2034", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_cross_domain.spec.js:63", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_cross_domain.spec.js:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92f972c9f47d0ceb", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_2_maturity.spec.js:42", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_2_maturity.spec.js:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac1d59a0b5858178", "name": "Commented-code block (7 lines) in frontend/e2e/copilot/test_copilot_smoke.spec.js:51", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/e2e/copilot/test_copilot_smoke.spec.js:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-269d26086b955d40", "name": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_10_contacts.spec.js:31", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_10_contacts.spec.js: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-84d7efb5aaa3fe9b", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_12_engagement.spec.js:100", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_12_engagement.spec.js:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49b951b7463446e2", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_11_case_studies.spec.js:55", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_11_case_studies.spec.js:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae81d5e01be4ede6", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_no_client.spec.js:81", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_no_client.spec.js:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69b18619087077de", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_6_cortex.spec.js:61", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_6_cortex.spec.js:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6196dfa84525c012", "name": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_session_expiry.spec.js:139", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_session_expiry.spec.js:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63870127044cb1cf", "name": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_ingestion_client_doc.spec.js:51", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_ingestion_client_doc.spec.js:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73b46caca96db4a1", "name": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_3_calculations.spec.js:37", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_3_calculations.spec.js:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4deef6612692bae", "name": "Commented-code block (10 lines) in .claude/hooks/gsd-read-injection-scanner.js:33", "shortDescription": {"text": "Commented-code block (10 lines) in .claude/hooks/gsd-read-injection-scanner.js: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-6d5bd38064b1d2eb", "name": "Commented-code block (5 lines) in .claude/hooks/gsd-read-guard.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-read-guard.js: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-d255dc69ed34d8ec", "name": "Commented-code block (5 lines) in .claude/hooks/gsd-statusline.js:305", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-statusline.js:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5a1d7b350ec64d1", "name": "Commented-code block (5 lines) in .claude/hooks/gsd-context-monitor.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-context-monitor.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc003b959ce2925d", "name": "Commented-code block (6 lines) in .claude/hooks/gsd-check-update-worker.js:97", "shortDescription": {"text": "Commented-code block (6 lines) in .claude/hooks/gsd-check-update-worker.js:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8494a2cf148cdd31", "name": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-read-guard.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-read-guard.js: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-67e52457247b982d", "name": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-statusline.js:305", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-statusline.js:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1047f9aeded27d7", "name": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-context-monitor.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-context-monitor.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6adefde14d4817a", "name": "Commented-code block (6 lines) in .claude/hooks-legacy/gsd-check-update-worker.js:96", "shortDescription": {"text": "Commented-code block (6 lines) in .claude/hooks-legacy/gsd-check-update-worker.js:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-626667138f762415", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/forwarder.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/forwarder.ts:46"}, "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-00f733e6ad556785", "name": "Commented-code block (8 lines) in sdk/usage-telemetry/src/collector.ts:346", "shortDescription": {"text": "Commented-code block (8 lines) in sdk/usage-telemetry/src/collector.ts:346"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b9741f5b9c7b294", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/collector.ts:362", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/collector.ts:362"}, "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-d2434d8b640c6a5f", "name": "Commented-code block (5 lines) in sdk/usage-telemetry/mock/local-mock.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in sdk/usage-telemetry/mock/local-mock.mjs: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-054ecddfb5d68c81", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/mock/local-mock.mjs:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/mock/local-mock.mjs:9"}, "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-a330d8bcaa9d114e", "name": "71 env vars used in code but missing from .env.example", "shortDescription": {"text": "71 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLOWED_DOMAINS`, `ANTHROPIC_API_KEY`, `AZURE_KEY_VAULT_URL`, `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_KEY`, `AZURE_SEARCH_ADMIN_KEY`, `AZURE_SEARCH_ENDPOINT`, `AZURE_STORAGE_ACCOUNT_NAME` + 63 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/api/knowledge.py:upload_document, backend/api/knowledge.py:upload_tqa_document\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/api/clients/documents.py:get_client_collection, backend/api/clients/profiles.py:get_client_collection, backend/api/clients/profiles.py:get_client, backend/api/clients/synthesis.py:get_client_collection\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/scripts/lint_query_get_deprecation.py:get_repo_root, backend/scripts/lint_datetime_deprecation.py:get_repo_root, backend/scripts/lint_guards.py:get_repo_root\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/models/governance.py:to_dict, backend/models/governance.py:to_dict, backend/models/governance.py:to_dict, backend/models/governance.py:to_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c1d35a2dc1b243b", "name": "Frontend route `/cortex/:domainRoute` has no Link/navigate to it \u2014 frontend/src/App.jsx", "shortDescription": {"text": "Frontend route `/cortex/:domainRoute` has no Link/navigate to it \u2014 frontend/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-510a8eefc0d01556", "name": "Frontend route `/vendor-catalogue/template-editor/:id` has no Link/navigate to it \u2014 frontend/src/App.jsx", "shortDescription": {"text": "Frontend route `/vendor-catalogue/template-editor/:id` has no Link/navigate to it \u2014 frontend/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-447637edc21b5c9f", "name": "Dangling fetch: GET /api/x (frontend/src/store/__tests__/boundary-enforcement.test.js:608)", "shortDescription": {"text": "Dangling fetch: GET /api/x (frontend/src/store/__tests__/boundary-enforcement.test.js:608)"}, "fullDescription": {"text": "`frontend/src/store/__tests__/boundary-enforcement.test.js:608` calls `GET /api/x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/x`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d59f74361661a7c", "name": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:54)", "shortDescription": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:54)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:54` calls `GET /api/clients` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecd4ea28bc995899", "name": "Dangling fetch: GET /api/use-cases (frontend/src/test/handlers/handlers.test.js:64)", "shortDescription": {"text": "Dangling fetch: GET /api/use-cases (frontend/src/test/handlers/handlers.test.js:64)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:64` calls `GET /api/use-cases` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/use-cases`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20de5b13420c0bc4", "name": "Dangling fetch: GET /api/workshops (frontend/src/test/handlers/handlers.test.js:73)", "shortDescription": {"text": "Dangling fetch: GET /api/workshops (frontend/src/test/handlers/handlers.test.js:73)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:73` calls `GET /api/workshops` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/workshops`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b419f93ba0c164e", "name": "Dangling fetch: POST /api/v1/benchmarking/assessments (frontend/src/test/handlers/handlers.test.js:84)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarking/assessments (frontend/src/test/handlers/handlers.test.js:84)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:84` calls `POST /api/v1/benchmarking/assessments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/benchmarking/assessments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17d21a9b0beb1cd5", "name": "Dangling fetch: DELETE /api/clients/test-client/meetings/test-meeting (frontend/src/test/handlers/handlers.test.js:92)", "shortDescription": {"text": "Dangling fetch: DELETE /api/clients/test-client/meetings/test-meeting (frontend/src/test/handlers/handlers.test.js:92)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:92` calls `DELETE /api/clients/test-client/meetings/test-meeting` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients/test-client/meetings/test-meeting`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26d3a0966368444f", "name": "Dangling fetch: GET /api/tasks (frontend/src/test/handlers/handlers.test.js:101)", "shortDescription": {"text": "Dangling fetch: GET /api/tasks (frontend/src/test/handlers/handlers.test.js:101)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:101` calls `GET /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c826694f5eb84643", "name": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:112)", "shortDescription": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:112)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:112` calls `GET /api/clients` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9d2b7ebb5eddbb9", "name": "Dangling fetch: GET /api/knowledge (frontend/src/test/handlers/handlers.test.js:124)", "shortDescription": {"text": "Dangling fetch: GET /api/knowledge (frontend/src/test/handlers/handlers.test.js:124)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:124` calls `GET /api/knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37a36cd5dec45271", "name": "Dangling fetch: GET /api/admin/users (frontend/src/test/handlers/handlers.test.js:134)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/users (frontend/src/test/handlers/handlers.test.js:134)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:134` calls `GET /api/admin/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9150d017a69b80b7", "name": "Dangling fetch: POST /api/clients (frontend/src/test/handlers/handlers.test.js:145)", "shortDescription": {"text": "Dangling fetch: POST /api/clients (frontend/src/test/handlers/handlers.test.js:145)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:145` calls `POST /api/clients` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61b9f01b1755d47f", "name": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:150)", "shortDescription": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:150)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:150` calls `GET /api/clients` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-843fc70ea6fe77c0", "name": "Dangling fetch: PATCH /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:155)", "shortDescription": {"text": "Dangling fetch: PATCH /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:155)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:155` calls `PATCH /api/clients/test-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients/test-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-210741f2a892faef", "name": "Dangling fetch: DELETE /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:160)", "shortDescription": {"text": "Dangling fetch: DELETE /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:160)"}, "fullDescription": {"text": "`frontend/src/test/handlers/handlers.test.js:160` calls `DELETE /api/clients/test-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clients/test-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/25363"}, "properties": {"repository": "DevonWarrior/tqa-pathfinder", "repoUrl": "https://github.com/DevonWarrior/tqa-pathfinder", "branch": "main"}, "results": [{"ruleId": "scanner-c14433e1f60662b7", "level": "note", "message": {"text": "Possibly dead Python function: patched_config_get"}, "properties": {"repobilityId": "f6eab818e4c5650f", "scanner": "scanner-primary", "fingerprint": "c14433e1f60662b7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/app_factory.py:220"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-997745645c5a7104", "level": "note", "message": {"text": "Possibly dead Python function: render_savings_by_function_slide"}, "properties": {"repobilityId": "e4f91fe1dde53a6a", "scanner": "scanner-primary", "fingerprint": "997745645c5a7104", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:314"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8dd894b36aeb3482", "level": "note", "message": {"text": "Possibly dead Python function: render_yearly_projection_slide"}, "properties": {"repobilityId": "6de1634989102d8e", "scanner": "scanner-primary", "fingerprint": "8dd894b36aeb3482", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:337"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87f2ff590d01b9cb", "level": "note", "message": {"text": "Possibly dead Python function: render_monthly_cashflow_slide"}, "properties": {"repobilityId": "7ff6aba92ce4800a", "scanner": "scanner-primary", "fingerprint": "87f2ff590d01b9cb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:370"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c2a817f98e1bd525", "level": "note", "message": {"text": "Possibly dead Python function: render_programme_timeline_slide"}, "properties": {"repobilityId": "ab0bd8f063b8979a", "scanner": "scanner-primary", "fingerprint": "c2a817f98e1bd525", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:401"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24acc8b5ba6570f5", "level": "note", "message": {"text": "Possibly dead Python function: render_function_opportunities_slide"}, "properties": {"repobilityId": "b05e59437fd4c94e", "scanner": "scanner-primary", "fingerprint": "24acc8b5ba6570f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:428"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a80c512a0aee79fb", "level": "note", "message": {"text": "Possibly dead Python function: render_implementation_roadmap_slide"}, "properties": {"repobilityId": "948d2737bff3f673", "scanner": "scanner-primary", "fingerprint": "a80c512a0aee79fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:455"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-903371c71ef381dc", "level": "note", "message": {"text": "Possibly dead Python function: render_savings_by_technology_slide"}, "properties": {"repobilityId": "8f769ddc01f2595a", "scanner": "scanner-primary", "fingerprint": "903371c71ef381dc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/export.py:482"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5012654100f65037", "level": "note", "message": {"text": "Possibly dead Python function: register_use_cases_blueprint"}, "properties": {"repobilityId": "412de93779027538", "scanner": "scanner-primary", "fingerprint": "5012654100f65037", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/use_cases.py:917"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-458156524396683f", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "458156524396683f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/clients/documents.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c042d9b94b504f3", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "9c042d9b94b504f3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/clients/documents.py:216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-027689b83f47e1a5", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "027689b83f47e1a5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/clients/documents.py:222"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2df4e1e78cc5e526", "level": "note", "message": {"text": "Possibly dead Python function: visit_FunctionDef"}, "properties": {"repobilityId": "7a354842f176b228", "scanner": "scanner-primary", "fingerprint": "2df4e1e78cc5e526", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_direct_write_callers.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3d8ee0036cb2794", "level": "note", "message": {"text": "Possibly dead Python function: visit_AsyncFunctionDef"}, "properties": {"repobilityId": "eac17513dd240cf3", "scanner": "scanner-primary", "fingerprint": "d3d8ee0036cb2794", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_direct_write_callers.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6951c407df1976ae", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "6951c407df1976ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_direct_write_callers.py:90"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44d0fd363ff67307", "level": "note", "message": {"text": "Possibly dead Python function: visit_ExceptHandler"}, "properties": {"repobilityId": "0a02b2323610b180", "scanner": "scanner-primary", "fingerprint": "44d0fd363ff67307", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_silent_except.py:155"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40727a84b243b495", "level": "note", "message": {"text": "Possibly dead Python function: visit_FunctionDef"}, "properties": {"repobilityId": "7a354842f176b228", "scanner": "scanner-primary", "fingerprint": "40727a84b243b495", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_request_thread_parsing.py:155"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0063cccf593cc566", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "0063cccf593cc566", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_request_thread_parsing.py:177"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0bbb8c62388ff8c4", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "0bbb8c62388ff8c4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_datetime_deprecation.py:111"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e60370aa576cf6e5", "level": "note", "message": {"text": "Possibly dead Python function: visit_keyword"}, "properties": {"repobilityId": "bcd49bd00d61867a", "scanner": "scanner-primary", "fingerprint": "e60370aa576cf6e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_datetime_deprecation.py:129"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c5199fcdf4f537e4", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "c5199fcdf4f537e4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_snapshot_writes.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca60d606de35e421", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "ca60d606de35e421", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_owner_scoping.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a745faadfc9e860d", "level": "note", "message": {"text": "Possibly dead Python function: visit_Compare"}, "properties": {"repobilityId": "f28df15495776ba3", "scanner": "scanner-primary", "fingerprint": "a745faadfc9e860d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_owner_scoping.py:94"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae54fcb5fe988012", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "ae54fcb5fe988012", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/lint_storage_abstraction.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-76b617bb1708f4c1", "level": "note", "message": {"text": "Possibly dead Python function: visit_ImportFrom"}, "properties": {"repobilityId": "9943a88b95a56d70", "scanner": "scanner-primary", "fingerprint": "76b617bb1708f4c1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/audit_service_failure_returns.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-77436592b88a190d", "level": "note", "message": {"text": "Possibly dead Python function: visit_Import"}, "properties": {"repobilityId": "66cd6a2eba488b69", "scanner": "scanner-primary", "fingerprint": "77436592b88a190d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/audit_service_failure_returns.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1de8e882bbf1617f", "level": "note", "message": {"text": "Possibly dead Python function: visit_FunctionDef"}, "properties": {"repobilityId": "7a354842f176b228", "scanner": "scanner-primary", "fingerprint": "1de8e882bbf1617f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/audit_service_failure_returns.py:104"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e7c6a83d2446962", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "8e7c6a83d2446962", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/audit_service_failure_returns.py:165"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-75dcd58b8aa8e2ee", "level": "note", "message": {"text": "Possibly dead Python function: visit_Attribute"}, "properties": {"repobilityId": "91b4d72b3a087b4d", "scanner": "scanner-primary", "fingerprint": "75dcd58b8aa8e2ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/check_claude_wiring.py:258"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c6cfbc44535e009", "level": "note", "message": {"text": "Possibly dead Python function: visit_Call"}, "properties": {"repobilityId": "83d516a32f6d02f1", "scanner": "scanner-primary", "fingerprint": "8c6cfbc44535e009", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/check_claude_wiring.py:283"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1af83728ef67040", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/collect-exit-metrics.js:209"}, "properties": {"repobilityId": "9d5182dd03b111ed", "scanner": "scanner-primary", "fingerprint": "c1af83728ef67040", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-864f801061f8b550", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/vitest.setup.js:132"}, "properties": {"repobilityId": "e57b7d7c3ff2ab85", "scanner": "scanner-primary", "fingerprint": "864f801061f8b550", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d6976910754fdef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-fetch-callers.js:117"}, "properties": {"repobilityId": "372ec70de53b5f8c", "scanner": "scanner-primary", "fingerprint": "8d6976910754fdef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15afd0b0dd2aa854", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-content.js:15"}, "properties": {"repobilityId": "acb6f1e6739d4c29", "scanner": "scanner-primary", "fingerprint": "15afd0b0dd2aa854", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65b0d56aee1b1afa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/build-help-index.js:70"}, "properties": {"repobilityId": "f06a080e05e8b1bf", "scanner": "scanner-primary", "fingerprint": "65b0d56aee1b1afa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-172eb58823f5bcb5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-guards.js:218"}, "properties": {"repobilityId": "f852129d5a2b7f52", "scanner": "scanner-primary", "fingerprint": "172eb58823f5bcb5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-448865bf19773ab5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/coverage-breakdown.js:155"}, "properties": {"repobilityId": "57d03e7f83e9a9b6", "scanner": "scanner-primary", "fingerprint": "448865bf19773ab5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-595f3d68a7eb4425", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/audit-allowlist.js:50"}, "properties": {"repobilityId": "7deafd8a871c2e24", "scanner": "scanner-primary", "fingerprint": "595f3d68a7eb4425", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9dca38d84c6f97fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/lint-model-dropdown.js:104"}, "properties": {"repobilityId": "47a313a577d5058c", "scanner": "scanner-primary", "fingerprint": "9dca38d84c6f97fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d1d63a379695493", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/generate-lcov.js:70"}, "properties": {"repobilityId": "9f8af08e5cbe5800", "scanner": "scanner-primary", "fingerprint": "9d1d63a379695493", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ad6fdbd8f4602e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/utils/__tests__/safeStringify.test.js:26"}, "properties": {"repobilityId": "88dcf74c882fe6a8", "scanner": "scanner-primary", "fingerprint": "5ad6fdbd8f4602e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-264fbf8fbf2f8623", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/RouteBoundary.jsx:23"}, "properties": {"repobilityId": "b02ae6a685611913", "scanner": "scanner-primary", "fingerprint": "264fbf8fbf2f8623", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d7ad8a40cdbd105", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchRepositoryPanel.jsx:326"}, "properties": {"repobilityId": "975c3ab755024691", "scanner": "scanner-primary", "fingerprint": "5d7ad8a40cdbd105", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc51231a67232a5c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchCoverageDashboard.jsx:231"}, "properties": {"repobilityId": "a0be7aacb96723e4", "scanner": "scanner-primary", "fingerprint": "cc51231a67232a5c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e69353af46d9cfdd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchExtractionSummary.jsx:171"}, "properties": {"repobilityId": "c418022375b72bb8", "scanner": "scanner-primary", "fingerprint": "e69353af46d9cfdd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b95fc702e9b3bd19", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/BenchmarkBrowserModal.jsx:151"}, "properties": {"repobilityId": "feb537cea070e4a3", "scanner": "scanner-primary", "fingerprint": "b95fc702e9b3bd19", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dedf73b3e4a6381c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchUploadSection.jsx:285"}, "properties": {"repobilityId": "b040aee26b0e9014", "scanner": "scanner-primary", "fingerprint": "dedf73b3e4a6381c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-044eab9d5f3bd759", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Research/ResearchStagingPanel.jsx:199"}, "properties": {"repobilityId": "c1d19ee0fc632f89", "scanner": "scanner-primary", "fingerprint": "044eab9d5f3bd759", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bd4993671acc3c81", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUpload.jsx:191"}, "properties": {"repobilityId": "d8f7ac653f752c5b", "scanner": "scanner-primary", "fingerprint": "bd4993671acc3c81", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e990fbe71e27dfad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopReview.jsx:369"}, "properties": {"repobilityId": "1c92fcc2aafd5bb0", "scanner": "scanner-primary", "fingerprint": "e990fbe71e27dfad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23936e3ec8203a86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopSteps.jsx:52"}, "properties": {"repobilityId": "4399e2e5bccf9321", "scanner": "scanner-primary", "fingerprint": "23936e3ec8203a86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2cfbe580fff55b31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/SpreadsheetUploadArea.jsx:368"}, "properties": {"repobilityId": "bb5246386940d82c", "scanner": "scanner-primary", "fingerprint": "2cfbe580fff55b31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-116a884259cb5a67", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopUseCases.jsx:979"}, "properties": {"repobilityId": "ddef40fff4b6791e", "scanner": "scanner-primary", "fingerprint": "116a884259cb5a67", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d7c3cca43c843cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/WorkshopPanel.jsx:232"}, "properties": {"repobilityId": "5324ee8df16e1b91", "scanner": "scanner-primary", "fingerprint": "2d7c3cca43c843cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c5099f228ad2339", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Workshop/MatrixLegend.jsx:28"}, "properties": {"repobilityId": "dbd2abd1ea884813", "scanner": "scanner-primary", "fingerprint": "0c5099f228ad2339", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fdcc607a7609fdbc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/components/Workshop/DataGaps.jsx:200"}, "properties": {"repobilityId": "38bcfbf441bda2d1", "scanner": "scanner-primary", "fingerprint": "fdcc607a7609fdbc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca9d7594219b1078", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/DocumentUpload.jsx:224"}, "properties": {"repobilityId": "5ff5736847c79c6b", "scanner": "scanner-primary", "fingerprint": "ca9d7594219b1078", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-745302900d91a625", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/BenchmarkSummaryCard.jsx:111"}, "properties": {"repobilityId": "ad3cf08ec5ae74b0", "scanner": "scanner-primary", "fingerprint": "745302900d91a625", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ea2269728ba60307", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientLinkedUseCasesPanel.jsx:290"}, "properties": {"repobilityId": "78439d32e7418df2", "scanner": "scanner-primary", "fingerprint": "ea2269728ba60307", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a32c6ebdfe6f1f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/FieldDiff.jsx:266"}, "properties": {"repobilityId": "e6c988ae360f9c7d", "scanner": "scanner-primary", "fingerprint": "9a32c6ebdfe6f1f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41ddf8afd7f7e63a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientWorkflowVisualiser.jsx:136"}, "properties": {"repobilityId": "59f6bc2b1d07f66c", "scanner": "scanner-primary", "fingerprint": "41ddf8afd7f7e63a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9cee8a5a724f69e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/InsightCategoryGrid.jsx:207"}, "properties": {"repobilityId": "3b050aabe1ba36ea", "scanner": "scanner-primary", "fingerprint": "c9cee8a5a724f69e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e2e96ef0009941f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforceLinkModal.jsx:188"}, "properties": {"repobilityId": "33a37fa5c99ffb87", "scanner": "scanner-primary", "fingerprint": "0e2e96ef0009941f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be023c3fc36fe989", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/AugmentClientDataModal.jsx:173"}, "properties": {"repobilityId": "35cad99d6fc0ae20", "scanner": "scanner-primary", "fingerprint": "be023c3fc36fe989", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fa7e0334bda430fb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/SalesforcePanel.jsx:267"}, "properties": {"repobilityId": "9653ec61372cb946", "scanner": "scanner-primary", "fingerprint": "fa7e0334bda430fb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7a5f383d021f904", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/components/Client/CalibrationTab.jsx:162"}, "properties": {"repobilityId": "47a8ae89fa1a868e", "scanner": "scanner-primary", "fingerprint": "d7a5f383d021f904", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-279c44c94b23dad4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/MeetingCreationModal.jsx:322"}, "properties": {"repobilityId": "5a26f7f38fe7df0a", "scanner": "scanner-primary", "fingerprint": "279c44c94b23dad4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b0e5faac1a152964", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Client/ClientFormSections/ClientBasicInfoSection.jsx:119"}, "properties": {"repobilityId": "c1f9879ac207a2b4", "scanner": "scanner-primary", "fingerprint": "b0e5faac1a152964", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63499de9b06c84da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/benchmarking/DiagnosticWizard.jsx:254"}, "properties": {"repobilityId": "0d50b26c150f1a34", "scanner": "scanner-primary", "fingerprint": "63499de9b06c84da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a80248f7495989d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Copilot/CopilotPanel.jsx:359"}, "properties": {"repobilityId": "2bb580102877a681", "scanner": "scanner-primary", "fingerprint": "a80248f7495989d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c347b6ca0cdb2467", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/CalculationBreakdown.jsx:261"}, "properties": {"repobilityId": "d3d88cfba59cb89f", "scanner": "scanner-primary", "fingerprint": "c347b6ca0cdb2467", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8721ef970987ce6f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/FeedbackModal.jsx:184"}, "properties": {"repobilityId": "473942277f1d7877", "scanner": "scanner-primary", "fingerprint": "8721ef970987ce6f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e670c106b15ea4f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/shared/StatCard.jsx:58"}, "properties": {"repobilityId": "74caae08595a02d8", "scanner": "scanner-primary", "fingerprint": "e670c106b15ea4f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0fbf0add8dc2dba", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout/SiteHeader.jsx:116"}, "properties": {"repobilityId": "0a2e9183fc661c0f", "scanner": "scanner-primary", "fingerprint": "e0fbf0add8dc2dba", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e65398585b094f4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/UseCases/UseCasePickList.jsx:55"}, "properties": {"repobilityId": "fdd673db6155e510", "scanner": "scanner-primary", "fingerprint": "2e65398585b094f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3f668a5ac6f6a665", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselineDetail.jsx:280"}, "properties": {"repobilityId": "217547e8468fab46", "scanner": "scanner-primary", "fingerprint": "3f668a5ac6f6a665", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9954ad89266b494", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Cortex/BaselinesList.jsx:112"}, "properties": {"repobilityId": "e212ff4bda12c756", "scanner": "scanner-primary", "fingerprint": "a9954ad89266b494", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6bbe8333b565f184", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/KPIPainPointsManager.jsx:304"}, "properties": {"repobilityId": "227910d3f3cd9590", "scanner": "scanner-primary", "fingerprint": "6bbe8333b565f184", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0324776db3b3c2a2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/StoredDocumentsPanel.jsx:136"}, "properties": {"repobilityId": "d8e01156051687de", "scanner": "scanner-primary", "fingerprint": "0324776db3b3c2a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4985d39df135eb9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Knowledge/VendorDataTable.jsx:196"}, "properties": {"repobilityId": "f89cb127d9a136b2", "scanner": "scanner-primary", "fingerprint": "b4985d39df135eb9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2c67e25df183326a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/src/store/slices/workshop.js:1220"}, "properties": {"repobilityId": "75a5882c8474e284", "scanner": "scanner-primary", "fingerprint": "2c67e25df183326a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db32739ca4a10759", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/workshop.spec.js:868"}, "properties": {"repobilityId": "fbc75aa7cb0daa54", "scanner": "scanner-primary", "fingerprint": "db32739ca4a10759", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5038d99472612280", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/e2e/proposal.spec.js:515"}, "properties": {"repobilityId": "9f782369760c2943", "scanner": "scanner-primary", "fingerprint": "5038d99472612280", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ec820e405fd32aae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/e2e/fixtures.js:129"}, "properties": {"repobilityId": "9f1fd2ffd434793c", "scanner": "scanner-primary", "fingerprint": "ec820e405fd32aae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe48e904474dd2ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/e2e/global-setup.js:18"}, "properties": {"repobilityId": "b3071b1e638d2616", "scanner": "scanner-primary", "fingerprint": "fe48e904474dd2ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb4ade39b7e10076", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 sdk/usage-telemetry/examples/nextjs-server-route.ts:26"}, "properties": {"repobilityId": "d78365821f4f3587", "scanner": "scanner-primary", "fingerprint": "fb4ade39b7e10076", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-15d342200217e87b", "level": "warning", "message": {"text": "Privileged port 2 in use"}, "properties": {"repobilityId": "755b04866010e843", "scanner": "scanner-primary", "fingerprint": "15d342200217e87b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-224d6d76f74f9bb5", "level": "warning", "message": {"text": "Privileged port 3 in use"}, "properties": {"repobilityId": "261b7b1c6a18d412", "scanner": "scanner-primary", "fingerprint": "224d6d76f74f9bb5", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-372ed4bd43cd24f3", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "2935150a46244944", "scanner": "scanner-primary", "fingerprint": "372ed4bd43cd24f3", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-714c31ca9f474ae6", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "60062d2d6cd12f30", "scanner": "scanner-primary", "fingerprint": "714c31ca9f474ae6", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-714c31ca9f474ae6", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "3bec783459bece92", "scanner": "scanner-primary", "fingerprint": "714c31ca9f474ae6", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-bfb1caa8d76b37a1", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "855403b05a4652cd", "scanner": "scanner-primary", "fingerprint": "bfb1caa8d76b37a1", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-bfb1caa8d76b37a1", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "3842d35a3ccd9247", "scanner": "scanner-primary", "fingerprint": "bfb1caa8d76b37a1", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/Dockerfile"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-3afcc8a8ba353a4b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in backend/extensions.py:23"}, "properties": {"repobilityId": "21fc81fed43a9313", "scanner": "scanner-primary", "fingerprint": "3afcc8a8ba353a4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/extensions.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-8252348937f84796", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in backend/run.py:17"}, "properties": {"repobilityId": "4efdaf65369c0645", "scanner": "scanner-primary", "fingerprint": "8252348937f84796", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/run.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a23e9f431da53f37", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/collect-exit-metrics.js:20"}, "properties": {"repobilityId": "422504710ef05af3", "scanner": "scanner-primary", "fingerprint": "a23e9f431da53f37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/collect-exit-metrics.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-361a542c85977083", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/audit-fetch-callers.js:17"}, "properties": {"repobilityId": "cd8fb1806b4432b0", "scanner": "scanner-primary", "fingerprint": "361a542c85977083", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/scripts/audit-fetch-callers.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-8dd3e13b6b4330e5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/build-help-content.js:5"}, "properties": {"repobilityId": "41b692754f090711", "scanner": "scanner-primary", "fingerprint": "8dd3e13b6b4330e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/scripts/build-help-content.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-9fe2d957c72e97c2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/css-cleanup-pass2.cjs:15"}, "properties": {"repobilityId": "c3f83550225c9c34", "scanner": "scanner-primary", "fingerprint": "9fe2d957c72e97c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/scripts/css-cleanup-pass2.cjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1c27fd67f2bbf354", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in frontend/scripts/css-audit.cjs:13"}, "properties": {"repobilityId": "9e158cc67591f2d8", "scanner": "scanner-primary", "fingerprint": "1c27fd67f2bbf354", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/scripts/css-audit.cjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-2d2cbf54bc7f249c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-context-monitor.js:24"}, "properties": {"repobilityId": "628af3707a3c0efa", "scanner": "scanner-primary", "fingerprint": "2d2cbf54bc7f249c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/gsd-context-monitor.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c5b880e63aed2008", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update-worker.js:14"}, "properties": {"repobilityId": "013751f8cccac789", "scanner": "scanner-primary", "fingerprint": "c5b880e63aed2008", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/gsd-check-update-worker.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-2d2a7c2317f80426", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks/gsd-check-update.js:9"}, "properties": {"repobilityId": "2f1a8e68723b6154", "scanner": "scanner-primary", "fingerprint": "2d2a7c2317f80426", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/gsd-check-update.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-ab62dc40bac7837a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-context-monitor.js:24"}, "properties": {"repobilityId": "69c3caf102c43ba7", "scanner": "scanner-primary", "fingerprint": "ab62dc40bac7837a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks-legacy/gsd-context-monitor.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-ce7245497d785807", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update-worker.js:14"}, "properties": {"repobilityId": "b0c41811e4c8e9a7", "scanner": "scanner-primary", "fingerprint": "ce7245497d785807", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks-legacy/gsd-check-update-worker.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-7bc947a061a7797c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .claude/hooks-legacy/gsd-check-update.js:9"}, "properties": {"repobilityId": "fc7dc27ab5b62f31", "scanner": "scanner-primary", "fingerprint": "7bc947a061a7797c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks-legacy/gsd-check-update.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6872f2f331ddeca9", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "05bd1c1fc3fd1c66", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "42c70cee724dab3c", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "42c70cee724dab3c", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "05bd1c1fc3fd1c66", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ab80867f412b2db4", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ab80867f412b2db4", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "42c70cee724dab3c", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 287}}}]}, {"ruleId": "scanner-a906f86080d46ccc", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ab80867f412b2db4", "scanner": "scanner-primary", "fingerprint": "a906f86080d46ccc", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-push.yml"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-77166cbd46fcd8e4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "50f3b563ffac10e9", "scanner": "scanner-primary", "fingerprint": "77166cbd46fcd8e4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-376ceef717f12640", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "90310a9abbacd1fd", "scanner": "scanner-primary", "fingerprint": "376ceef717f12640", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/load-test.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-376ceef717f12640", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b87e79f5a6aeb16b", "scanner": "scanner-primary", "fingerprint": "376ceef717f12640", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/load-test.yml"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-376ceef717f12640", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "da21d6d5cce9f413", "scanner": "scanner-primary", "fingerprint": "376ceef717f12640", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/load-test.yml"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-7df94b08d4a31975", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3bc132b5134e7a4a", "scanner": "scanner-primary", "fingerprint": "7df94b08d4a31975", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-gate.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-7df94b08d4a31975", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a4e7ee9d5a5cfc00", "scanner": "scanner-primary", "fingerprint": "7df94b08d4a31975", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-gate.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f193e6b681fa88f7", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "96e370720d73654d", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "069648379bf50a27", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "069648379bf50a27", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "96e370720d73654d", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b75dbfc319bc9152", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b75dbfc319bc9152", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-eb99c79c94e80fbe", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "069648379bf50a27", "scanner": "scanner-primary", "fingerprint": "eb99c79c94e80fbe", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-nightly.yml"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-cd7350800a087e8d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8caf432814454175", "scanner": "scanner-primary", "fingerprint": "cd7350800a087e8d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-breakdown.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-cd7350800a087e8d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b3d577b19214d723", "scanner": "scanner-primary", "fingerprint": "cd7350800a087e8d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-breakdown.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-2a6f08a70e7bf2b2", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "6afe87ac954076a6", "scanner": "scanner-primary", "fingerprint": "2a6f08a70e7bf2b2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-breakdown.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68a629a9e35a88dd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a002d48ba4865d3e", "scanner": "scanner-primary", "fingerprint": "68a629a9e35a88dd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/synthetic-monitoring.yml"}, "region": {"startLine": 648}}}]}, {"ruleId": "scanner-68a629a9e35a88dd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3c2549cd0ab82a90", "scanner": "scanner-primary", "fingerprint": "68a629a9e35a88dd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/synthetic-monitoring.yml"}, "region": {"startLine": 834}}}]}, {"ruleId": "scanner-930799999ba968f5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8a89fb216177f925", "scanner": "scanner-primary", "fingerprint": "930799999ba968f5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ai-search-backup.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-6086d82f580936eb", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c7bf247bcd198866", "scanner": "scanner-primary", "fingerprint": "6086d82f580936eb", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-reset-label-remover.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-75ce18cb75310c6a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5789416d532a77cf", "scanner": "scanner-primary", "fingerprint": "75ce18cb75310c6a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-copilot-live.yml"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-75ce18cb75310c6a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a538cf5b7c96aaa", "scanner": "scanner-primary", "fingerprint": "75ce18cb75310c6a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-copilot-live.yml"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-75ce18cb75310c6a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8cf47d187bdfcd4", "scanner": "scanner-primary", "fingerprint": "75ce18cb75310c6a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-copilot-live.yml"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-fba68eabdda7d994", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "373616fd2f1e6858", "scanner": "scanner-primary", "fingerprint": "fba68eabdda7d994", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-baseline-updater.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-ee9c64813208c901", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "cf331ca4606b7167", "scanner": "scanner-primary", "fingerprint": "ee9c64813208c901", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage-baseline-updater.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df4cfee27c319a9e", "level": "note", "message": {"text": "Very large file: tests/smoke/cortex_e2e_inprocess.py (1437 lines)"}, "properties": {"repobilityId": "69eac4741ab3b195", "scanner": "scanner-primary", "fingerprint": "df4cfee27c319a9e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9550af36e98d0207", "level": "note", "message": {"text": "Very large file: backend/tests/test_calculation_service.py (1447 lines)"}, "properties": {"repobilityId": "433d2df78e449147", "scanner": "scanner-primary", "fingerprint": "9550af36e98d0207", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-999423859ab5b32e", "level": "note", "message": {"text": "Very large file: backend/tests/test_calculations_endpoints.py (1545 lines)"}, "properties": {"repobilityId": "f7a48c2427f0eb81", "scanner": "scanner-primary", "fingerprint": "999423859ab5b32e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de629ecf665a4b13", "level": "note", "message": {"text": "Very large file: backend/tests/conftest.py (1881 lines)"}, "properties": {"repobilityId": "9c156fd635c92087", "scanner": "scanner-primary", "fingerprint": "de629ecf665a4b13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7eec9db83fefc4c6", "level": "note", "message": {"text": "Very large file: backend/tests/test_knowledge_endpoints.py (1240 lines)"}, "properties": {"repobilityId": "8a819caecad26dfa", "scanner": "scanner-primary", "fingerprint": "7eec9db83fefc4c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b00893a544dea4a1", "level": "note", "message": {"text": "Very large file: backend/tests/test_vendor_catalogue_service.py (1588 lines)"}, "properties": {"repobilityId": "a0065b56551591ab", "scanner": "scanner-primary", "fingerprint": "b00893a544dea4a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d562b5601868a570", "level": "note", "message": {"text": "Very large file: backend/tests/test_workshops_endpoints.py (1163 lines)"}, "properties": {"repobilityId": "85b24272065a17ef", "scanner": "scanner-primary", "fingerprint": "d562b5601868a570", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b9ed01d61ee3c44b", "level": "note", "message": {"text": "Very large file: backend/tests/test_benchmarking_endpoints.py (1382 lines)"}, "properties": {"repobilityId": "7a24d38c0942b2a9", "scanner": "scanner-primary", "fingerprint": "b9ed01d61ee3c44b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9801b83d6db74c7", "level": "note", "message": {"text": "Very large file: backend/tests/test_research_service.py (1356 lines)"}, "properties": {"repobilityId": "075c9cda9d581820", "scanner": "scanner-primary", "fingerprint": "e9801b83d6db74c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-576b16dc4cedddb7", "level": "note", "message": {"text": "Very large file: backend/tests/test_settings_api_wiring.py (1337 lines)"}, "properties": {"repobilityId": "9adf436b0ebbab2e", "scanner": "scanner-primary", "fingerprint": "576b16dc4cedddb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fad0bf814a80cb97", "level": "note", "message": {"text": "Very large file: backend/tests/test_tasks_knowledge_settings_endpoints.py (1383 lines)"}, "properties": {"repobilityId": "c0872a42f03872e1", "scanner": "scanner-primary", "fingerprint": "fad0bf814a80cb97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-397e3e3294c3785a", "level": "note", "message": {"text": "Very large file: backend/tests/test_auth_endpoints.py (2868 lines)"}, "properties": {"repobilityId": "829777ed842901bf", "scanner": "scanner-primary", "fingerprint": "397e3e3294c3785a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fc3a31da61cf9fd6", "level": "note", "message": {"text": "Very large file: backend/tests/test_proposals_endpoints.py (1309 lines)"}, "properties": {"repobilityId": "83bf48c9d662c17a", "scanner": "scanner-primary", "fingerprint": "fc3a31da61cf9fd6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9874ae764e64c59", "level": "note", "message": {"text": "Very large file: backend/tests/smoke/cortex_e2e_inprocess.py (1437 lines)"}, "properties": {"repobilityId": "c6e04f7840c73f38", "scanner": "scanner-primary", "fingerprint": "e9874ae764e64c59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d9730686e6f450da", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_validation_service_wave4_coverage.py (1670 lines)"}, "properties": {"repobilityId": "a6e4cc184a3643ea", "scanner": "scanner-primary", "fingerprint": "d9730686e6f450da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-04f8ac5b93672379", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_research_service_wave4b_coverage.py (1575 lines)"}, "properties": {"repobilityId": "8384075f20b553d4", "scanner": "scanner-primary", "fingerprint": "04f8ac5b93672379", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a00d18cbdc095b73", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_vector_search_service_wave6_coverage.py (2091 lines)"}, "properties": {"repobilityId": "65d72803a353fb85", "scanner": "scanner-primary", "fingerprint": "a00d18cbdc095b73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-356c4fa8ae60d1ef", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_validation_service_branches.py (1658 lines)"}, "properties": {"repobilityId": "c41b3930b45a81ce", "scanner": "scanner-primary", "fingerprint": "356c4fa8ae60d1ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a336f722e2818df0", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_salesforce_calibration_service.py (2044 lines)"}, "properties": {"repobilityId": "c90e70c1657564d7", "scanner": "scanner-primary", "fingerprint": "a336f722e2818df0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60f8eba044a57d0b", "level": "note", "message": {"text": "Very large file: backend/tests/services/test_proposal_service_extended.py (2828 lines)"}, "properties": {"repobilityId": "1983b9ead1f8ae67", "scanner": "scanner-primary", "fingerprint": "60f8eba044a57d0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8df4ddf438dbff8f", "level": "note", "message": {"text": "Very large file: backend/api/admin.py (2404 lines)"}, "properties": {"repobilityId": "ecc36054f56e1be2", "scanner": "scanner-primary", "fingerprint": "8df4ddf438dbff8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3d1307297faf26e3", "level": "note", "message": {"text": "Very large file: backend/api/knowledge.py (1723 lines)"}, "properties": {"repobilityId": "341eddc828fd6daf", "scanner": "scanner-primary", "fingerprint": "3d1307297faf26e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1c8cc28591082a9", "level": "note", "message": {"text": "Very large file: backend/api/cortex.py (1651 lines)"}, "properties": {"repobilityId": "0a63d8ac1ec1922a", "scanner": "scanner-primary", "fingerprint": "c1c8cc28591082a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1bac706f81bf6b82", "level": "note", "message": {"text": "Very large file: backend/api/benchmarking.py (1403 lines)"}, "properties": {"repobilityId": "48290c31aeb656a8", "scanner": "scanner-primary", "fingerprint": "1bac706f81bf6b82", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c89b16299f862842", "level": "note", "message": {"text": "Very large file: backend/api/clients/synthesis.py (1935 lines)"}, "properties": {"repobilityId": "b23addeca15aa9c0", "scanner": "scanner-primary", "fingerprint": "c89b16299f862842", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-12ac30f4dcbd5b5d", "level": "note", "message": {"text": "Very large file: backend/api/research/analysis.py (2692 lines)"}, "properties": {"repobilityId": "14a58c97196d8f72", "scanner": "scanner-primary", "fingerprint": "12ac30f4dcbd5b5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb3293e1ff0eded9", "level": "note", "message": {"text": "Very large file: backend/scripts/seed_e2e.py (1654 lines)"}, "properties": {"repobilityId": "b916c8f9aa022286", "scanner": "scanner-primary", "fingerprint": "eb3293e1ff0eded9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e33604d2fbe37913", "level": "note", "message": {"text": "Very large file: backend/services/enrichment_service.py (1355 lines)"}, "properties": {"repobilityId": "68542c934b484ed4", "scanner": "scanner-primary", "fingerprint": "e33604d2fbe37913", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de5ce061fcd54aab", "level": "note", "message": {"text": "Very large file: backend/services/research_service.py (1911 lines)"}, "properties": {"repobilityId": "944e9883f18013f7", "scanner": "scanner-primary", "fingerprint": "de5ce061fcd54aab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fbb5ab9bd08756ee", "level": "note", "message": {"text": "Very large file: backend/services/vendor_catalogue_service.py (1669 lines)"}, "properties": {"repobilityId": "6eadc02f4e0df432", "scanner": "scanner-primary", "fingerprint": "fbb5ab9bd08756ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a6f9ea53ed728dcf", "level": "note", "message": {"text": "Very large file: backend/services/copilot_service.py (2664 lines)"}, "properties": {"repobilityId": "b8914512dbd81931", "scanner": "scanner-primary", "fingerprint": "a6f9ea53ed728dcf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5040b9bcbf4decb3", "level": "note", "message": {"text": "Very large file: backend/services/proposal_service.py (1372 lines)"}, "properties": {"repobilityId": "e55c6928234cdf5c", "scanner": "scanner-primary", "fingerprint": "5040b9bcbf4decb3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b74cd3182ac2a047", "level": "note", "message": {"text": "Very large file: backend/services/claude_service.py (1300 lines)"}, "properties": {"repobilityId": "9d5312efa4c29511", "scanner": "scanner-primary", "fingerprint": "b74cd3182ac2a047", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ae3f01b8b63dcb3", "level": "note", "message": {"text": "Very large file: backend/services/vector_search_service.py (2129 lines)"}, "properties": {"repobilityId": "eccbcb053ee1dcc5", "scanner": "scanner-primary", "fingerprint": "0ae3f01b8b63dcb3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-12935e58c998e076", "level": "note", "message": {"text": "Very large file: backend/services/cortex_score_service.py (1920 lines)"}, "properties": {"repobilityId": "add8621a74a37400", "scanner": "scanner-primary", "fingerprint": "12935e58c998e076", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5378d1a693b15a37", "level": "note", "message": {"text": "Very large file: backend/services/validation_service.py (1853 lines)"}, "properties": {"repobilityId": "57617ea778b84e02", "scanner": "scanner-primary", "fingerprint": "5378d1a693b15a37", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d932cdf057f56a13", "level": "note", "message": {"text": "Very large file: backend/services/salesforce_sync_service.py (1092 lines)"}, "properties": {"repobilityId": "9640a560c9df1470", "scanner": "scanner-primary", "fingerprint": "d932cdf057f56a13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-799b6c1ff0089583", "level": "note", "message": {"text": "Very large file: backend/migrations/versions/47647706d452_initial_schema.py (1012 lines)"}, "properties": {"repobilityId": "be10a6d092247455", "scanner": "scanner-primary", "fingerprint": "799b6c1ff0089583", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3bba6e32b4bf0336", "level": "note", "message": {"text": "Very large file: frontend/src/store/slices/workshop.js (1358 lines)"}, "properties": {"repobilityId": "8a29709e47ef50e8", "scanner": "scanner-primary", "fingerprint": "3bba6e32b4bf0336", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb83f6e67166d21e", "level": "note", "message": {"text": "Very large file: frontend/src/store/slices/cortex.js (1460 lines)"}, "properties": {"repobilityId": "c3ecc2fa4b1a03cb", "scanner": "scanner-primary", "fingerprint": "bb83f6e67166d21e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5b99d1a3a09b1419", "level": "note", "message": {"text": "32 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "5b99d1a3a09b1419", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "391013b3dacb11ec", "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": "8cf7d22459b737f6", "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": "26ec116fb207b1fe", "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": "a6250754a5f35500", "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": "e29aeb767c25b92a", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0d23d984364364f8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.mcp.json"}, "properties": {"repobilityId": "3471173d533a12f5", "scanner": "scanner-primary", "fingerprint": "0d23d984364364f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31e6aac02371f75a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/agents/playwright-test-generator.md"}, "properties": {"repobilityId": "a4755c9b8e4660bf", "scanner": "scanner-primary", "fingerprint": "31e6aac02371f75a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/agents/playwright-test-generator.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2722702157f0f8a7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest.json"}, "properties": {"repobilityId": "dd503ce8df430217", "scanner": "scanner-primary", "fingerprint": "2722702157f0f8a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-file-manifest.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8769bcc771831214", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "properties": {"repobilityId": "f94968d1c8aa7dc6", "scanner": "scanner-primary", "fingerprint": "8769bcc771831214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-152c8992ea15a3ea", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings-legacy.json"}, "properties": {"repobilityId": "1eea48e327eda89a", "scanner": "scanner-primary", "fingerprint": "152c8992ea15a3ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings-legacy.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b25c5b73f4bf5a3a", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/settings-legacy.json"}, "properties": {"repobilityId": "a80dfd110a22e8cb", "scanner": "scanner-primary", "fingerprint": "b25c5b73f4bf5a3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings-legacy.json"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-709c4873477bbd47", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-file-manifest-legacy.json"}, "properties": {"repobilityId": "43fc56687f4a79b9", "scanner": "scanner-primary", "fingerprint": "709c4873477bbd47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-file-manifest-legacy.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fbaf78bedbfd3353", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/python-reviewer.md"}, "properties": {"repobilityId": "4524923cbabd4cee", "scanner": "scanner-primary", "fingerprint": "fbaf78bedbfd3353", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/python-reviewer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-600a6dd2d3dbc9a7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal/2026-05-27T12-00-27-074Z-3a1c8f01bbc2d239.json"}, "properties": {"repobilityId": "49450472e6833df2", "scanner": "scanner-primary", "fingerprint": "600a6dd2d3dbc9a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-migration-journal/2026-05-27T12-00-27-074Z-3a1c8f01bbc2d239.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47d932c89e28d3de", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/agents/gsd-ui-auditor.md"}, "properties": {"repobilityId": "8e4c20d58f37adc7", "scanner": "scanner-primary", "fingerprint": "47d932c89e28d3de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-local-patches-legacy/agents/gsd-ui-auditor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23b1d1bd2a2afcd5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/templates/phase-prompt.md"}, "properties": {"repobilityId": "d5a3517323e80f40", "scanner": "scanner-primary", "fingerprint": "23b1d1bd2a2afcd5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-local-patches-legacy/get-shit-done/templates/phase-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ec10222df371e45", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-local-patches-legacy/get-shit-done/references/checkpoints.md"}, "properties": {"repobilityId": "ee393c91bde3fed0", "scanner": "scanner-primary", "fingerprint": "2ec10222df371e45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-local-patches-legacy/get-shit-done/references/checkpoints.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9514063ee81f61fd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/verify.md"}, "properties": {"repobilityId": "dabcaaf13999a87b", "scanner": "scanner-primary", "fingerprint": "9514063ee81f61fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/verify.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c928ae5c6fa5269a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/refresh.md"}, "properties": {"repobilityId": "37b1148a7aea8d81", "scanner": "scanner-primary", "fingerprint": "c928ae5c6fa5269a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/refresh.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-666949a02fe96907", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/add-test.md"}, "properties": {"repobilityId": "3be5796a6e3d0bc6", "scanner": "scanner-primary", "fingerprint": "666949a02fe96907", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/add-test.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9bf971fb959c1bd9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/review.md"}, "properties": {"repobilityId": "b1e28d266fdfdeb8", "scanner": "scanner-primary", "fingerprint": "9bf971fb959c1bd9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-035a42c9c31ddf6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/agents/python-reviewer.md"}, "properties": {"repobilityId": "090255953752ca7c", "scanner": "scanner-primary", "fingerprint": "035a42c9c31ddf6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-user-files-backup-legacy/agents/python-reviewer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da64f12201b3062f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/explore-codebase.md"}, "properties": {"repobilityId": "c250f522d92d3ced", "scanner": "scanner-primary", "fingerprint": "da64f12201b3062f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-user-files-backup-legacy/skills/explore-codebase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-921171c30920ea33", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/debug-issue.md"}, "properties": {"repobilityId": "12f0ce75d73a12e5", "scanner": "scanner-primary", "fingerprint": "921171c30920ea33", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-user-files-backup-legacy/skills/debug-issue.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d8ce66e167ede89", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-user-files-backup-legacy/skills/chromadb-debug/SKILL.md"}, "properties": {"repobilityId": "840683d1f50adfae", "scanner": "scanner-primary", "fingerprint": "8d8ce66e167ede89", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-user-files-backup-legacy/skills/chromadb-debug/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d67e60dfa73b6ed", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/plans/2026-02-17-composite-matrix-scoring-plan.md"}, "properties": {"repobilityId": "0dbacf41b6f95daf", "scanner": "scanner-primary", "fingerprint": "6d67e60dfa73b6ed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/2026-02-17-composite-matrix-scoring-plan.md"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-f6bc82e20230242e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/plans/2026-02-18-data-gap-answers-plan.md"}, "properties": {"repobilityId": "ba7332c22c952ad5", "scanner": "scanner-primary", "fingerprint": "f6bc82e20230242e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/2026-02-18-data-gap-answers-plan.md"}, "region": {"startLine": 518}}}]}, {"ruleId": "scanner-301e32a7f84c2fe7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/plans/2026-02-18-data-gaps-ux-fix.md"}, "properties": {"repobilityId": "320e3d9f4d20e471", "scanner": "scanner-primary", "fingerprint": "301e32a7f84c2fe7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/2026-02-18-data-gaps-ux-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b2356f2eb3d31b5b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/contexts/dev.md"}, "properties": {"repobilityId": "6d795e38fbd5548b", "scanner": "scanner-primary", "fingerprint": "b2356f2eb3d31b5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/contexts/dev.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6070019189f987b4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/milestone-archive.md"}, "properties": {"repobilityId": "bd9f3533e1cf3238", "scanner": "scanner-primary", "fingerprint": "6070019189f987b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/milestone-archive.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e076d79475cf166", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/VALIDATION.md"}, "properties": {"repobilityId": "2d0783bf6a89beac", "scanner": "scanner-primary", "fingerprint": "3e076d79475cf166", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/VALIDATION.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f30c900c47f9f47", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/state.md"}, "properties": {"repobilityId": "db8c633c50f0db4a", "scanner": "scanner-primary", "fingerprint": "7f30c900c47f9f47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/state.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e64fff7912a0a16", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/phase-prompt.md"}, "properties": {"repobilityId": "e5d3eda2f342d7eb", "scanner": "scanner-primary", "fingerprint": "1e64fff7912a0a16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/phase-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-881a85631f7680c5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/AI-SPEC.md"}, "properties": {"repobilityId": "b83456bfa79533b7", "scanner": "scanner-primary", "fingerprint": "881a85631f7680c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/AI-SPEC.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3694e34b34a95d76", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/SECURITY.md"}, "properties": {"repobilityId": "8ec7e9ee8e1bf360", "scanner": "scanner-primary", "fingerprint": "3694e34b34a95d76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/SECURITY.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a567088f1adb0f8c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/copilot-instructions.md"}, "properties": {"repobilityId": "43df8c2c825df9d5", "scanner": "scanner-primary", "fingerprint": "a567088f1adb0f8c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/copilot-instructions.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae97143b242b0206", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/dev-preferences.md"}, "properties": {"repobilityId": "b5b9b13b164b1129", "scanner": "scanner-primary", "fingerprint": "ae97143b242b0206", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/dev-preferences.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3a9e689d74736a4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/claude-md.md"}, "properties": {"repobilityId": "229a4a798ad013e1", "scanner": "scanner-primary", "fingerprint": "e3a9e689d74736a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/claude-md.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0572be762683c10d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research.md"}, "properties": {"repobilityId": "e2fe1967ddc6408e", "scanner": "scanner-primary", "fingerprint": "0572be762683c10d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/research.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d8dfa2e4ac21016", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/research-project/STACK.md"}, "properties": {"repobilityId": "b9904813fc250093", "scanner": "scanner-primary", "fingerprint": "8d8dfa2e4ac21016", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/research-project/STACK.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1c7981917d0fa35a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/stack.md"}, "properties": {"repobilityId": "f92dbf078ec879d8", "scanner": "scanner-primary", "fingerprint": "1c7981917d0fa35a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/codebase/stack.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d65454087fe2288", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/templates/codebase/stack.md"}, "properties": {"repobilityId": "a02caa17b62db569", "scanner": "scanner-primary", "fingerprint": "3d65454087fe2288", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/codebase/stack.md"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-3f8fdada49ea7eee", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/concerns.md"}, "properties": {"repobilityId": "b966a401a9e36587", "scanner": "scanner-primary", "fingerprint": "3f8fdada49ea7eee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/codebase/concerns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df10c011683203bb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/testing.md"}, "properties": {"repobilityId": "9a246c361d68556e", "scanner": "scanner-primary", "fingerprint": "df10c011683203bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/codebase/testing.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a7da0504283f483", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/templates/codebase/architecture.md"}, "properties": {"repobilityId": "7305463d00458f2e", "scanner": "scanner-primary", "fingerprint": "0a7da0504283f483", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/templates/codebase/architecture.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3308bb9e064eefe9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-todo.md"}, "properties": {"repobilityId": "544ddd7765eed98f", "scanner": "scanner-primary", "fingerprint": "3308bb9e064eefe9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/add-todo.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58878aa486789801", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/sketch.md"}, "properties": {"repobilityId": "bcdf88733c8ac847", "scanner": "scanner-primary", "fingerprint": "58878aa486789801", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/sketch.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b8c5b37e5dda9c41", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/diagnose-issues.md"}, "properties": {"repobilityId": "33679ea8c5d72db7", "scanner": "scanner-primary", "fingerprint": "b8c5b37e5dda9c41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/diagnose-issues.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-75784db5d14d2f3b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/help.md"}, "properties": {"repobilityId": "4bdff7d382ec6ea6", "scanner": "scanner-primary", "fingerprint": "75784db5d14d2f3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/help.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-debf58b497682f90", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-tests.md"}, "properties": {"repobilityId": "eb4f7f7c40b42bef", "scanner": "scanner-primary", "fingerprint": "debf58b497682f90", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/add-tests.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54ba9c001241dbff", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/pause-work.md"}, "properties": {"repobilityId": "1bf894a9180d6e85", "scanner": "scanner-primary", "fingerprint": "54ba9c001241dbff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/pause-work.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b37ae6cb4551567b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase.md"}, "properties": {"repobilityId": "e778028041971010", "scanner": "scanner-primary", "fingerprint": "b37ae6cb4551567b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e270e80f0c45484a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/health.md"}, "properties": {"repobilityId": "2fed6808e6150f64", "scanner": "scanner-primary", "fingerprint": "e270e80f0c45484a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/health.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df4cb27a96359469", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-uat.md"}, "properties": {"repobilityId": "03795b3eeb8721fb", "scanner": "scanner-primary", "fingerprint": "df4cb27a96359469", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/audit-uat.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df7a616130ecd34f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review.md"}, "properties": {"repobilityId": "50e1ce2e410574b2", "scanner": "scanner-primary", "fingerprint": "df7a616130ecd34f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/code-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9619a9a05fd030f4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-work.md"}, "properties": {"repobilityId": "952f0e806aabc101", "scanner": "scanner-primary", "fingerprint": "9619a9a05fd030f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/verify-work.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b12da75a67451c5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/insert-phase.md"}, "properties": {"repobilityId": "224e49c6db338487", "scanner": "scanner-primary", "fingerprint": "9b12da75a67451c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/insert-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f239aee88698f518", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/milestone-summary.md"}, "properties": {"repobilityId": "c3d80d933e717aa2", "scanner": "scanner-primary", "fingerprint": "f239aee88698f518", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/milestone-summary.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3adbd35468ed94a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings-advanced.md"}, "properties": {"repobilityId": "448101392f1927fb", "scanner": "scanner-primary", "fingerprint": "b3adbd35468ed94a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/settings-advanced.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-871c0d2b3db8b8c8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/reapply-patches.md"}, "properties": {"repobilityId": "e638230c79b0432a", "scanner": "scanner-primary", "fingerprint": "871c0d2b3db8b8c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/reapply-patches.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33dec6ec3e200b96", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-plan.md"}, "properties": {"repobilityId": "123ca9d7edaa2735", "scanner": "scanner-primary", "fingerprint": "33dec6ec3e200b96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/execute-plan.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9bf42d403148b255", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-fix.md"}, "properties": {"repobilityId": "c26636b04539a1a6", "scanner": "scanner-primary", "fingerprint": "9bf42d403148b255", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/audit-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5eb1ad6c4002c0f0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-workspace.md"}, "properties": {"repobilityId": "da6cef435120438c", "scanner": "scanner-primary", "fingerprint": "5eb1ad6c4002c0f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/new-workspace.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8720de21529f8e24", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/add-phase.md"}, "properties": {"repobilityId": "2e27748f55b2b2cc", "scanner": "scanner-primary", "fingerprint": "8720de21529f8e24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/add-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d22875e42591f581", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/scan.md"}, "properties": {"repobilityId": "724ffb65994b38f5", "scanner": "scanner-primary", "fingerprint": "d22875e42591f581", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/scan.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bbd27f3457d507db", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/settings.md"}, "properties": {"repobilityId": "d6c19869acbfc521", "scanner": "scanner-primary", "fingerprint": "bbd27f3457d507db", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/settings.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ad4f62b18b6fcdc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/audit-milestone.md"}, "properties": {"repobilityId": "19e6c26bda722560", "scanner": "scanner-primary", "fingerprint": "2ad4f62b18b6fcdc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/audit-milestone.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f7d0a092c01b340b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/explore.md"}, "properties": {"repobilityId": "e34142f9869b8b53", "scanner": "scanner-primary", "fingerprint": "f7d0a092c01b340b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/explore.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1bcc545f70e6996", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/validate-phase.md"}, "properties": {"repobilityId": "f0796d501ed5301e", "scanner": "scanner-primary", "fingerprint": "a1bcc545f70e6996", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/validate-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-560906cadce1b666", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/check-todos.md"}, "properties": {"repobilityId": "039163bd7668eea1", "scanner": "scanner-primary", "fingerprint": "560906cadce1b666", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/check-todos.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce8a38ccf48115d6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ship.md"}, "properties": {"repobilityId": "6cc33662522b48e7", "scanner": "scanner-primary", "fingerprint": "ce8a38ccf48115d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/ship.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7c8a13abcfa3583", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase-power.md"}, "properties": {"repobilityId": "77ea1e1783906305", "scanner": "scanner-primary", "fingerprint": "b7c8a13abcfa3583", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase-power.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e922509cd88d5ab3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/code-review-fix.md"}, "properties": {"repobilityId": "80928464a540080a", "scanner": "scanner-primary", "fingerprint": "e922509cd88d5ab3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/code-review-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b403071037b7495", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/resume-project.md"}, "properties": {"repobilityId": "f352e1f5d9ef2ad0", "scanner": "scanner-primary", "fingerprint": "4b403071037b7495", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/resume-project.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d5e2c55fd0069ff", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-phase.md"}, "properties": {"repobilityId": "d6ec00f2954e7df8", "scanner": "scanner-primary", "fingerprint": "6d5e2c55fd0069ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/ui-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd9f77982d4dc488", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-milestone.md"}, "properties": {"repobilityId": "d6e158c7819f4bb6", "scanner": "scanner-primary", "fingerprint": "cd9f77982d4dc488", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/new-milestone.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-680a2d1fe0abcf8a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/autonomous.md"}, "properties": {"repobilityId": "9deb520475151264", "scanner": "scanner-primary", "fingerprint": "680a2d1fe0abcf8a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/autonomous.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-810fd9337362dbee", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/spike.md"}, "properties": {"repobilityId": "d2fb8eb779813cda", "scanner": "scanner-primary", "fingerprint": "810fd9337362dbee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/spike.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10e0f2ec3ae9c749", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/quick.md"}, "properties": {"repobilityId": "2006c6f1636ab33b", "scanner": "scanner-primary", "fingerprint": "10e0f2ec3ae9c749", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/quick.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a44bb67968f7c24b", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/quick.md"}, "properties": {"repobilityId": "a6916a54d8297be6", "scanner": "scanner-primary", "fingerprint": "a44bb67968f7c24b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/quick.md"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-b88db6680e98308d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/plan-phase.md"}, "properties": {"repobilityId": "fe6981701ecd1225", "scanner": "scanner-primary", "fingerprint": "b88db6680e98308d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/plan-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-283c322b25ae0829", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase.md"}, "properties": {"repobilityId": "c314e82c11dd2260", "scanner": "scanner-primary", "fingerprint": "283c322b25ae0829", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/execute-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1297fca3381f9e87", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/docs-update.md"}, "properties": {"repobilityId": "2526eaf178e92265", "scanner": "scanner-primary", "fingerprint": "1297fca3381f9e87", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/docs-update.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f595c98036ff8d0f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/manager.md"}, "properties": {"repobilityId": "6e0db9b297f036cd", "scanner": "scanner-primary", "fingerprint": "f595c98036ff8d0f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/manager.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e3852b50b1a5609", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/list-workspaces.md"}, "properties": {"repobilityId": "8e7018970e9d36e4", "scanner": "scanner-primary", "fingerprint": "3e3852b50b1a5609", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/list-workspaces.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-803b1032dc0e8654", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done-legacy/workflows/update.md"}, "properties": {"repobilityId": "d12b1d13023bd52d", "scanner": "scanner-primary", "fingerprint": "803b1032dc0e8654", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/update.md"}, "region": {"startLine": 329}}}]}, {"ruleId": "scanner-6bb0a5d35f56ba69", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/cleanup.md"}, "properties": {"repobilityId": "d4517e40656d2f58", "scanner": "scanner-primary", "fingerprint": "6bb0a5d35f56ba69", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/cleanup.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bae879d83b4984ee", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/new-project.md"}, "properties": {"repobilityId": "7bc3a2caea5db87d", "scanner": "scanner-primary", "fingerprint": "bae879d83b4984ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/new-project.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00d2ad4ec4e0d58a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/stats.md"}, "properties": {"repobilityId": "85c49866317190d9", "scanner": "scanner-primary", "fingerprint": "00d2ad4ec4e0d58a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/stats.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b432635805152f12", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/secure-phase.md"}, "properties": {"repobilityId": "437b8bfbffc99992", "scanner": "scanner-primary", "fingerprint": "b432635805152f12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/secure-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d52c1d752db40b41", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/ui-review.md"}, "properties": {"repobilityId": "77ae41ca0a8783be", "scanner": "scanner-primary", "fingerprint": "d52c1d752db40b41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/ui-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a726fd5b9ac758d8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/import.md"}, "properties": {"repobilityId": "fc7631a629a68125", "scanner": "scanner-primary", "fingerprint": "a726fd5b9ac758d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/import.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c0a49e693b1cbb9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/verify-phase.md"}, "properties": {"repobilityId": "3a5e22c876b4f765", "scanner": "scanner-primary", "fingerprint": "2c0a49e693b1cbb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/verify-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-afb73cc617e2a375", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/inbox.md"}, "properties": {"repobilityId": "6054a86300446c4f", "scanner": "scanner-primary", "fingerprint": "afb73cc617e2a375", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/inbox.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e22628f28df243a0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/post-merge-gate.md"}, "properties": {"repobilityId": "5e3418606fd83963", "scanner": "scanner-primary", "fingerprint": "e22628f28df243a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/execute-phase/steps/post-merge-gate.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-579640e78d627175", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/execute-phase/steps/codebase-drift-gate.md"}, "properties": {"repobilityId": "a44f64db7b64e1b8", "scanner": "scanner-primary", "fingerprint": "579640e78d627175", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/execute-phase/steps/codebase-drift-gate.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-991af3d1a42138a4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/power.md"}, "properties": {"repobilityId": "3620d38d8b548c67", "scanner": "scanner-primary", "fingerprint": "991af3d1a42138a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/power.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b34a4086c53786fb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/auto.md"}, "properties": {"repobilityId": "acc3072116711771", "scanner": "scanner-primary", "fingerprint": "b34a4086c53786fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/auto.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb2c4c3db94f27b9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/all.md"}, "properties": {"repobilityId": "e7b262c733df65b5", "scanner": "scanner-primary", "fingerprint": "eb2c4c3db94f27b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/all.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e575e0a00ee5244", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/chain.md"}, "properties": {"repobilityId": "89a9f39db9133f04", "scanner": "scanner-primary", "fingerprint": "7e575e0a00ee5244", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/chain.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95aac58d4082dfa8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/default.md"}, "properties": {"repobilityId": "924a99747afc4963", "scanner": "scanner-primary", "fingerprint": "95aac58d4082dfa8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/default.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1effc7d2ba1a92c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/workflows/discuss-phase/modes/text.md"}, "properties": {"repobilityId": "cc515f1aeb1cb872", "scanner": "scanner-primary", "fingerprint": "e1effc7d2ba1a92c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/workflows/discuss-phase/modes/text.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89de8655de1dbc19", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/tdd.md"}, "properties": {"repobilityId": "4c5db6bec845eac5", "scanner": "scanner-primary", "fingerprint": "89de8655de1dbc19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/tdd.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d13fbf7318305986", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/continuation-format.md"}, "properties": {"repobilityId": "0fd80cb30d212949", "scanner": "scanner-primary", "fingerprint": "d13fbf7318305986", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/continuation-format.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f56361f07a0670f8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/planner-chunked.md"}, "properties": {"repobilityId": "72f4e2e55910236a", "scanner": "scanner-primary", "fingerprint": "f56361f07a0670f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/planner-chunked.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-836ba7b27b90d3f0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-integration.md"}, "properties": {"repobilityId": "4badcec9e3295c87", "scanner": "scanner-primary", "fingerprint": "836ba7b27b90d3f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/git-integration.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c184b43330916b53", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-debug.md"}, "properties": {"repobilityId": "bb91a9647b267365", "scanner": "scanner-primary", "fingerprint": "c184b43330916b53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/thinking-models-debug.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f57de4ede3f5dce", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/ai-evals.md"}, "properties": {"repobilityId": "ee595040e8fc108a", "scanner": "scanner-primary", "fingerprint": "7f57de4ede3f5dce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/ai-evals.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b6bf48737c7cf6c1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/decimal-phase-calculation.md"}, "properties": {"repobilityId": "c1c4e6be4dde422a", "scanner": "scanner-primary", "fingerprint": "b6bf48737c7cf6c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/decimal-phase-calculation.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-113de2ffabf4ea68", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verification-overrides.md"}, "properties": {"repobilityId": "692c214e878cd4e5", "scanner": "scanner-primary", "fingerprint": "113de2ffabf4ea68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/verification-overrides.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1b1df42e8ff1962", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/model-profile-resolution.md"}, "properties": {"repobilityId": "67de923f8a1fb31c", "scanner": "scanner-primary", "fingerprint": "f1b1df42e8ff1962", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/model-profile-resolution.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e2997583a54b1dcb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/artifact-types.md"}, "properties": {"repobilityId": "e4ac2252fe5cce8b", "scanner": "scanner-primary", "fingerprint": "e2997583a54b1dcb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/artifact-types.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a1b738aae980b43", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/sketch-theme-system.md"}, "properties": {"repobilityId": "4661865843e6badf", "scanner": "scanner-primary", "fingerprint": "7a1b738aae980b43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/sketch-theme-system.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2db09b35778f00e4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/git-planning-commit.md"}, "properties": {"repobilityId": "f2c7ededce052032", "scanner": "scanner-primary", "fingerprint": "2db09b35778f00e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/git-planning-commit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bfd914a6d1ce931c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/checkpoints.md"}, "properties": {"repobilityId": "a1d1b4ca9c1b861e", "scanner": "scanner-primary", "fingerprint": "bfd914a6d1ce931c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/checkpoints.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0c41b088d7e83fcd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/verify-mvp-mode.md"}, "properties": {"repobilityId": "c821ecfbda0b5e21", "scanner": "scanner-primary", "fingerprint": "0c41b088d7e83fcd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/verify-mvp-mode.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4402de9d190eef0", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/get-shit-done-legacy/references/workstream-flag.md"}, "properties": {"repobilityId": "91ebbacfd1af1e30", "scanner": "scanner-primary", "fingerprint": "f4402de9d190eef0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/workstream-flag.md"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-cc1123c76bf85b2c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/workstream-flag.md"}, "properties": {"repobilityId": "4100b0477f55e242", "scanner": "scanner-primary", "fingerprint": "cc1123c76bf85b2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/workstream-flag.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1155de24a106a26a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-execution.md"}, "properties": {"repobilityId": "bf7c1182630e79ac", "scanner": "scanner-primary", "fingerprint": "1155de24a106a26a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/thinking-models-execution.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb6bfbdb8076f441", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/thinking-models-verification.md"}, "properties": {"repobilityId": "2df24bb68873ff2e", "scanner": "scanner-primary", "fingerprint": "eb6bfbdb8076f441", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/thinking-models-verification.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22d4a31a7cd26253", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/spidr-splitting.md"}, "properties": {"repobilityId": "73a37ff8f1f2fe3f", "scanner": "scanner-primary", "fingerprint": "22d4a31a7cd26253", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/spidr-splitting.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab6d1f011fff0bb5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/phase-argument-parsing.md"}, "properties": {"repobilityId": "f98c2adc67c18acf", "scanner": "scanner-primary", "fingerprint": "ab6d1f011fff0bb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/phase-argument-parsing.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60d50f9e7e58f651", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done-legacy/references/few-shot-examples/verifier.md"}, "properties": {"repobilityId": "aac865d42f83b113", "scanner": "scanner-primary", "fingerprint": "60d50f9e7e58f651", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done-legacy/references/few-shot-examples/verifier.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0bbc5836cb724da", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/gsd-migration-journal-legacy/2026-05-15T16-01-55-630Z-43bcd0fb95e71d06.json"}, "properties": {"repobilityId": "310d9d3a5bd10e81", "scanner": "scanner-primary", "fingerprint": "b0bbc5836cb724da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/gsd-migration-journal-legacy/2026-05-15T16-01-55-630Z-43bcd0fb95e71d06.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-583063d693a88bb9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/autobuild/README.md"}, "properties": {"repobilityId": "a0469f87f73df69b", "scanner": "scanner-primary", "fingerprint": "583063d693a88bb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/autobuild/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd9d647247b141de", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/autobuild/SKILL.md"}, "properties": {"repobilityId": "90d7c41ed9c8a71c", "scanner": "scanner-primary", "fingerprint": "cd9d647247b141de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/autobuild/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e232d4fc39a54ae9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/chromadb-debug/SKILL.md"}, "properties": {"repobilityId": "b119a70970f137a1", "scanner": "scanner-primary", "fingerprint": "e232d4fc39a54ae9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/chromadb-debug/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-75d80c6813cb18ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/contexts/dev.md"}, "properties": {"repobilityId": "ca6d1ce1b786ac86", "scanner": "scanner-primary", "fingerprint": "75d80c6813cb18ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/contexts/dev.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9a666c8b5e2963d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/milestone-archive.md"}, "properties": {"repobilityId": "e048caf75fbf4e06", "scanner": "scanner-primary", "fingerprint": "a9a666c8b5e2963d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/milestone-archive.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c460598f508f51ca", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/VALIDATION.md"}, "properties": {"repobilityId": "b9b68e459a9df1b7", "scanner": "scanner-primary", "fingerprint": "c460598f508f51ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/VALIDATION.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-92f8d012173ae0f2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/state.md"}, "properties": {"repobilityId": "f6f05f2b9e021539", "scanner": "scanner-primary", "fingerprint": "92f8d012173ae0f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/state.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-665596707e65a898", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/phase-prompt.md"}, "properties": {"repobilityId": "f53551aae7aff8cd", "scanner": "scanner-primary", "fingerprint": "665596707e65a898", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/phase-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b846b61ec0a0b90a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/AI-SPEC.md"}, "properties": {"repobilityId": "e51fe850f1b580eb", "scanner": "scanner-primary", "fingerprint": "b846b61ec0a0b90a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/AI-SPEC.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35cc1456776a124b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/SECURITY.md"}, "properties": {"repobilityId": "b17f315276818e53", "scanner": "scanner-primary", "fingerprint": "35cc1456776a124b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/SECURITY.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2a8910d54e4c885", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/copilot-instructions.md"}, "properties": {"repobilityId": "72c223c51feedff7", "scanner": "scanner-primary", "fingerprint": "a2a8910d54e4c885", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/copilot-instructions.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b03ee0354e205d1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/dev-preferences.md"}, "properties": {"repobilityId": "859d43518624bf77", "scanner": "scanner-primary", "fingerprint": "1b03ee0354e205d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/dev-preferences.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-896a0568829cadd9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/claude-md.md"}, "properties": {"repobilityId": "6ba6302c8e674d82", "scanner": "scanner-primary", "fingerprint": "896a0568829cadd9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/claude-md.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1e18490e7a7b3bb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research.md"}, "properties": {"repobilityId": "638bcfec9d741349", "scanner": "scanner-primary", "fingerprint": "a1e18490e7a7b3bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/research.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-42edafe48e3bf20c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/research-project/STACK.md"}, "properties": {"repobilityId": "0c25548487f091ba", "scanner": "scanner-primary", "fingerprint": "42edafe48e3bf20c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/research-project/STACK.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8301f5b45cf87820", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/stack.md"}, "properties": {"repobilityId": "55c5fc74b968e547", "scanner": "scanner-primary", "fingerprint": "8301f5b45cf87820", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/codebase/stack.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35043920d856b91c", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done/templates/codebase/stack.md"}, "properties": {"repobilityId": "92c664edaa53e9df", "scanner": "scanner-primary", "fingerprint": "35043920d856b91c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/codebase/stack.md"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-1216a6c6e25a8a7b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/concerns.md"}, "properties": {"repobilityId": "2ab020a04e6b13e3", "scanner": "scanner-primary", "fingerprint": "1216a6c6e25a8a7b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/codebase/concerns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a7ab6f4c4a57b25", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/testing.md"}, "properties": {"repobilityId": "0e3b554b26e0c3d3", "scanner": "scanner-primary", "fingerprint": "4a7ab6f4c4a57b25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/codebase/testing.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-920ae36b2b11fdc0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/templates/codebase/architecture.md"}, "properties": {"repobilityId": "248d0775055542ab", "scanner": "scanner-primary", "fingerprint": "920ae36b2b11fdc0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/templates/codebase/architecture.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b15cb6d897ccccf8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-todo.md"}, "properties": {"repobilityId": "596ad3526c723d50", "scanner": "scanner-primary", "fingerprint": "b15cb6d897ccccf8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/add-todo.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71f50cd00f7b7571", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/sketch.md"}, "properties": {"repobilityId": "4cedeaf9b0e20b04", "scanner": "scanner-primary", "fingerprint": "71f50cd00f7b7571", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/sketch.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47cf1675d1a44ad3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/diagnose-issues.md"}, "properties": {"repobilityId": "2792d69a743df639", "scanner": "scanner-primary", "fingerprint": "47cf1675d1a44ad3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/diagnose-issues.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4097ef770f26398e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help.md"}, "properties": {"repobilityId": "46b2a8611b23c578", "scanner": "scanner-primary", "fingerprint": "4097ef770f26398e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/help.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3cd93ec5a51a8b2d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-tests.md"}, "properties": {"repobilityId": "17981ae5f3ed82e3", "scanner": "scanner-primary", "fingerprint": "3cd93ec5a51a8b2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/add-tests.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f133dfc70b08d00", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/pause-work.md"}, "properties": {"repobilityId": "eadeb7eb14702a4d", "scanner": "scanner-primary", "fingerprint": "0f133dfc70b08d00", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/pause-work.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-86d01f50ee092aa4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase.md"}, "properties": {"repobilityId": "3c7f196db56adb5b", "scanner": "scanner-primary", "fingerprint": "86d01f50ee092aa4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf02774b276f4ad6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/health.md"}, "properties": {"repobilityId": "c48db0a3785734cc", "scanner": "scanner-primary", "fingerprint": "cf02774b276f4ad6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/health.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73bb90d58599151f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-uat.md"}, "properties": {"repobilityId": "2170c39e3c97cb10", "scanner": "scanner-primary", "fingerprint": "73bb90d58599151f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/audit-uat.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3437f3958e1b3c9b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review.md"}, "properties": {"repobilityId": "6f43d377a8c73460", "scanner": "scanner-primary", "fingerprint": "3437f3958e1b3c9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/code-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff1fd4e293bfd611", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-work.md"}, "properties": {"repobilityId": "e6de5c4686fb3366", "scanner": "scanner-primary", "fingerprint": "ff1fd4e293bfd611", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/verify-work.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ce99967d20744eb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/insert-phase.md"}, "properties": {"repobilityId": "66ac9695ae492bae", "scanner": "scanner-primary", "fingerprint": "0ce99967d20744eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/insert-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a691ed9c4b9f5186", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/milestone-summary.md"}, "properties": {"repobilityId": "7751fe896a0a6441", "scanner": "scanner-primary", "fingerprint": "a691ed9c4b9f5186", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/milestone-summary.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7b25d5294d636ca", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings-advanced.md"}, "properties": {"repobilityId": "8dcf2edcba3bdfac", "scanner": "scanner-primary", "fingerprint": "a7b25d5294d636ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/settings-advanced.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f9d46b0ab283962", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/reapply-patches.md"}, "properties": {"repobilityId": "5263313d0ed24838", "scanner": "scanner-primary", "fingerprint": "0f9d46b0ab283962", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/reapply-patches.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-978a49899a067bfa", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-plan.md"}, "properties": {"repobilityId": "35c2423dcdbf6c1b", "scanner": "scanner-primary", "fingerprint": "978a49899a067bfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/execute-plan.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e21cd88c702c831", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-fix.md"}, "properties": {"repobilityId": "334f80f4b6eab548", "scanner": "scanner-primary", "fingerprint": "4e21cd88c702c831", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/audit-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e09aeb1f6d47294", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-workspace.md"}, "properties": {"repobilityId": "645e1d54b3f15359", "scanner": "scanner-primary", "fingerprint": "0e09aeb1f6d47294", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/new-workspace.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91ab092218fa61b4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/add-phase.md"}, "properties": {"repobilityId": "e405f0045b1995bb", "scanner": "scanner-primary", "fingerprint": "91ab092218fa61b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/add-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10b459d93658c312", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/scan.md"}, "properties": {"repobilityId": "ac1977e5cf382362", "scanner": "scanner-primary", "fingerprint": "10b459d93658c312", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/scan.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b22d0e879a7bffe7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/settings.md"}, "properties": {"repobilityId": "aa823998ec6e8120", "scanner": "scanner-primary", "fingerprint": "b22d0e879a7bffe7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/settings.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ba386741a97dcbd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/audit-milestone.md"}, "properties": {"repobilityId": "0cafa1ad96fb3a3a", "scanner": "scanner-primary", "fingerprint": "0ba386741a97dcbd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/audit-milestone.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca6ebc23b99d38d0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/explore.md"}, "properties": {"repobilityId": "cbb87d72d1ab24cb", "scanner": "scanner-primary", "fingerprint": "ca6ebc23b99d38d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/explore.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0985cfb3642a73a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/validate-phase.md"}, "properties": {"repobilityId": "dec51536f8fd15c0", "scanner": "scanner-primary", "fingerprint": "a0985cfb3642a73a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/validate-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7c57d8f6dac0ce98", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/check-todos.md"}, "properties": {"repobilityId": "421ed6952024d25a", "scanner": "scanner-primary", "fingerprint": "7c57d8f6dac0ce98", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/check-todos.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b38e3c7b17d0eea0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ship.md"}, "properties": {"repobilityId": "90c418134583d1d6", "scanner": "scanner-primary", "fingerprint": "b38e3c7b17d0eea0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/ship.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-953b9445facd8ce5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase-power.md"}, "properties": {"repobilityId": "f2a1be63dd91a9b7", "scanner": "scanner-primary", "fingerprint": "953b9445facd8ce5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase-power.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-96a9f93d7170619f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/code-review-fix.md"}, "properties": {"repobilityId": "4fce78ec05ad1f63", "scanner": "scanner-primary", "fingerprint": "96a9f93d7170619f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/code-review-fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87c15cb5dbcdc1e8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/resume-project.md"}, "properties": {"repobilityId": "bfe674597ab46fa9", "scanner": "scanner-primary", "fingerprint": "87c15cb5dbcdc1e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/resume-project.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-362cc90b28a7d48c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-phase.md"}, "properties": {"repobilityId": "4248b5d2ae47d034", "scanner": "scanner-primary", "fingerprint": "362cc90b28a7d48c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/ui-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-218513de85ccca21", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-milestone.md"}, "properties": {"repobilityId": "a042c4127a357a6d", "scanner": "scanner-primary", "fingerprint": "218513de85ccca21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/new-milestone.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f573c4dcc8f682cc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/autonomous.md"}, "properties": {"repobilityId": "c8530f38f2e0d9ee", "scanner": "scanner-primary", "fingerprint": "f573c4dcc8f682cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/autonomous.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d0abe558693eaf50", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/spike.md"}, "properties": {"repobilityId": "026aacd566891dc6", "scanner": "scanner-primary", "fingerprint": "d0abe558693eaf50", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/spike.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1cfaf4b080703fd1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/quick.md"}, "properties": {"repobilityId": "cbc3b32f12a41ea0", "scanner": "scanner-primary", "fingerprint": "1cfaf4b080703fd1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/quick.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8b74778d433cb776", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/plan-phase.md"}, "properties": {"repobilityId": "33b5e9c99f39d9b7", "scanner": "scanner-primary", "fingerprint": "8b74778d433cb776", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/plan-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41db87ed704dd194", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase.md"}, "properties": {"repobilityId": "d54c38d69f8100f2", "scanner": "scanner-primary", "fingerprint": "41db87ed704dd194", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/execute-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a8f307819875b7ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/docs-update.md"}, "properties": {"repobilityId": "8e4758a9f63d951e", "scanner": "scanner-primary", "fingerprint": "a8f307819875b7ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/docs-update.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-daee60f6b27301d5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/manager.md"}, "properties": {"repobilityId": "f398b427e1e7a44d", "scanner": "scanner-primary", "fingerprint": "daee60f6b27301d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/manager.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2afb9ed742bc85d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/list-workspaces.md"}, "properties": {"repobilityId": "15e5485ddf877878", "scanner": "scanner-primary", "fingerprint": "a2afb9ed742bc85d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/list-workspaces.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e40ead765fcc3fb9", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/get-shit-done/workflows/update.md"}, "properties": {"repobilityId": "caeba5dddeacb414", "scanner": "scanner-primary", "fingerprint": "e40ead765fcc3fb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/update.md"}, "region": {"startLine": 329}}}]}, {"ruleId": "scanner-c29eafa422b6edfe", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/cleanup.md"}, "properties": {"repobilityId": "e6b2712777ffbd13", "scanner": "scanner-primary", "fingerprint": "c29eafa422b6edfe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/cleanup.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61ed08f466344220", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/new-project.md"}, "properties": {"repobilityId": "c0715030e74e581d", "scanner": "scanner-primary", "fingerprint": "61ed08f466344220", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/new-project.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91fbb35bfb488f7a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/stats.md"}, "properties": {"repobilityId": "70325f9049a3d088", "scanner": "scanner-primary", "fingerprint": "91fbb35bfb488f7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/stats.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c768719180278c84", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/secure-phase.md"}, "properties": {"repobilityId": "53ce87d99c279175", "scanner": "scanner-primary", "fingerprint": "c768719180278c84", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/secure-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5361a2e1ca4b553", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/ui-review.md"}, "properties": {"repobilityId": "bd0522695c660aab", "scanner": "scanner-primary", "fingerprint": "f5361a2e1ca4b553", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/ui-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2abc049f7dbc82e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/import.md"}, "properties": {"repobilityId": "5dec18831a73796b", "scanner": "scanner-primary", "fingerprint": "a2abc049f7dbc82e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/import.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c908b0735d48d61f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/verify-phase.md"}, "properties": {"repobilityId": "cd805a28fcf0d167", "scanner": "scanner-primary", "fingerprint": "c908b0735d48d61f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/verify-phase.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ec63b2d6c662289", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/inbox.md"}, "properties": {"repobilityId": "98c33910cd102063", "scanner": "scanner-primary", "fingerprint": "0ec63b2d6c662289", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/inbox.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8411fa6f20d420d2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md"}, "properties": {"repobilityId": "c6e972dee2a95827", "scanner": "scanner-primary", "fingerprint": "8411fa6f20d420d2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/execute-phase/steps/post-merge-gate.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d052e56abc226bb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md"}, "properties": {"repobilityId": "2e039b9051f9746e", "scanner": "scanner-primary", "fingerprint": "7d052e56abc226bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-66dc8b185c1bc8bb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/power.md"}, "properties": {"repobilityId": "7370893d44ed1ab0", "scanner": "scanner-primary", "fingerprint": "66dc8b185c1bc8bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/power.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1ceeced2a0835ea", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/auto.md"}, "properties": {"repobilityId": "de7b8d90df591cda", "scanner": "scanner-primary", "fingerprint": "e1ceeced2a0835ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/auto.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9aba490f56861260", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/all.md"}, "properties": {"repobilityId": "08aeba3818091763", "scanner": "scanner-primary", "fingerprint": "9aba490f56861260", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/all.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b0b5d46437d65fc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/chain.md"}, "properties": {"repobilityId": "4ae51407f039889b", "scanner": "scanner-primary", "fingerprint": "2b0b5d46437d65fc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/chain.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff65d67fcbbb9074", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/default.md"}, "properties": {"repobilityId": "5e5d186c64c2e7c6", "scanner": "scanner-primary", "fingerprint": "ff65d67fcbbb9074", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/default.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8732c730ecbd4d14", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/discuss-phase/modes/text.md"}, "properties": {"repobilityId": "3669defc1c281634", "scanner": "scanner-primary", "fingerprint": "8732c730ecbd4d14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/discuss-phase/modes/text.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6e4fe3c9b7a72e08", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/default.md"}, "properties": {"repobilityId": "bd3882886ff26e5e", "scanner": "scanner-primary", "fingerprint": "6e4fe3c9b7a72e08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/help/modes/default.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8f5438b677abcfb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/full.md"}, "properties": {"repobilityId": "fffd6415264c5663", "scanner": "scanner-primary", "fingerprint": "d8f5438b677abcfb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/help/modes/full.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a013aef072fe932", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/workflows/help/modes/brief.md"}, "properties": {"repobilityId": "7d057a4bc291f165", "scanner": "scanner-primary", "fingerprint": "4a013aef072fe932", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/workflows/help/modes/brief.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ce36038651b8e68", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/tdd.md"}, "properties": {"repobilityId": "b1ad44136e655b81", "scanner": "scanner-primary", "fingerprint": "4ce36038651b8e68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/tdd.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-348cb256c318de42", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-interface-context.md"}, "properties": {"repobilityId": "c7872219c31a8f50", "scanner": "scanner-primary", "fingerprint": "348cb256c318de42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/planner-interface-context.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-72f2912e92722897", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/continuation-format.md"}, "properties": {"repobilityId": "99d381f0c75377c9", "scanner": "scanner-primary", "fingerprint": "72f2912e92722897", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/continuation-format.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dd9e4f72d4b40638", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/planner-chunked.md"}, "properties": {"repobilityId": "a42716b4e7d7f636", "scanner": "scanner-primary", "fingerprint": "dd9e4f72d4b40638", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/planner-chunked.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9d2390111805c9f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-integration.md"}, "properties": {"repobilityId": "4e36c882fa6a0e41", "scanner": "scanner-primary", "fingerprint": "d9d2390111805c9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/git-integration.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-000b0232a5925514", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-debug.md"}, "properties": {"repobilityId": "bf9ef7dda5b7f518", "scanner": "scanner-primary", "fingerprint": "000b0232a5925514", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/thinking-models-debug.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc23ac61286f4fb9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/ai-evals.md"}, "properties": {"repobilityId": "a2af1fdbb9597712", "scanner": "scanner-primary", "fingerprint": "bc23ac61286f4fb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/ai-evals.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9025bd8fed9a19e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/decimal-phase-calculation.md"}, "properties": {"repobilityId": "c844d91559f5fbfe", "scanner": "scanner-primary", "fingerprint": "f9025bd8fed9a19e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/decimal-phase-calculation.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eef98bc15abc163f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verification-overrides.md"}, "properties": {"repobilityId": "873fcb016be4eec0", "scanner": "scanner-primary", "fingerprint": "eef98bc15abc163f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/verification-overrides.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56945162ec777f74", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/model-profile-resolution.md"}, "properties": {"repobilityId": "41f2652763b35da2", "scanner": "scanner-primary", "fingerprint": "56945162ec777f74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/model-profile-resolution.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07fcb831bbf8d2f5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/artifact-types.md"}, "properties": {"repobilityId": "6c0dbff04105847e", "scanner": "scanner-primary", "fingerprint": "07fcb831bbf8d2f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/artifact-types.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1d7ceb54c16db502", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/sketch-theme-system.md"}, "properties": {"repobilityId": "8e5320002c0954d4", "scanner": "scanner-primary", "fingerprint": "1d7ceb54c16db502", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/sketch-theme-system.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68c06571bc6e109f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/git-planning-commit.md"}, "properties": {"repobilityId": "e231b0765fee7895", "scanner": "scanner-primary", "fingerprint": "68c06571bc6e109f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/git-planning-commit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff52d9241b568d0a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/checkpoints.md"}, "properties": {"repobilityId": "a97ba87db2b42b6f", "scanner": "scanner-primary", "fingerprint": "ff52d9241b568d0a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/checkpoints.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2944aeaaf0e69992", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/verify-mvp-mode.md"}, "properties": {"repobilityId": "6da0511a27f923f4", "scanner": "scanner-primary", "fingerprint": "2944aeaaf0e69992", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/verify-mvp-mode.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1932db8b19767ccb", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/get-shit-done/references/workstream-flag.md"}, "properties": {"repobilityId": "d9eb77f3f31115d8", "scanner": "scanner-primary", "fingerprint": "1932db8b19767ccb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/workstream-flag.md"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-164373bdbf980d34", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/workstream-flag.md"}, "properties": {"repobilityId": "990169ef3dfe9a3e", "scanner": "scanner-primary", "fingerprint": "164373bdbf980d34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/workstream-flag.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a06d794d2632e162", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-execution.md"}, "properties": {"repobilityId": "248886ac4b60f1f4", "scanner": "scanner-primary", "fingerprint": "a06d794d2632e162", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/thinking-models-execution.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6905304ece3e3b5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/thinking-models-verification.md"}, "properties": {"repobilityId": "bc07246070969d5a", "scanner": "scanner-primary", "fingerprint": "6905304ece3e3b5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/thinking-models-verification.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0ec8dfa1594d531", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/spidr-splitting.md"}, "properties": {"repobilityId": "cd9d944f9a8efb3e", "scanner": "scanner-primary", "fingerprint": "b0ec8dfa1594d531", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/spidr-splitting.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-852ec1190d69fa1f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/phase-argument-parsing.md"}, "properties": {"repobilityId": "26b2805b3e7a5bda", "scanner": "scanner-primary", "fingerprint": "852ec1190d69fa1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/phase-argument-parsing.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b54ee71a40b514de", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/get-shit-done/references/few-shot-examples/verifier.md"}, "properties": {"repobilityId": "0b17cec0e0299a93", "scanner": "scanner-primary", "fingerprint": "b54ee71a40b514de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/get-shit-done/references/few-shot-examples/verifier.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5473f28c3fa88d42", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/services/test_enrichment_service.py:90"}, "properties": {"repobilityId": "231d9797cde3b3ed", "scanner": "scanner-primary", "fingerprint": "5473f28c3fa88d42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a95f140ab46eab18", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/config.py:220"}, "properties": {"repobilityId": "c53f8158875b0506", "scanner": "scanner-primary", "fingerprint": "a95f140ab46eab18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9597a60d0f0e1db", "level": "note", "message": {"text": "Legacy-named symbol `old_backup` in backend/app_factory.py:40"}, "properties": {"repobilityId": "a4b51585997a211c", "scanner": "scanner-primary", "fingerprint": "d9597a60d0f0e1db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c465c77c12975539", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app_factory.py:243"}, "properties": {"repobilityId": "2d3a9ac0093dee46", "scanner": "scanner-primary", "fingerprint": "c465c77c12975539", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4477528794437f17", "level": "note", "message": {"text": "Legacy-named symbol `insights_v1` in backend/tests/test_vision_escalation.py:419"}, "properties": {"repobilityId": "789de4883b4b5959", "scanner": "scanner-primary", "fingerprint": "4477528794437f17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ff9a91903bf9f40d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_vision_escalation.py:483"}, "properties": {"repobilityId": "3cdea0ae8f1fb4f4", "scanner": "scanner-primary", "fingerprint": "ff9a91903bf9f40d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1736ed396bf50b1c", "level": "note", "message": {"text": "Legacy-named symbol `TestTaxonomyPostConfigDeprecated` in backend/tests/test_taxonomy_help_feedback_endpoints.py:116"}, "properties": {"repobilityId": "3a211b2095324a6e", "scanner": "scanner-primary", "fingerprint": "1736ed396bf50b1c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7af363f9f8a65c42", "level": "note", "message": {"text": "Legacy-named symbol `test_auth_clears_research_deprecated` in backend/tests/test_clients_documents_endpoints.py:172"}, "properties": {"repobilityId": "395355be5bf6a920", "scanner": "scanner-primary", "fingerprint": "7af363f9f8a65c42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-15a98a5d5a62e94f", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/conftest.py:6"}, "properties": {"repobilityId": "d0ab858d0db1a358", "scanner": "scanner-primary", "fingerprint": "15a98a5d5a62e94f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60908d04aec74e95", "level": "note", "message": {"text": "Legacy-named symbol `TestParseAndImportPricebookDeprecated` in backend/tests/test_vendor_catalogue_service.py:381"}, "properties": {"repobilityId": "3977f5f40f4f19a9", "scanner": "scanner-primary", "fingerprint": "60908d04aec74e95", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cad1fdefc0c33dc9", "level": "note", "message": {"text": "Legacy-named symbol `test_archive_failure_keeps_staging_copy` in backend/tests/test_archive_service.py:110"}, "properties": {"repobilityId": "42cd01ba1c8c7afb", "scanner": "scanner-primary", "fingerprint": "cad1fdefc0c33dc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7ac8f1c1fa571e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_proposals_c06_cross_tenant_write.py:220"}, "properties": {"repobilityId": "e7c2f70df2d419f2", "scanner": "scanner-primary", "fingerprint": "f7ac8f1c1fa571e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94ffc778f17395b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_benchmark_extraction_service.py:200"}, "properties": {"repobilityId": "124094e655f96397", "scanner": "scanner-primary", "fingerprint": "94ffc778f17395b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b06c60023fdb628", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/test_enrichment_service.py:115"}, "properties": {"repobilityId": "3ab74429113753c7", "scanner": "scanner-primary", "fingerprint": "4b06c60023fdb628", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceff757d0e9c8007", "level": "note", "message": {"text": "Legacy-named symbol `test_freshness_very_old` in backend/tests/test_cortex_score_service.py:77"}, "properties": {"repobilityId": "5fe5d82b5e3a9d01", "scanner": "scanner-primary", "fingerprint": "ceff757d0e9c8007", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d8bc4cb90126432", "level": "note", "message": {"text": "Legacy-named symbol `c_legacy` in backend/tests/test_clients_synthesis_extended.py:496"}, "properties": {"repobilityId": "a6b23199aa030b38", "scanner": "scanner-primary", "fingerprint": "0d8bc4cb90126432", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-534e50e6969f92a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_file_extraction.py:117"}, "properties": {"repobilityId": "30b2c055217e02f2", "scanner": "scanner-primary", "fingerprint": "534e50e6969f92a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-041479f3769f74c7", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/test_knowledge_service.py:53"}, "properties": {"repobilityId": "ac00e031615b03dd", "scanner": "scanner-primary", "fingerprint": "041479f3769f74c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23768ea5667572e0", "level": "note", "message": {"text": "Legacy-named symbol `google_legacy` in backend/tests/test_oauth_user_creation.py:90"}, "properties": {"repobilityId": "2143aef2181c352b", "scanner": "scanner-primary", "fingerprint": "23768ea5667572e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eca84745a89838a2", "level": "note", "message": {"text": "Legacy-named symbol `test_rejects_shutil_copy` in backend/tests/test_lint_storage_abstraction.py:49"}, "properties": {"repobilityId": "1b8f17965ac8d211", "scanner": "scanner-primary", "fingerprint": "eca84745a89838a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-78831cd2fd2f7dbd", "level": "note", "message": {"text": "Legacy-named symbol `has_legacy` in backend/tests/test_vector_search_rename.py:51"}, "properties": {"repobilityId": "c9f330005709d6eb", "scanner": "scanner-primary", "fingerprint": "78831cd2fd2f7dbd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c64d6e3a3c895501", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_999_1_service_layer_admin_bypass.py:486"}, "properties": {"repobilityId": "3eed54e101196b09", "scanner": "scanner-primary", "fingerprint": "c64d6e3a3c895501", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74a3c07d45ebeb24", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/test_claude_api_wiring.py:93"}, "properties": {"repobilityId": "0c16e6ba306e58b7", "scanner": "scanner-primary", "fingerprint": "74a3c07d45ebeb24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb61e69fcc40c6cd", "level": "note", "message": {"text": "Legacy-named symbol `TestParseLegacy` in backend/tests/services/test_spreadsheet_parser.py:162"}, "properties": {"repobilityId": "8bc41804e1865485", "scanner": "scanner-primary", "fingerprint": "cb61e69fcc40c6cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c8ee366371ef9428", "level": "note", "message": {"text": "Legacy-named symbol `006_old` in backend/tests/services/test_evidence_stub_service.py:371"}, "properties": {"repobilityId": "05c3e440831b5c55", "scanner": "scanner-primary", "fingerprint": "c8ee366371ef9428", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f2fe8e207b54e2d8", "level": "note", "message": {"text": "Legacy-named symbol `avg_old` in backend/tests/services/test_bayesian_value_service.py:214"}, "properties": {"repobilityId": "6b67e4a3130adcbc", "scanner": "scanner-primary", "fingerprint": "f2fe8e207b54e2d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-05ed4ea5701fe27b", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/services/test_settings_helpers.py:8"}, "properties": {"repobilityId": "1df2fb0714a8346b", "scanner": "scanner-primary", "fingerprint": "05ed4ea5701fe27b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cc0b671735f64f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/admin.py:1530"}, "properties": {"repobilityId": "d18ceb4c6abd429d", "scanner": "scanner-primary", "fingerprint": "4cc0b671735f64f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d5a69f27514a7fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/calculations.py:135"}, "properties": {"repobilityId": "2cd346377f24e071", "scanner": "scanner-primary", "fingerprint": "8d5a69f27514a7fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d6cadef87208473", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/api/knowledge.py:62"}, "properties": {"repobilityId": "065045c188590938", "scanner": "scanner-primary", "fingerprint": "1d6cadef87208473", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5c6854f5bd2d6e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/copilot.py:61"}, "properties": {"repobilityId": "67f4a47265bbddef", "scanner": "scanner-primary", "fingerprint": "c5c6854f5bd2d6e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88b0cb65eae6dd4f", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/salesforce.py:23"}, "properties": {"repobilityId": "40d115e2b73540ca", "scanner": "scanner-primary", "fingerprint": "88b0cb65eae6dd4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e7f2277c30c0ac4", "level": "note", "message": {"text": "Legacy-named symbol `update_config_deprecated` in backend/api/taxonomy.py:95"}, "properties": {"repobilityId": "5387f59f443c29f3", "scanner": "scanner-primary", "fingerprint": "2e7f2277c30c0ac4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-15c3abb387ca919c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/taxonomy.py:207"}, "properties": {"repobilityId": "122b97a5d554f3da", "scanner": "scanner-primary", "fingerprint": "15c3abb387ca919c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2bbec4f777698fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/benchmarking.py:574"}, "properties": {"repobilityId": "de238ac6f6c6ec63", "scanner": "scanner-primary", "fingerprint": "b2bbec4f777698fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2d8071dd0bd98b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/vendor_catalogue.py:218"}, "properties": {"repobilityId": "c34118249a7f04ee", "scanner": "scanner-primary", "fingerprint": "a2d8071dd0bd98b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8917fdacfd835831", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/api/drive.py:7"}, "properties": {"repobilityId": "0e07c4e1ab9858c9", "scanner": "scanner-primary", "fingerprint": "8917fdacfd835831", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7e4e706a17a9810", "level": "note", "message": {"text": "Legacy-named symbol `doc_copy` in backend/api/research/analysis.py:570"}, "properties": {"repobilityId": "a99a928564fc0229", "scanner": "scanner-primary", "fingerprint": "c7e4e706a17a9810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f32073ef8306c9c8", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/api/research/analysis.py:692"}, "properties": {"repobilityId": "0e690ba234c47f20", "scanner": "scanner-primary", "fingerprint": "f32073ef8306c9c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43582ec89077f045", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/api/research/uploads.py:39"}, "properties": {"repobilityId": "3348af7a38394898", "scanner": "scanner-primary", "fingerprint": "43582ec89077f045", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba60b588959a20c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/scripts/migrate_sqlite_to_postgres.py:305"}, "properties": {"repobilityId": "ed3801449bc73d40", "scanner": "scanner-primary", "fingerprint": "ba60b588959a20c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfc23f397cd6cced", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/migrate_sqlite_to_postgres.py:63"}, "properties": {"repobilityId": "d8de2afdab98bd8b", "scanner": "scanner-primary", "fingerprint": "dfc23f397cd6cced", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3278c1f5b4fa7633", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/scripts/lint_query_get_deprecation.py:25"}, "properties": {"repobilityId": "d80d72251070e999", "scanner": "scanner-primary", "fingerprint": "3278c1f5b4fa7633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fc4d4c2bff59f00", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/lint_architecture.py:204"}, "properties": {"repobilityId": "aed908437e793f09", "scanner": "scanner-primary", "fingerprint": "7fc4d4c2bff59f00", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b332ba27752a966e", "level": "note", "message": {"text": "Legacy-named symbol `update_config_deprecated` in backend/scripts/lint_auth_decorators.py:99"}, "properties": {"repobilityId": "3c7fece742c355b2", "scanner": "scanner-primary", "fingerprint": "b332ba27752a966e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-00560f0f158917cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/scripts/lint_auth_decorators.py:100"}, "properties": {"repobilityId": "1318e81fc05a0a55", "scanner": "scanner-primary", "fingerprint": "00560f0f158917cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e0ce39b1f5f2546", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/scripts/lint_request_thread_parsing.py:69"}, "properties": {"repobilityId": "a253601ae1c8c4f4", "scanner": "scanner-primary", "fingerprint": "7e0ce39b1f5f2546", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-692f9c8fe546d6f6", "level": "note", "message": {"text": "Legacy-named symbol `restore_from_backup` in backend/scripts/backup_sqlite.py:94"}, "properties": {"repobilityId": "302174ae5118c53d", "scanner": "scanner-primary", "fingerprint": "692f9c8fe546d6f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c7d5138ee24ca3d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/scripts/seed_e2e.py:245"}, "properties": {"repobilityId": "761cbf5d71270066", "scanner": "scanner-primary", "fingerprint": "c7d5138ee24ca3d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9337ffd6d93685a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/scripts/lint_datetime_deprecation.py:32"}, "properties": {"repobilityId": "559ecfc2e185674e", "scanner": "scanner-primary", "fingerprint": "a9337ffd6d93685a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afecd17e750b2d25", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/scripts/lint_guards.py:25"}, "properties": {"repobilityId": "30b4070dc4a0b3b6", "scanner": "scanner-primary", "fingerprint": "afecd17e750b2d25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4791e62f62bd9eb0", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/scripts/lint_storage_abstraction.py:46"}, "properties": {"repobilityId": "5f83fcc69ed5b981", "scanner": "scanner-primary", "fingerprint": "4791e62f62bd9eb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a67b7ae628cd386", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/scripts/check_claude_wiring.py:85"}, "properties": {"repobilityId": "39da90ce32629f1c", "scanner": "scanner-primary", "fingerprint": "2a67b7ae628cd386", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7eea45dedcb7ea4", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/utils/auth.py:245"}, "properties": {"repobilityId": "cb6336597dfdbfe5", "scanner": "scanner-primary", "fingerprint": "e7eea45dedcb7ea4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a19f40887177346", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/models/meeting.py:30"}, "properties": {"repobilityId": "39f223baa7641507", "scanner": "scanner-primary", "fingerprint": "6a19f40887177346", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e582e6c06b0ab51a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/models/calculation.py:40"}, "properties": {"repobilityId": "f04245f39f72ed95", "scanner": "scanner-primary", "fingerprint": "e582e6c06b0ab51a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74c7cc38bf559689", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/constants/models.py:30"}, "properties": {"repobilityId": "90657fdbe2dd638f", "scanner": "scanner-primary", "fingerprint": "74c7cc38bf559689", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6352f29677235bda", "level": "note", "message": {"text": "Legacy-named symbol `_parse_legacy` in backend/services/spreadsheet_parser.py:104"}, "properties": {"repobilityId": "cad434d90a39af4a", "scanner": "scanner-primary", "fingerprint": "6352f29677235bda", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0ee8932770bd04aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/services/benchmark_extraction_service.py:134"}, "properties": {"repobilityId": "d1092dcd4a32f846", "scanner": "scanner-primary", "fingerprint": "0ee8932770bd04aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0eb3fe2f34eaf9e", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/services/cortex_intelligence_feed_service.py:98"}, "properties": {"repobilityId": "ebba2c2351b798ef", "scanner": "scanner-primary", "fingerprint": "c0eb3fe2f34eaf9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f7408523e138fd5", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/services/research_service.py:100"}, "properties": {"repobilityId": "5f0058cbe6dcf0f3", "scanner": "scanner-primary", "fingerprint": "9f7408523e138fd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-168421a5d6a60568", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/vendor_catalogue_service.py:368"}, "properties": {"repobilityId": "a79295434a8427ce", "scanner": "scanner-primary", "fingerprint": "168421a5d6a60568", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb97d85150f732ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/drive_transcript_matcher.py:223"}, "properties": {"repobilityId": "2218bfff6950e4b5", "scanner": "scanner-primary", "fingerprint": "fb97d85150f732ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-815f2be95c30f735", "level": "note", "message": {"text": "Legacy-named symbol `m_copy` in backend/services/mapping_service.py:232"}, "properties": {"repobilityId": "aef75bb810f34c72", "scanner": "scanner-primary", "fingerprint": "815f2be95c30f735", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-25326970e8b36d88", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/services/vector_search_service.py:779"}, "properties": {"repobilityId": "58e70b4cbe70671c", "scanner": "scanner-primary", "fingerprint": "25326970e8b36d88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df37d3b56ef925f3", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/services/cortex_score_service.py:388"}, "properties": {"repobilityId": "1b3427299da42749", "scanner": "scanner-primary", "fingerprint": "df37d3b56ef925f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fe5f2e29690e46a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/value_estimation_service.py:55"}, "properties": {"repobilityId": "143378e3c298eb7c", "scanner": "scanner-primary", "fingerprint": "5fe5f2e29690e46a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ad9e9b0aaa816c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/storage_service.py:238"}, "properties": {"repobilityId": "02531274ec29d796", "scanner": "scanner-primary", "fingerprint": "3ad9e9b0aaa816c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d953edb7988a1e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/config/cortex.py:6"}, "properties": {"repobilityId": "b4af3c24c9a9eb74", "scanner": "scanner-primary", "fingerprint": "2d953edb7988a1e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9e9b7754700bbde", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/config/benchmarking.py:8"}, "properties": {"repobilityId": "6dadf6752c83b9e5", "scanner": "scanner-primary", "fingerprint": "c9e9b7754700bbde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59479c01664adeca", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/a2d5a6baa4e2_merge_heads.py:19"}, "properties": {"repobilityId": "867585155e5ee341", "scanner": "scanner-primary", "fingerprint": "59479c01664adeca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-311e93b5b7fb979d", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/cee6921256bf_merge_migration_branches.py:19"}, "properties": {"repobilityId": "79c894a55d5a05ed", "scanner": "scanner-primary", "fingerprint": "311e93b5b7fb979d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-3cb99f77aaadc8c9", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/migrations/versions/c4c7a50d5f9a_merge_heads_workshops_themes_cortex_v7_.py:19"}, "properties": {"repobilityId": "50698868ee5c3294", "scanner": "scanner-primary", "fingerprint": "3cb99f77aaadc8c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a07b25c4cf6af951", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/vitest.config.js:39"}, "properties": {"repobilityId": "ab54eb5425031dbc", "scanner": "scanner-primary", "fingerprint": "a07b25c4cf6af951", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b27c4a3976150bb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/playwright.config.js:62"}, "properties": {"repobilityId": "352f3e28863358ca", "scanner": "scanner-primary", "fingerprint": "b27c4a3976150bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c843406df8e1c8d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/eslint.config.js:60"}, "properties": {"repobilityId": "27957e0f702dd12f", "scanner": "scanner-primary", "fingerprint": "6c843406df8e1c8d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58d82813f4bf71e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/scripts/audit-fetch-callers.js:3"}, "properties": {"repobilityId": "74bcf0fe0462657e", "scanner": "scanner-primary", "fingerprint": "58d82813f4bf71e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-088482393921fd83", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/scripts/lint-guards.js:6"}, "properties": {"repobilityId": "bbd521e607de7664", "scanner": "scanner-primary", "fingerprint": "088482393921fd83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b48a6c5a30dae7d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/scripts/compute-gap.cjs:162"}, "properties": {"repobilityId": "3d4f75fd8ce7eeee", "scanner": "scanner-primary", "fingerprint": "b48a6c5a30dae7d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93c604f545f2fbf7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/App.jsx:103"}, "properties": {"repobilityId": "75ae4bfe2e94f4a0", "scanner": "scanner-primary", "fingerprint": "93c604f545f2fbf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b1f19316974b60e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/main.jsx:14"}, "properties": {"repobilityId": "4ea8d7b8d685125f", "scanner": "scanner-primary", "fingerprint": "8b1f19316974b60e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c00dbe38b97ea4ca", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/utils/api.js:74"}, "properties": {"repobilityId": "c5b7d27aab262234", "scanner": "scanner-primary", "fingerprint": "c00dbe38b97ea4ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2560e8d6696d2185", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Research/ResearchExtractionSummary.jsx:155"}, "properties": {"repobilityId": "1366fc17e4ce59f9", "scanner": "scanner-primary", "fingerprint": "2560e8d6696d2185", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-610b378038b662fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Research/useResearchDocuments.js:119"}, "properties": {"repobilityId": "9f01cca4f09b9684", "scanner": "scanner-primary", "fingerprint": "610b378038b662fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-913f515023aad1aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/Research/useResearchDocuments.js:179"}, "properties": {"repobilityId": "7a055ca690fc3c9d", "scanner": "scanner-primary", "fingerprint": "913f515023aad1aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ce5f074996bb727", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Workshop/PrioritisationMatrix.jsx:30"}, "properties": {"repobilityId": "8f91de19546e051c", "scanner": "scanner-primary", "fingerprint": "9ce5f074996bb727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-110f9cf862061392", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Admin/CatalogueImportDetail.jsx:146"}, "properties": {"repobilityId": "299e3887efa2809a", "scanner": "scanner-primary", "fingerprint": "110f9cf862061392", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd3d42a75ace4de0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/benchmarking/admin/ExtractionReviewDetail.jsx:64"}, "properties": {"repobilityId": "c4041eaedba4d226", "scanner": "scanner-primary", "fingerprint": "bd3d42a75ace4de0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d88b46d1118f9653", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/shared/SecretField.jsx:40"}, "properties": {"repobilityId": "3206b07e363e794f", "scanner": "scanner-primary", "fingerprint": "d88b46d1118f9653", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d6501dc6ff37ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/shared/ConfidenceBadge.jsx:18"}, "properties": {"repobilityId": "1c073a2a554bfa49", "scanner": "scanner-primary", "fingerprint": "e7d6501dc6ff37ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef70772e90993652", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/Settings/DomainWeightsPanel.test.jsx:211"}, "properties": {"repobilityId": "7f0e9c8381db64c0", "scanner": "scanner-primary", "fingerprint": "ef70772e90993652", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8816de15463384ac", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/components/Settings/AIModelsKeysSection.jsx:6"}, "properties": {"repobilityId": "d6cb01e4be4e27fb", "scanner": "scanner-primary", "fingerprint": "8816de15463384ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c79d30c299a9cc84", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Knowledge/TqaDataPanel.jsx:131"}, "properties": {"repobilityId": "79e6e2a4b45d9084", "scanner": "scanner-primary", "fingerprint": "c79d30c299a9cc84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c40b6973c33db45", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/store/slices/validation.js:48"}, "properties": {"repobilityId": "ef9e0d67ea6722ca", "scanner": "scanner-primary", "fingerprint": "7c40b6973c33db45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-563478a6f70346d2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/slices/salesforceSlice.js:24"}, "properties": {"repobilityId": "01dad2faf14b76f2", "scanner": "scanner-primary", "fingerprint": "563478a6f70346d2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbad4b34ae9715b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/store/slices/admin.js:56"}, "properties": {"repobilityId": "34a433e00715540c", "scanner": "scanner-primary", "fingerprint": "bbad4b34ae9715b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef10ace290820f80", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/store/slices/__tests__/salesforceSlice.test.js:409"}, "properties": {"repobilityId": "f00d26976242b5c7", "scanner": "scanner-primary", "fingerprint": "ef10ace290820f80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d9c99c92a7a9a82", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/store/__tests__/boundary-enforcement.test.js:608"}, "properties": {"repobilityId": "cd8ab2b893c8e7e3", "scanner": "scanner-primary", "fingerprint": "4d9c99c92a7a9a82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5fb69c666aa5da31", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/test/handlers/handlers.test.js:54"}, "properties": {"repobilityId": "92ec678e07ab60c2", "scanner": "scanner-primary", "fingerprint": "5fb69c666aa5da31", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c22bb927f6053d75", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/__tests__/errorBoundary-toast.integration.test.jsx:144"}, "properties": {"repobilityId": "2bb3ff25f8a406ff", "scanner": "scanner-primary", "fingerprint": "c22bb927f6053d75", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bfdbb4cc1e51772", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/help-system.spec.js:173"}, "properties": {"repobilityId": "f41973cb7b3b24f3", "scanner": "scanner-primary", "fingerprint": "0bfdbb4cc1e51772", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-616beb23a2f03f60", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/e2e/login.spec.js:68"}, "properties": {"repobilityId": "896cf00a70c654a1", "scanner": "scanner-primary", "fingerprint": "616beb23a2f03f60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c8456bcd579e71f", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/e2e/proposal.spec.js:515"}, "properties": {"repobilityId": "830ed5b8924655cb", "scanner": "scanner-primary", "fingerprint": "4c8456bcd579e71f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4ea88d3020bede0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/e2e/proposal.spec.js:254"}, "properties": {"repobilityId": "dc0ac70a8a8f6e0b", "scanner": "scanner-primary", "fingerprint": "e4ea88d3020bede0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18b72bd4082c3bb5", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/e2e/configuration-admin.spec.js:298"}, "properties": {"repobilityId": "0f18dfd1e062ce88", "scanner": "scanner-primary", "fingerprint": "18b72bd4082c3bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-658aa6ef1c40961f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/client-form-create.spec.js:81"}, "properties": {"repobilityId": "b66e3a82f6154489", "scanner": "scanner-primary", "fingerprint": "658aa6ef1c40961f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1aa02a8e730ec53", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/research.spec.js:393"}, "properties": {"repobilityId": "0d4814f0a6425549", "scanner": "scanner-primary", "fingerprint": "a1aa02a8e730ec53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c25da6f40ffe423", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/e2e/copilot-mock-fixture.js:380"}, "properties": {"repobilityId": "82c4aa54031f2de2", "scanner": "scanner-primary", "fingerprint": "8c25da6f40ffe423", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99de39405c73bbc4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/e2e/cortex-extra.spec.js:12"}, "properties": {"repobilityId": "8feac55e4634cc5e", "scanner": "scanner-primary", "fingerprint": "99de39405c73bbc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b035774537dab49", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/helpers/copilot_helpers.js:563"}, "properties": {"repobilityId": "10d836ae10d404cb", "scanner": "scanner-primary", "fingerprint": "3b035774537dab49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e07353c1931763d", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_7_research.spec.js:37"}, "properties": {"repobilityId": "756be032d2452588", "scanner": "scanner-primary", "fingerprint": "8e07353c1931763d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4c60c8803fe2034", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_cross_domain.spec.js:63"}, "properties": {"repobilityId": "b8bcc41318284f1a", "scanner": "scanner-primary", "fingerprint": "a4c60c8803fe2034", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92f972c9f47d0ceb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_2_maturity.spec.js:42"}, "properties": {"repobilityId": "85049abd445d1c2d", "scanner": "scanner-primary", "fingerprint": "92f972c9f47d0ceb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac1d59a0b5858178", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/e2e/copilot/test_copilot_smoke.spec.js:51"}, "properties": {"repobilityId": "632d8fc875423102", "scanner": "scanner-primary", "fingerprint": "ac1d59a0b5858178", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-269d26086b955d40", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_10_contacts.spec.js:31"}, "properties": {"repobilityId": "68746e9d19f22d9a", "scanner": "scanner-primary", "fingerprint": "269d26086b955d40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84d7efb5aaa3fe9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_12_engagement.spec.js:100"}, "properties": {"repobilityId": "221c9b3617799867", "scanner": "scanner-primary", "fingerprint": "84d7efb5aaa3fe9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49b951b7463446e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_11_case_studies.spec.js:55"}, "properties": {"repobilityId": "09d84494a41af83c", "scanner": "scanner-primary", "fingerprint": "49b951b7463446e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae81d5e01be4ede6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_no_client.spec.js:81"}, "properties": {"repobilityId": "6313165bfedfc59a", "scanner": "scanner-primary", "fingerprint": "ae81d5e01be4ede6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69b18619087077de", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_domain_6_cortex.spec.js:61"}, "properties": {"repobilityId": "5c346669f9eb913b", "scanner": "scanner-primary", "fingerprint": "69b18619087077de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6196dfa84525c012", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/e2e/copilot/test_copilot_capability_session_expiry.spec.js:139"}, "properties": {"repobilityId": "0903829f81bc915f", "scanner": "scanner-primary", "fingerprint": "6196dfa84525c012", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63870127044cb1cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_ingestion_client_doc.spec.js:51"}, "properties": {"repobilityId": "79524408b9975863", "scanner": "scanner-primary", "fingerprint": "63870127044cb1cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73b46caca96db4a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/e2e/copilot/test_copilot_domain_3_calculations.spec.js:37"}, "properties": {"repobilityId": "92e8c64ecf2ed3c4", "scanner": "scanner-primary", "fingerprint": "73b46caca96db4a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4deef6612692bae", "level": "none", "message": {"text": "Commented-code block (10 lines) in .claude/hooks/gsd-read-injection-scanner.js:33"}, "properties": {"repobilityId": "255415c01aab3688", "scanner": "scanner-primary", "fingerprint": "f4deef6612692bae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d5bd38064b1d2eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-read-guard.js:7"}, "properties": {"repobilityId": "8612c366fd43e5d6", "scanner": "scanner-primary", "fingerprint": "6d5bd38064b1d2eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d255dc69ed34d8ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-statusline.js:305"}, "properties": {"repobilityId": "b55ed8fc6a8634ad", "scanner": "scanner-primary", "fingerprint": "d255dc69ed34d8ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5a1d7b350ec64d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks/gsd-context-monitor.js:2"}, "properties": {"repobilityId": "12550d8c2db964d3", "scanner": "scanner-primary", "fingerprint": "a5a1d7b350ec64d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc003b959ce2925d", "level": "none", "message": {"text": "Commented-code block (6 lines) in .claude/hooks/gsd-check-update-worker.js:97"}, "properties": {"repobilityId": "03e8ee02e8bd1d56", "scanner": "scanner-primary", "fingerprint": "cc003b959ce2925d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8494a2cf148cdd31", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-read-guard.js:7"}, "properties": {"repobilityId": "b01fe5716317e423", "scanner": "scanner-primary", "fingerprint": "8494a2cf148cdd31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67e52457247b982d", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-statusline.js:305"}, "properties": {"repobilityId": "1571d4f21d0f6f0f", "scanner": "scanner-primary", "fingerprint": "67e52457247b982d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1047f9aeded27d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in .claude/hooks-legacy/gsd-context-monitor.js:2"}, "properties": {"repobilityId": "c69629109daa56aa", "scanner": "scanner-primary", "fingerprint": "a1047f9aeded27d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6adefde14d4817a", "level": "none", "message": {"text": "Commented-code block (6 lines) in .claude/hooks-legacy/gsd-check-update-worker.js:96"}, "properties": {"repobilityId": "7738c0de6d6e65f1", "scanner": "scanner-primary", "fingerprint": "f6adefde14d4817a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-626667138f762415", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/forwarder.ts:46"}, "properties": {"repobilityId": "03808e88c152a617", "scanner": "scanner-primary", "fingerprint": "626667138f762415", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00f733e6ad556785", "level": "none", "message": {"text": "Commented-code block (8 lines) in sdk/usage-telemetry/src/collector.ts:346"}, "properties": {"repobilityId": "661b02930fb3d771", "scanner": "scanner-primary", "fingerprint": "00f733e6ad556785", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b9741f5b9c7b294", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/src/collector.ts:362"}, "properties": {"repobilityId": "6019976ecb3a954c", "scanner": "scanner-primary", "fingerprint": "9b9741f5b9c7b294", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d2434d8b640c6a5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in sdk/usage-telemetry/mock/local-mock.mjs:3"}, "properties": {"repobilityId": "04322fcf3efb48b2", "scanner": "scanner-primary", "fingerprint": "d2434d8b640c6a5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-054ecddfb5d68c81", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sdk/usage-telemetry/mock/local-mock.mjs:9"}, "properties": {"repobilityId": "1a18613f8908b1d4", "scanner": "scanner-primary", "fingerprint": "054ecddfb5d68c81", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a330d8bcaa9d114e", "level": "note", "message": {"text": "71 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "c3d45b3e514673d8", "scanner": "scanner-primary", "fingerprint": "a330d8bcaa9d114e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f449a3f11b815507", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f8bb52f2a9e89ec2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "869695332b88ea1c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6c8654dce4d08458", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "3ac6916ac6e5d45d", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "86b6a26ea0262e19", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3063fbdb25fd0ca0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "37613afb16ccc197", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "beb33b7925a72cf4", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5de5b3e34e305073", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1c3639813ca8e46c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "9839095f1b2b2a06", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "056a2e583d877672", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bf910c8d78ce78a8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "cb6f44cb8f0f47ed", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "83cfa313ff890203", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a2c1b773d22a292e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f16940663173adc8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "ab4d08e642117fed", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "66da38a35513a7b4", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-7c1d35a2dc1b243b", "level": "warning", "message": {"text": "Frontend route `/cortex/:domainRoute` has no Link/navigate to it \u2014 frontend/src/App.jsx"}, "properties": {"repobilityId": "928df2517c5ca7e1", "scanner": "scanner-primary", "fingerprint": "7c1d35a2dc1b243b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-510a8eefc0d01556", "level": "warning", "message": {"text": "Frontend route `/vendor-catalogue/template-editor/:id` has no Link/navigate to it \u2014 frontend/src/App.jsx"}, "properties": {"repobilityId": "ae99ca8daf271fb5", "scanner": "scanner-primary", "fingerprint": "510a8eefc0d01556", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-447637edc21b5c9f", "level": "error", "message": {"text": "Dangling fetch: GET /api/x (frontend/src/store/__tests__/boundary-enforcement.test.js:608)"}, "properties": {"repobilityId": "a4185184d959ac50", "scanner": "scanner-primary", "fingerprint": "447637edc21b5c9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d59f74361661a7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:54)"}, "properties": {"repobilityId": "1b3c7038f468af3c", "scanner": "scanner-primary", "fingerprint": "2d59f74361661a7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecd4ea28bc995899", "level": "error", "message": {"text": "Dangling fetch: GET /api/use-cases (frontend/src/test/handlers/handlers.test.js:64)"}, "properties": {"repobilityId": "6b44af12d0d8525d", "scanner": "scanner-primary", "fingerprint": "ecd4ea28bc995899", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-20de5b13420c0bc4", "level": "error", "message": {"text": "Dangling fetch: GET /api/workshops (frontend/src/test/handlers/handlers.test.js:73)"}, "properties": {"repobilityId": "fcca7cc383f79c9e", "scanner": "scanner-primary", "fingerprint": "20de5b13420c0bc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b419f93ba0c164e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarking/assessments (frontend/src/test/handlers/handlers.test.js:84)"}, "properties": {"repobilityId": "dd33d49d36bc33dc", "scanner": "scanner-primary", "fingerprint": "9b419f93ba0c164e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-17d21a9b0beb1cd5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/clients/test-client/meetings/test-meeting (frontend/src/test/handlers/handlers.test.js:92)"}, "properties": {"repobilityId": "46fa07939e7eaa46", "scanner": "scanner-primary", "fingerprint": "17d21a9b0beb1cd5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-26d3a0966368444f", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasks (frontend/src/test/handlers/handlers.test.js:101)"}, "properties": {"repobilityId": "6fe005d42c0f4b0e", "scanner": "scanner-primary", "fingerprint": "26d3a0966368444f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c826694f5eb84643", "level": "error", "message": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:112)"}, "properties": {"repobilityId": "e5e23f715516ef1c", "scanner": "scanner-primary", "fingerprint": "c826694f5eb84643", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9d2b7ebb5eddbb9", "level": "error", "message": {"text": "Dangling fetch: GET /api/knowledge (frontend/src/test/handlers/handlers.test.js:124)"}, "properties": {"repobilityId": "d247cb340aa80778", "scanner": "scanner-primary", "fingerprint": "d9d2b7ebb5eddbb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37a36cd5dec45271", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/users (frontend/src/test/handlers/handlers.test.js:134)"}, "properties": {"repobilityId": "4d1a1ba698633717", "scanner": "scanner-primary", "fingerprint": "37a36cd5dec45271", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9150d017a69b80b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/clients (frontend/src/test/handlers/handlers.test.js:145)"}, "properties": {"repobilityId": "908f08e9e1924c58", "scanner": "scanner-primary", "fingerprint": "9150d017a69b80b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61b9f01b1755d47f", "level": "error", "message": {"text": "Dangling fetch: GET /api/clients (frontend/src/test/handlers/handlers.test.js:150)"}, "properties": {"repobilityId": "b45d64a242454519", "scanner": "scanner-primary", "fingerprint": "61b9f01b1755d47f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-843fc70ea6fe77c0", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:155)"}, "properties": {"repobilityId": "539389a2e6cdb33b", "scanner": "scanner-primary", "fingerprint": "843fc70ea6fe77c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-210741f2a892faef", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/clients/test-id (frontend/src/test/handlers/handlers.test.js:160)"}, "properties": {"repobilityId": "7ff92cd766a8b645", "scanner": "scanner-primary", "fingerprint": "210741f2a892faef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}]}]}