{"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-9b6d1ea86bc2a7b5", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "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-46e198bfaa469b77", "name": "Possibly dead Python function: profile_memory", "shortDescription": {"text": "Possibly dead Python function: profile_memory"}, "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-9027869923a596bf", "name": "Possibly dead Python function: benchmark_comparison", "shortDescription": {"text": "Possibly dead Python function: benchmark_comparison"}, "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-59d668035da16b40", "name": "Possibly dead Python function: print_benchmark_results", "shortDescription": {"text": "Possibly dead Python function: print_benchmark_results"}, "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-de2ff6f7afb7437a", "name": "Possibly dead Python function: visit_ClassDef", "shortDescription": {"text": "Possibly dead Python function: visit_ClassDef"}, "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-07f7d486ed09983d", "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-4948b095e516cefd", "name": "Possibly dead Python function: build_all", "shortDescription": {"text": "Possibly dead Python function: build_all"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e04f85047e30128b", "name": "Possibly dead Python function: check_attune_ai_version", "shortDescription": {"text": "Possibly dead Python function: check_attune_ai_version"}, "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-48ea4c17c2c04429", "name": "Possibly dead Python function: check_attune_help_version", "shortDescription": {"text": "Possibly dead Python function: check_attune_help_version"}, "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-5a562c4c8d331112", "name": "Possibly dead Python function: check_pip_shows_correct_versions", "shortDescription": {"text": "Possibly dead Python function: check_pip_shows_correct_versions"}, "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-8f27e2f5f9571b15", "name": "Possibly dead Python function: check_core_imports", "shortDescription": {"text": "Possibly dead Python function: check_core_imports"}, "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-764ec5f74243c83c", "name": "Possibly dead Python function: check_workflow_registry", "shortDescription": {"text": "Possibly dead Python function: check_workflow_registry"}, "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-4bb96982bf20d916", "name": "Possibly dead Python function: check_wizard_registry", "shortDescription": {"text": "Possibly dead Python function: check_wizard_registry"}, "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-2ee127a905e53ee0", "name": "Possibly dead Python function: check_mcp_imports", "shortDescription": {"text": "Possibly dead Python function: check_mcp_imports"}, "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-c4b3fba4de80d649", "name": "Possibly dead Python function: check_agent_templates", "shortDescription": {"text": "Possibly dead Python function: check_agent_templates"}, "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-7f2cfb8f11c95a3c", "name": "Possibly dead Python function: check_help_engine_init", "shortDescription": {"text": "Possibly dead Python function: check_help_engine_init"}, "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-e5575c416e98081f", "name": "Possibly dead Python function: check_help_engine_renderers", "shortDescription": {"text": "Possibly dead Python function: check_help_engine_renderers"}, "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-629f981be8a78b34", "name": "Possibly dead Python function: check_help_engine_session", "shortDescription": {"text": "Possibly dead Python function: check_help_engine_session"}, "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-384073fd016ec6ad", "name": "Possibly dead Python function: check_attune_cli_help", "shortDescription": {"text": "Possibly dead Python function: check_attune_cli_help"}, "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-f0860cbe63a572cc", "name": "Possibly dead Python function: check_attune_help_cli", "shortDescription": {"text": "Possibly dead Python function: check_attune_help_cli"}, "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-f6f3dab70f0c95f1", "name": "Possibly dead Python function: check_path_validation_blocks_traversal", "shortDescription": {"text": "Possibly dead Python function: check_path_validation_blocks_traversal"}, "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-1a9824ddbdb4f62c", "name": "Possibly dead Python function: check_path_validation_blocks_null_bytes", "shortDescription": {"text": "Possibly dead Python function: check_path_validation_blocks_null_bytes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e00c4fb5834ba9aa", "name": "Possibly dead Python function: check_mcp_server_imports", "shortDescription": {"text": "Possibly dead Python function: check_mcp_server_imports"}, "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-3078ed15335ac7c6", "name": "Possibly dead Python function: check_attune_help_in_attune_ai", "shortDescription": {"text": "Possibly dead Python function: check_attune_help_in_attune_ai"}, "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-0dc1c3effc4a987c", "name": "Possibly dead Python function: replace_todo", "shortDescription": {"text": "Possibly dead Python function: replace_todo"}, "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-edb248a97bf3906b", "name": "Possibly dead Python function: instrumented", "shortDescription": {"text": "Possibly dead Python function: instrumented"}, "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-ed2bac1e36f922b3", "name": "Possibly dead Python function: predict_next_audit", "shortDescription": {"text": "Possibly dead Python function: predict_next_audit"}, "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-aa095db4ac5cd6f8", "name": "Possibly dead Python function: check_anticipation_window", "shortDescription": {"text": "Possibly dead Python function: check_anticipation_window"}, "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-a1594024369a8696", "name": "Possibly dead Python function: should_anticipate", "shortDescription": {"text": "Possibly dead Python function: should_anticipate"}, "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-1b27c3e9b73391a1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/Breadcrumbs.tsx:27", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/Breadcrumbs.tsx:27"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef403d42be2a21ce", "name": "`truncate` class without `title=` for hover reveal \u2014 website/components/CostSavingsCard.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 website/components/CostSavingsCard.tsx:169"}, "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-e5dfcdeb5724a224", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/PlausibleAnalytics.tsx:16", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/PlausibleAnalytics.tsx:16"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af4de06e423a34e0", "name": "`truncate` class without `title=` for hover reveal \u2014 website/components/debug-wizard/DebugWizard.tsx:1067", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 website/components/debug-wizard/DebugWizard.tsx:1067"}, "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-7f6d455ad0adcf10", "name": "TODO/FIXME marker in shipping code \u2014 website/components/debug-wizard/DebugWizard.tsx:180", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 website/components/debug-wizard/DebugWizard.tsx:180"}, "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-468f3697e72d8da7", "name": "TODO/FIXME marker in shipping code \u2014 website/components/telemetry/TelemetryPanel.tsx:61", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 website/components/telemetry/TelemetryPanel.tsx:61"}, "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-5dc7f7699269e17e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/page.tsx:48", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/page.tsx:48"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-661d28ffbc840d78", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/layout.tsx:47", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/layout.tsx:47"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aaa89d2cdc19d12e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/page.tsx:37", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/page.tsx:37"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b853b0f78b30329", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/[slug]/page.tsx:79", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/[slug]/page.tsx:79"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56f1f14530147ce0", "name": "Stray `console.log` in TS/JS \u2014 website/app/api/contact/route.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/contact/route.ts:28"}, "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-515c943a29f49b14", "name": "TODO/FIXME marker in shipping code \u2014 website/app/api/debug-wizard/analyze/route.ts:561", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 website/app/api/debug-wizard/analyze/route.ts:561"}, "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-1485ea9bb48a4bf2", "name": "Stray `console.log` in TS/JS \u2014 website/app/api/og/route.tsx:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/og/route.tsx:46"}, "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-57ed2c6f0c921379", "name": "Stray `console.log` in TS/JS \u2014 website/app/api/newsletter/route.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/newsletter/route.ts:29"}, "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-6da5e62f6ae91ffc", "name": "Stray `console.log` in TS/JS \u2014 website/app/api/webhooks/vercel/route.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/webhooks/vercel/route.ts:86"}, "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-07c84cc6182fa636", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/docs/page.tsx:95", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/docs/page.tsx:95"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50e86b93013a3d28", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/changelog/page.tsx:46", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/changelog/page.tsx:46"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-772c41aa7eae515f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/how-it-works/page.tsx:35", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/how-it-works/page.tsx:35"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-77a79fde2adc0cd3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/pricing/page.tsx:53", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/pricing/page.tsx:53"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1ec7fd3dd0a40f5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/faq/page.tsx:210", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/faq/page.tsx:210"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-401e07bf31a60c2f", "name": "TODO/FIXME marker in shipping code \u2014 website/lib/metadata.ts:115", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 website/lib/metadata.ts:115"}, "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-5787b6eda51519f5", "name": "Stray `console.log` in TS/JS \u2014 website/lib/redis.ts:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/redis.ts:103"}, "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-0ff0b06ac4b49ddd", "name": "Stray `console.log` in TS/JS \u2014 website/lib/db.ts:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/db.ts:140"}, "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-c304307f44377386", "name": "Stray `console.log` in TS/JS \u2014 website/lib/logger.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/logger.ts:86"}, "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-46fced2ab99803e4", "name": "Stray `console.log` in TS/JS \u2014 website/lib/email/sendgrid.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/email/sendgrid.ts:53"}, "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-e745fb5485d7fb89", "name": "Stray `console.log` in TS/JS \u2014 website/lib/email/mailchimp.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/email/mailchimp.ts:24"}, "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-9dcd7dc9e7c15fab", "name": "TODO/FIXME marker in shipping code \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:1681", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:1681"}, "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-0811c6de1de3ce13", "name": "Stray `console.log` in TS/JS \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:6636", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:6636"}, "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-4976e7d7b567095b", "name": "Privileged port 21 in use", "shortDescription": {"text": "Privileged port 21 in use"}, "fullDescription": {"text": "Port 21 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-53d6d3396e807eba", "name": "Privileged port 29 in use", "shortDescription": {"text": "Privileged port 29 in use"}, "fullDescription": {"text": "Port 29 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-6499a8b36db4cc0e", "name": "Privileged port 7 in use", "shortDescription": {"text": "Privileged port 7 in use"}, "fullDescription": {"text": "Port 7 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-1601cdc7db5a802e", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/python:1-3.11-bullseye", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/python:1-3.11-bullseye"}, "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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56e0678487fd3acf", "name": "Insecure pattern 'eval_used' in plugin/README.md:60", "shortDescription": {"text": "Insecure pattern 'eval_used' in plugin/README.md:60"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-956581db8bda1093", "name": "Insecure pattern 'exec_used' in plugin/README.md:60", "shortDescription": {"text": "Insecure pattern 'exec_used' in plugin/README.md:60"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d140f6b5f693c31", "name": "Insecure pattern 'eval_used' in plugin/hooks/security_guard.py:54", "shortDescription": {"text": "Insecure pattern 'eval_used' in plugin/hooks/security_guard.py:54"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40d664e4f6b20b0b", "name": "Insecure pattern 'exec_used' in plugin/hooks/security_guard.py:58", "shortDescription": {"text": "Insecure pattern 'exec_used' in plugin/hooks/security_guard.py:58"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a36b384069fe2164", "name": "Insecure pattern 'subprocess_shell_true' in plugin/hooks/security_guard.py:66", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in plugin/hooks/security_guard.py:66"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-794e1d2f6c694f13", "name": "Insecure pattern 'eval_used' in plugin/skills/bug-predict/SKILL.md:60", "shortDescription": {"text": "Insecure pattern 'eval_used' in plugin/skills/bug-predict/SKILL.md:60"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7453932644f47ee2", "name": "Insecure pattern 'exec_used' in plugin/skills/bug-predict/SKILL.md:60", "shortDescription": {"text": "Insecure pattern 'exec_used' in plugin/skills/bug-predict/SKILL.md:60"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a180c1a6a820080a", "name": "Insecure pattern 'eval_used' in plugin/skills/security-audit/SKILL.md:65", "shortDescription": {"text": "Insecure pattern 'eval_used' in plugin/skills/security-audit/SKILL.md:65"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9c17682ddd927dd", "name": "Insecure pattern 'exec_used' in plugin/skills/security-audit/SKILL.md:65", "shortDescription": {"text": "Insecure pattern 'exec_used' in plugin/skills/security-audit/SKILL.md:65"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee736020f3f741cc", "name": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:19", "shortDescription": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:19"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be8780bfa13d0239", "name": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:99", "shortDescription": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:99"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8592b2fcd82d7d74", "name": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:179", "shortDescription": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:179"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d4abcc1af8b4a7a", "name": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:19", "shortDescription": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:19"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfe06e147a921fdb", "name": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:99", "shortDescription": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:99"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82f98143207fc094", "name": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:179", "shortDescription": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:179"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f90d2a54d56aaac", "name": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19.json:18", "shortDescription": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19.json:18"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d8073b3b096ecb7", "name": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19.json:93", "shortDescription": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19.json:93"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f3d7678e3f2c044", "name": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19.json:168", "shortDescription": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19.json:168"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9985409722b5f59a", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-specs-page-refinement/wireframe.html:548", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-specs-page-refinement/wireframe.html:548"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-def84896bc10c56b", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-workflows-page-refinement/wireframe.html:488", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-workflows-page-refinement/wireframe.html:488"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db2bbde7827a9782", "name": "Insecure pattern 'eval_used' in docs/specs/ops-help-page/mockups/search.html:104", "shortDescription": {"text": "Insecure pattern 'eval_used' in docs/specs/ops-help-page/mockups/search.html:104"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef4f15d880a61d89", "name": "Insecure pattern 'exec_used' in docs/specs/ops-help-page/mockups/search.html:105", "shortDescription": {"text": "Insecure pattern 'exec_used' in docs/specs/ops-help-page/mockups/search.html:105"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcfe395463e88944", "name": "Insecure pattern 'subprocess_shell_true' in scripts/phase_2_setup.py:357", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/phase_2_setup.py:357"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0367f4f69e4c60a", "name": "Insecure pattern 'dangerous_innerhtml' in website/components/Breadcrumbs.tsx:27", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/components/Breadcrumbs.tsx:27"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28ee3fcf6f355ac5", "name": "Insecure pattern 'dangerous_innerhtml' in website/components/PlausibleAnalytics.tsx:16", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/components/PlausibleAnalytics.tsx:16"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7681e6a9ecf5c24e", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/page.tsx:48", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/page.tsx:48"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-63bd02904a522b24", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/layout.tsx:47", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/layout.tsx:47"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29ea23231b273e1f", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/page.tsx:37", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/page.tsx:37"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8f5a7ed38ca58aa", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/[slug]/page.tsx:79", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/[slug]/page.tsx:79"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00c56cc15e61339e", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/docs/page.tsx:95", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/docs/page.tsx:95"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bef255e30501b9ec", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/changelog/page.tsx:46", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/changelog/page.tsx:46"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ace3fca75fba8c2b", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/how-it-works/page.tsx:35", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/how-it-works/page.tsx:35"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7260cdd622df919a", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/pricing/page.tsx:53", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/pricing/page.tsx:53"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-441f09aaf0d47ac7", "name": "Insecure pattern 'dangerous_innerhtml' in website/app/faq/page.tsx:210", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/faq/page.tsx:210"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80a6885c4de8ed59", "name": "Insecure pattern 'eval_used' in website/public/framework-docs/reference/FAQ/index.html:6595", "shortDescription": {"text": "Insecure pattern 'eval_used' in website/public/framework-docs/reference/FAQ/index.html:6595"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca6737468cf0ea16", "name": "Insecure pattern 'exec_used' in website/public/framework-docs/reference/FAQ/index.html:6730", "shortDescription": {"text": "Insecure pattern 'exec_used' in website/public/framework-docs/reference/FAQ/index.html:6730"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d19f01abe8ee9e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.j", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9cd2d940ec985e5", "name": "Insecure pattern 'domparser_html_parse' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js:14", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c40c8ef8a630f77", "name": "Insecure pattern 'new_function_used' in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:5977", "shortDescription": {"text": "Insecure pattern 'new_function_used' in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:5977"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76f14b8af6c288b3", "name": "Insecure pattern 'eval_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819", "shortDescription": {"text": "Insecure pattern 'eval_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b35db0e00006076", "name": "Insecure pattern 'exec_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819", "shortDescription": {"text": "Insecure pattern 'exec_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-481836676f4950ad", "name": "Possible secret in website/public/framework-docs/how-to/security-architecture/index.html", "shortDescription": {"text": "Possible secret in website/public/framework-docs/how-to/security-architecture/index.html"}, "fullDescription": {"text": "Detected pattern matching openai_or_anthropic_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-52fd601383ebf4ed", "name": "Insecure pattern 'private_key_in_repo' in website/public/framework-docs/how-to/security-architecture/index.html:4387", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in website/public/framework-docs/how-to/security-architecture/index.html:4387"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5d6807577d63cadc", "name": "Insecure pattern 'direct_innerhtml_assignment' in deployments/wizards-backend/static/index.html:279", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deployments/wizards-backend/static/index.html:279"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa84bf3a89e8b47d", "name": "Insecure pattern 'direct_innerhtml_assignment' in attune-ai-dev/help/search.js:11", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in attune-ai-dev/help/search.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4c7c27802c8e173", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/search-index.json:1", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/search-index.json:1"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfecd3a3a14e283c", "name": "Insecure pattern 'exec_used' in attune-ai-dev/help/search-index.json:1", "shortDescription": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/search-index.json:1"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca04ca375cdab544", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/faq.html:285", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/faq.html:285"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-927806f0b0c66c05", "name": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/faq.html:285", "shortDescription": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/faq.html:285"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75a9ec057d4e3199", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/comparison.html:332", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/comparison.html:332"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e056726b149ccbb5", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/concept.html:283", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/concept.html:283"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63040f5e2e1c2f39", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/quickstart.html:275", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/quickstart.html:275"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d81492eee361683", "name": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/quickstart.html:276", "shortDescription": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/quickstart.html:276"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52d60c4820a7dc3d", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/faq.html:7", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/faq.html:7"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fd96156b7cf3e5d", "name": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/faq.html:7", "shortDescription": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/faq.html:7"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d432ccaf2c129581", "name": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/faq.html:308", "shortDescription": {"text": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/faq.html:308"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-861c71e3ba1fc23f", "name": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/concept.html:7", "shortDescription": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/concept.html:7"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79c7da03f2a40031", "name": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/concept.html:283", "shortDescription": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/concept.html:283"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd734b5379945667", "name": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/concept.html:303", "shortDescription": {"text": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/concept.html:303"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6df0b39ebfdd5a18", "name": "Insecure pattern 'eval_used' in .claude/CLAUDE.md:88", "shortDescription": {"text": "Insecure pattern 'eval_used' in .claude/CLAUDE.md:88"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cad9bb69f1fc559", "name": "Insecure pattern 'exec_used' in .claude/CLAUDE.md:88", "shortDescription": {"text": "Insecure pattern 'exec_used' in .claude/CLAUDE.md:88"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe62eb5c1246af4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs.js:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs.js:88"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3be09729958fbd00", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/completion_candidates.js:228", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/completion_candidates.js:228"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d8a6d9a6babbd69", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/run_view.js:944", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/run_view.js:944"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-692591b607821bfa", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs_kebab.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs_kebab.js:69"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5b1d069cbb16db2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/bulletin.js:96", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/bulletin.js:96"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2663bdb700927749", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/workflows_kebab.js:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/workflows_kebab.js:61"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-993eb9c101543b6e", "name": "Possible secret in src/attune/memory/security/secrets_types.py", "shortDescription": {"text": "Possible secret in src/attune/memory/security/secrets_types.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c9c31723a9535bb0", "name": "Possible secret in src/attune/memory/security/secrets_detector.py", "shortDescription": {"text": "Possible secret in src/attune/memory/security/secrets_detector.py"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-2815962061497651", "name": "Insecure pattern 'private_key_in_repo' in src/attune/memory/security/secrets_detector.py:186", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in src/attune/memory/security/secrets_detector.py:186"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-fe8415d4e2f4bc55", "name": "Insecure pattern 'eval_used' in src/attune/hooks/scripts/security_guard.py:46", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/attune/hooks/scripts/security_guard.py:46"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b281e20d07f961e", "name": "Insecure pattern 'exec_used' in src/attune/hooks/scripts/security_guard.py:50", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/attune/hooks/scripts/security_guard.py:50"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-208a024643c60177", "name": "Insecure pattern 'subprocess_shell_true' in src/attune/hooks/scripts/security_guard.py:58", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in src/attune/hooks/scripts/security_guard.py:58"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e8671faa5b1474c", "name": "Insecure pattern 'eval_used' in src/attune/workflows/bug_predict_patterns.py:243", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/bug_predict_patterns.py:243"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad2891fdea396392", "name": "Insecure pattern 'exec_used' in src/attune/workflows/bug_predict_patterns.py:243", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/bug_predict_patterns.py:243"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd882751ce316586", "name": "Insecure pattern 'eval_used' in src/attune/workflows/deep_review.py:68", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/deep_review.py:68"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fbc0b1336a752463", "name": "Insecure pattern 'exec_used' in src/attune/workflows/deep_review.py:68", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/deep_review.py:68"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a2ac65401b5828f", "name": "Insecure pattern 'eval_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:200", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:200"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95ff24731a799bfb", "name": "Insecure pattern 'exec_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:206", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:206"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e9785365578ec96", "name": "Insecure pattern 'subprocess_shell_true' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:212", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:212"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-096a3ab9e39445e3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4d3362e34b54d91", "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-fe6fbdf47ca70d54", "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-768e8f28c1850d98", "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-ab3328b608b321a2", "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-65a716a27d2be993", "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-14ce8614dd03f409", "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-96e29be7d54564b0", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7bc38614fd7e353e", "name": "Very large file: tests/unit/test_coverage_batch1.py (2258 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_coverage_batch1.py (2258 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-15f912f8e585faf6", "name": "Very large file: tests/unit/test_coverage_batch10.py (2236 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_coverage_batch10.py (2236 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-4f8d77860af72f11", "name": "Very large file: tests/unit/test_coverage_batch9.py (2803 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_coverage_batch9.py (2803 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-33b52222e2e3a9fd", "name": "Very large file: tests/unit/test_workflow_commands.py (1883 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_workflow_commands.py (1883 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-9ef0e3548ee33fd7", "name": "Very large file: tests/unit/test_coverage_batch2.py (1166 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_coverage_batch2.py (1166 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-6453fcb7ddd9e98b", "name": "Very large file: tests/unit/test_coverage_batch7.py (2163 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_coverage_batch7.py (2163 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-54a7d9eac5b38405", "name": "Very large file: tests/unit/orchestration/test_execution_strategies.py (1815 lines)", "shortDescription": {"text": "Very large file: tests/unit/orchestration/test_execution_strategies.py (1815 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-ce879923f0df0544", "name": "Very large file: tests/unit/socratic/test_mcp_server.py (1461 lines)", "shortDescription": {"text": "Very large file: tests/unit/socratic/test_mcp_server.py (1461 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-318435b22cf8a0ea", "name": "Very large file: tests/unit/workflows/test_execution_mixin_branches.py (1403 lines)", "shortDescription": {"text": "Very large file: tests/unit/workflows/test_execution_mixin_branches.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-f19751593e4657f4", "name": "Very large file: tests/unit/workflows/test_agent_sdk_adapter.py (1509 lines)", "shortDescription": {"text": "Very large file: tests/unit/workflows/test_agent_sdk_adapter.py (1509 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-62e6846cfbf1a6c9", "name": "Very large file: tests/unit/workflows/test_documentation_orchestrator.py (1641 lines)", "shortDescription": {"text": "Very large file: tests/unit/workflows/test_documentation_orchestrator.py (1641 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-4874e5f37e935acb", "name": "Very large file: tests/unit/wizards/test_wizard_base.py (1472 lines)", "shortDescription": {"text": "Very large file: tests/unit/wizards/test_wizard_base.py (1472 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-bd08e69ebc84dc21", "name": "Very large file: tests/unit/telemetry/test_usage_tracker.py (1766 lines)", "shortDescription": {"text": "Very large file: tests/unit/telemetry/test_usage_tracker.py (1766 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-e1a9bd852eebde03", "name": "Very large file: tests/unit/telemetry/test_telemetry_cli.py (1654 lines)", "shortDescription": {"text": "Very large file: tests/unit/telemetry/test_telemetry_cli.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-abefb6f3ae252bc9", "name": "Very large file: tests/unit/cli_commands/test_telemetry_commands.py (1706 lines)", "shortDescription": {"text": "Very large file: tests/unit/cli_commands/test_telemetry_commands.py (1706 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-e7ba923467e8c132", "name": "Very large file: website/components/debug-wizard/DebugWizard.tsx (1998 lines)", "shortDescription": {"text": "Very large file: website/components/debug-wizard/DebugWizard.tsx (1998 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-128709692d6a4c2d", "name": "Very large file: website/public/framework-docs/assets/javascripts/lunr/wordcut.js (6707 lines)", "shortDescription": {"text": "Very large file: website/public/framework-docs/assets/javascripts/lunr/wordcut.js (6707 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-512a76c564e9f957", "name": "Very large file: agents/compliance_anticipation_agent.py (1423 lines)", "shortDescription": {"text": "Very large file: agents/compliance_anticipation_agent.py (1423 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-830123d451416970", "name": "Very large file: agents/book_production/learning.py (1373 lines)", "shortDescription": {"text": "Very large file: agents/book_production/learning.py (1373 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-b7006c646ebe2d63", "name": "Very large file: src/attune/workflows/agent_sdk_adapter.py (1615 lines)", "shortDescription": {"text": "Very large file: src/attune/workflows/agent_sdk_adapter.py (1615 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-447ab588d797eaeb", "name": "160 TODO/FIXME markers", "shortDescription": {"text": "160 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 6001 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 275 placeholder/mock markers across 109 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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc55229a7a3c078d", "name": "Agent authority lacks a verifier contract: .mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .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-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-bc15c74853dd18b9", "name": "Agent authority lacks a verifier contract: plugin/.mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/.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-d3fccb708d2a7b4b", "name": "Agent authority lacks a verifier contract: plugin/skills/refactor-plan/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/skills/refactor-plan/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-da1c56e0de091fef", "name": "Agent authority lacks a verifier contract: plugin/skills/bug-predict/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/skills/bug-predict/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-bc58f07086259131", "name": "Agent authority lacks a verifier contract: plugin/skills/doc-gen/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/skills/doc-gen/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-38f208db2849208e", "name": "Agent instruction/config may expose a secret: plugin/skills/memory-and-context/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: plugin/skills/memory-and-context/SKILL.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-4782adb1113d46f0", "name": "Agent authority lacks a verifier contract: plugin/skills/security-audit/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: plugin/skills/security-audit/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-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-8f11527df62387c7", "name": "Agent authority lacks a verifier contract: .claude/mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/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-c3ad97aa55a9d383", "name": "Agent instruction/config may expose a secret: .claude/lessons.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/lessons.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-d1a220ac1ac81dec", "name": "Agent authority lacks a verifier contract: .claude/rules/attune/vscode-extension-limitations.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/attune/vscode-extension-limitations.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-b01036fd0d006415", "name": "Agent instruction/config may expose a secret: .claude/rules/attune/advanced-optimization-plan.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/rules/attune/advanced-optimization-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-989f9689360f2e23", "name": "Agent authority lacks a verifier contract: .claude/rules/attune/documentation-patterns.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/attune/documentation-patterns.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-9c39462fb7f1b7c6", "name": "Agent instruction/config may expose a secret: .claude/rules/attune/coding-standards-index.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/rules/attune/coding-standards-index.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-c642dba1a2327baa", "name": "Agent authority lacks a verifier contract: .claude/skills/bulk/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bulk/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-874206fc9cfc4134", "name": "Agent authority lacks a verifier contract: .claude/skills/agent/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/agent/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-7f79cc5f4c3c53f5", "name": "Agent authority lacks a verifier contract: .claude/skills/simplify/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/simplify/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-76b2079650c80a32", "name": "Agent authority lacks a verifier contract: .claude/skills/dev/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/dev/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-7a9ad47b188eae62", "name": "Agent authority lacks a verifier contract: .claude/skills/pipeline/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/pipeline/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-394afe7b39815fd3", "name": "Agent authority lacks a verifier contract: .claude/skills/workflows/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/workflows/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-f0d23cdfc16e693a", "name": "Agent authority lacks a verifier contract: .claude/skills/utilities/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/utilities/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-6cac32631535ff6a", "name": "Agent authority lacks a verifier contract: .claude/skills/plan/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/plan/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-f9a7eb5e4aee992d", "name": "Agent instruction/config may expose a secret: .claude/plans/feature-rag-code-grounding-2026-04-17.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/plans/feature-rag-code-grounding-2026-04-17.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-9a7838892177615f", "name": "Agent instruction/config may expose a secret: .claude/plans/feature-agent-sdk-0163-uplift-2026-04-19.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/plans/feature-agent-sdk-0163-uplift-2026-04-19.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-2d170799b1922350", "name": "Agent authority lacks a verifier contract: .claude/plans/code-review-comparison.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/plans/code-review-comparison.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-292f1307915e57f1", "name": "Agent instruction/config may expose a secret: .claude/plans/archive/2026-04-09-plan-b-phase1-testing/restore-runbook.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/plans/archive/2026-04-09-plan-b-phase1-testing/restore-runbook.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-1651b9b77c507b87", "name": "Commented-code block (13 lines) in tests/conftest.py:46", "shortDescription": {"text": "Commented-code block (13 lines) in tests/conftest.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-7004a080273b050c", "name": "Commented-code block (8 lines) in tests/security/test_secrets_detector_edge_paths.py:94", "shortDescription": {"text": "Commented-code block (8 lines) in tests/security/test_secrets_detector_edge_paths.py:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63347fd63548be4f", "name": "Commented-code block (5 lines) in tests/integration/test_critical_workflows_smoke.py:118", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_critical_workflows_smoke.py:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83fb4b928994e3d3", "name": "Commented-code block (8 lines) in tests/models/test_sonnet_opus_fallback.py:22", "shortDescription": {"text": "Commented-code block (8 lines) in tests/models/test_sonnet_opus_fallback.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3c13355ccd79dde", "name": "Legacy-named symbol `bug_legacy` in tests/unit/test_analyze_tier_patterns.py:413", "shortDescription": {"text": "Legacy-named symbol `bug_legacy` in tests/unit/test_analyze_tier_patterns.py:413"}, "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-e56cc12e3005630a", "name": "Legacy-named symbol `TestLoadWorkflowHistoryDeprecated` in tests/unit/test_coverage_batch17.py:79", "shortDescription": {"text": "Legacy-named symbol `TestLoadWorkflowHistoryDeprecated` in tests/unit/test_coverage_batch17.py:79"}, "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-ece25bae516a3dd8", "name": "Legacy-named symbol `test_dialog_choice_2_use_legacy` in tests/unit/test_coverage_batch7.py:1212", "shortDescription": {"text": "Legacy-named symbol `test_dialog_choice_2_use_legacy` in tests/unit/test_coverage_batch7.py:1212"}, "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-8ebe6df8fc9a00dd", "name": "Legacy-named symbol `test_remembered_choice_legacy` in tests/unit/test_workflow_migration.py:163", "shortDescription": {"text": "Legacy-named symbol `test_remembered_choice_legacy` in tests/unit/test_workflow_migration.py:163"}, "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-79259d8231fcb5d8", "name": "Legacy-named symbol `test_get_state_returns_copy` in tests/unit/help/test_session.py:69", "shortDescription": {"text": "Legacy-named symbol `test_get_state_returns_copy` in tests/unit/help/test_session.py:69"}, "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-1b991cf01a3e0853", "name": "Legacy-named symbol `TestExecuteWithFallbackLegacy` in tests/unit/models/test_resilient_executor_coverage.py:240", "shortDescription": {"text": "Legacy-named symbol `TestExecuteWithFallbackLegacy` in tests/unit/models/test_resilient_executor_coverage.py:240"}, "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-4d18607a7734d95d", "name": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_test_generation.py:18", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_test_generation.py: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-eda46cfb47ef871f", "name": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_performance.py:285", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_performance.py:285"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b83c2ddca563c7c6", "name": "Commented-code block (8 lines) in tests/unit/orchestration/test_composition_patterns.py:30", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/orchestration/test_composition_patterns.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-70504dde5b88c5fa", "name": "Commented-code block (6 lines) in tests/unit/ops/test_sweep_results_server_wiring.py:62", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_sweep_results_server_wiring.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-c468d37f24b0793a", "name": "Commented-code block (6 lines) in tests/unit/ops/test_telemetry_summary.py:21", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_telemetry_summary.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1ba775cb983907f", "name": "Commented-code block (5 lines) in tests/unit/ops/test_home.py:196", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_home.py:196"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15287905fcafc1ef", "name": "Commented-code block (11 lines) in tests/unit/ops/test_run_meta_runner_integration.py:201", "shortDescription": {"text": "Commented-code block (11 lines) in tests/unit/ops/test_run_meta_runner_integration.py:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-638b7379b3e8cb55", "name": "Commented-code block (7 lines) in tests/unit/ops/test_persistence_and_history.py:770", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/ops/test_persistence_and_history.py:770"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5398693c05d2a867", "name": "Legacy-named symbol `test_stale_when_last_modified_is_old` in tests/unit/ops/test_spec_lifecycle.py:209", "shortDescription": {"text": "Legacy-named symbol `test_stale_when_last_modified_is_old` in tests/unit/ops/test_spec_lifecycle.py:209"}, "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-d938f7d391766ab4", "name": "Commented-code block (5 lines) in tests/unit/ops/test_spec_lifecycle.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_spec_lifecycle.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74f6b09ba1dd074a", "name": "Commented-code block (8 lines) in tests/unit/ops/test_pending_writes_api.py:440", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/ops/test_pending_writes_api.py:440"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2215b7810e505c56", "name": "Commented-code block (5 lines) in tests/unit/ops/test_calibration_snapshot.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_calibration_snapshot.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1532652d77a0f5a", "name": "Commented-code block (5 lines) in tests/unit/ops/test_middleware.py:135", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_middleware.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-8750a8e961b20fe9", "name": "Commented-code block (5 lines) in tests/unit/ops/test_sweep_results_watcher.py:185", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_sweep_results_watcher.py:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77e0e40d5bb85e21", "name": "Commented-code block (5 lines) in tests/unit/ops/test_sessions_route_s3b.py:274", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_sessions_route_s3b.py:274"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c71b3482bf51e357", "name": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction.py:39", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction.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-692f11fdd52c5f61", "name": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction_snapshot.py:45", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction_snapshot.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32560c5dd4727e47", "name": "Commented-code block (5 lines) in tests/unit/ops/test_completion_candidates_routes.py:204", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_completion_candidates_routes.py:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e462ddf8a098d63d", "name": "Commented-code block (8 lines) in tests/unit/ops/test_specs_routes.py:500", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/ops/test_specs_routes.py:500"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fe873270b9ba20f", "name": "Commented-code block (10 lines) in tests/unit/ops/test_help_regen.py:29", "shortDescription": {"text": "Commented-code block (10 lines) in tests/unit/ops/test_help_regen.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8e554e251095948", "name": "Legacy-named symbol `wizard_v2` in tests/unit/test_generator/test_cli.py:803", "shortDescription": {"text": "Legacy-named symbol `wizard_v2` in tests/unit/test_generator/test_cli.py:803"}, "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-b357716c68a795ae", "name": "Legacy-named symbol `TestWorkflowResponseLegacy` in tests/unit/mcp/handlers/test_workflow_response.py:103", "shortDescription": {"text": "Legacy-named symbol `TestWorkflowResponseLegacy` in tests/unit/mcp/handlers/test_workflow_response.py:103"}, "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-b84e60cce0a511ef", "name": "Legacy-named symbol `test_output_schema_returns_copy` in tests/unit/curator/test_prompt_schema.py:71", "shortDescription": {"text": "Legacy-named symbol `test_output_schema_returns_copy` in tests/unit/curator/test_prompt_schema.py:71"}, "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-cad83397accb4048", "name": "Legacy-named symbol `env_backup` in tests/unit/agents/release/test_release_models.py:364", "shortDescription": {"text": "Legacy-named symbol `env_backup` in tests/unit/agents/release/test_release_models.py:364"}, "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-7ef292d0425fd545", "name": "Commented-code block (5 lines) in tests/unit/progressive/test_workflow.py:121", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/progressive/test_workflow.py:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb1bc9ba612d5213", "name": "Legacy-named symbol `analyzer_v1` in tests/unit/memory/test_short_term.py:183", "shortDescription": {"text": "Legacy-named symbol `analyzer_v1` in tests/unit/memory/test_short_term.py:183"}, "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-d1ec7cc0166e1e2c", "name": "Legacy-named symbol `test_pattern_v2` in tests/unit/memory/test_control_panel.py:62", "shortDescription": {"text": "Legacy-named symbol `test_pattern_v2` in tests/unit/memory/test_control_panel.py:62"}, "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-4e8ffb5d5b1a7f8d", "name": "Commented-code block (23 lines) in tests/unit/memory/test_long_term_methods.py:826", "shortDescription": {"text": "Commented-code block (23 lines) in tests/unit/memory/test_long_term_methods.py:826"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a021c105afb3b2a", "name": "Commented-code block (8 lines) in tests/unit/memory/test_pubsub_direct.py:144", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/memory/test_pubsub_direct.py:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98a3dc6c90a069df", "name": "Commented-code block (7 lines) in tests/unit/memory/test_redis_auto_detect.py:395", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/memory/test_redis_auto_detect.py:395"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33ce7105186dc788", "name": "Commented-code block (6 lines) in tests/unit/memory/test_redis_integration.py:282", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/memory/test_redis_integration.py:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e08f3c0a998778d2", "name": "Commented-code block (11 lines) in tests/unit/memory/test_long_term_security.py:595", "shortDescription": {"text": "Commented-code block (11 lines) in tests/unit/memory/test_long_term_security.py:595"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-431d354a97c2d0cd", "name": "Commented-code block (5 lines) in tests/unit/memory/test_cross_session.py:108", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/memory/test_cross_session.py:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-180bd15042edee56", "name": "Commented-code block (5 lines) in tests/unit/memory/test_redis_bootstrap.py:101", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/memory/test_redis_bootstrap.py:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-635cc4f63a4f0dba", "name": "Commented-code block (5 lines) in tests/unit/memory/short_term/test_queues.py:73", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/memory/short_term/test_queues.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e392e7b288ca89f0", "name": "Commented-code block (9 lines) in tests/unit/memory/short_term/test_conflicts.py:235", "shortDescription": {"text": "Commented-code block (9 lines) in tests/unit/memory/short_term/test_conflicts.py:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18d17643c743b2c5", "name": "Commented-code block (6 lines) in tests/unit/scanner/test_file_traversal.py:300", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/scanner/test_file_traversal.py:300"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cefe08c35592ae1", "name": "Commented-code block (7 lines) in tests/unit/hooks/test_session_continuity_io.py:234", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/hooks/test_session_continuity_io.py:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eae6b0b9bd2f5ef0", "name": "Commented-code block (6 lines) in tests/unit/hooks/test_worktree_path_guard.py:202", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/hooks/test_worktree_path_guard.py:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9dd2643b684bda78", "name": "Commented-code block (6 lines) in tests/unit/hooks/test_hook_scripts.py:332", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/hooks/test_hook_scripts.py:332"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa997217b5717a96", "name": "Commented-code block (6 lines) in tests/unit/workflows/test_orchestrated_health_check_comprehensive.py:761", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/workflows/test_orchestrated_health_check_comprehensive.py:761"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd273e90e85bdc5a", "name": "Legacy-named symbol `via_legacy` in tests/unit/workflows/test_orchestrated_health_check.py:786", "shortDescription": {"text": "Legacy-named symbol `via_legacy` in tests/unit/workflows/test_orchestrated_health_check.py:786"}, "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-5dd3e75ac6ed9102", "name": "Legacy-named symbol `test_load_cached_advisories_warns_when_cache_old` in tests/unit/workflows/test_dependency_check_aud", "shortDescription": {"text": "Legacy-named symbol `test_load_cached_advisories_warns_when_cache_old` in tests/unit/workflows/test_dependency_check_audit.py:62"}, "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-cdbd4798c3868584", "name": "Commented-code block (8 lines) in tests/unit/workflows/test_workflow_execution.py:616", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/workflows/test_workflow_execution.py:616"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-647a537a2c76b176", "name": "Legacy-named symbol `test_old` in tests/unit/workflows/test_test_maintenance.py:285", "shortDescription": {"text": "Legacy-named symbol `test_old` in tests/unit/workflows/test_test_maintenance.py:285"}, "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-a0635db0f2c6690c", "name": "Commented-code block (5 lines) in tests/unit/workflows/progressive/test_cost_telemetry.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/workflows/progressive/test_cost_telemetry.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-5ca86357b360b5f0", "name": "Legacy-named symbol `env_backup` in tests/unit/meta_workflows/test_llm_execution.py:457", "shortDescription": {"text": "Legacy-named symbol `env_backup` in tests/unit/meta_workflows/test_llm_execution.py:457"}, "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-691c033387cd3cf4", "name": "Commented-code block (6 lines) in tests/scripts/test_audit_worktrees.py:29", "shortDescription": {"text": "Commented-code block (6 lines) in tests/scripts/test_audit_worktrees.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8047de033f7d3e0", "name": "Legacy-named symbol `_also_unused` in tests/golden_files/simplify/over_engineered/input.py:96", "shortDescription": {"text": "Legacy-named symbol `_also_unused` in tests/golden_files/simplify/over_engineered/input.py:96"}, "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-28fae9e4ca0ced32", "name": "Commented-code block (6 lines) in tests/memory/test_unified_memory.py:245", "shortDescription": {"text": "Commented-code block (6 lines) in tests/memory/test_unified_memory.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-2795048447300f9a", "name": "Legacy-named symbol `env_backup` in tests/memory/test_redis_config.py:188", "shortDescription": {"text": "Legacy-named symbol `env_backup` in tests/memory/test_redis_config.py:188"}, "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-6a0bd65f10403135", "name": "Legacy-named symbol `test_get_platform_info_returns_copy` in tests/core/test_platform_utils.py:402", "shortDescription": {"text": "Legacy-named symbol `test_get_platform_info_returns_copy` in tests/core/test_platform_utils.py:402"}, "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-bfa35e96177b0260", "name": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_base.py:345", "shortDescription": {"text": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_base.py:345"}, "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-2f20e49904094846", "name": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_native_adapter.py:232", "shortDescription": {"text": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_native_adapter.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-99f1bc1005e11d96", "name": "Legacy-named symbol `agent1_copy` in tests/agents_md/test_loader.py:152", "shortDescription": {"text": "Legacy-named symbol `agent1_copy` in tests/agents_md/test_loader.py:152"}, "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-c055534f1ca256ef", "name": "Commented-code block (5 lines) in plugin/hooks/_state.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in plugin/hooks/_state.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-8c4554eebf98fbdf", "name": "Commented-code block (6 lines) in plugin/hooks/session_stash.py:73", "shortDescription": {"text": "Commented-code block (6 lines) in plugin/hooks/session_stash.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-106143b807ec9e17", "name": "Commented-code block (7 lines) in scripts/score_test_quality.py:50", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/score_test_quality.py:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7ea715564d09275", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_2_setup.py:357", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_2_setup.py:357"}, "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-63a4292369654133", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/batch10_workflow.py:64", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/batch10_workflow.py:64"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-556178837bc06db7", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/qa_post_release.py:64", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/qa_post_release.py:64"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-9623f4b241e72118", "name": "Stub function `check_core_imports` (body is just `pass`/`return`) \u2014 scripts/qa_post_release.py:79", "shortDescription": {"text": "Stub function `check_core_imports` (body is just `pass`/`return`) \u2014 scripts/qa_post_release.py:79"}, "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-8d689c1c7380e15f", "name": "Commented-code block (5 lines) in scripts/build_session_fixtures.py:107", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build_session_fixtures.py:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12d68edf642a0d8c", "name": "Commented-code block (5 lines) in scripts/fix_mkdocs_paths.py:27", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/fix_mkdocs_paths.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed9e2b9e3d39d073", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_autonomous_test_gen.py:29", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_autonomous_test_gen.py:29"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-c5b01bbb67605ccf", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/run_tests.py:50", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/run_tests.py:50"}, "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-acb71cc213552004", "name": "Legacy-named symbol `no_backup` in scripts/migrate_workflow_history.py:188", "shortDescription": {"text": "Legacy-named symbol `no_backup` in scripts/migrate_workflow_history.py:188"}, "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-2c88fee7f90eca89", "name": "Commented-code block (5 lines) in scripts/audit_docs_wiring.py:207", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/audit_docs_wiring.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-ad5000b2f9db6ccd", "name": "Commented-code block (7 lines) in website/test/capabilities-accuracy.test.ts:16", "shortDescription": {"text": "Commented-code block (7 lines) in website/test/capabilities-accuracy.test.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8dee6a83271587b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/SBARWizard.tsx:240", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/SBARWizard.tsx:240"}, "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-63e034ead8115f67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/debug-wizard/DebugWizard.tsx:533", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/debug-wizard/DebugWizard.tsx:533"}, "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-4802e4c163a3951c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/telemetry/hooks/useTelemetryData.ts:126", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/telemetry/hooks/useTelemetryData.ts:126"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e024c32ff09f1600", "name": "Commented-code block (6 lines) in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:627", "shortDescription": {"text": "Commented-code block (6 lines) in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:627"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87986494840ddf66", "name": "Commented-code block (5 lines) in agents/compliance_anticipation_agent.py:118", "shortDescription": {"text": "Commented-code block (5 lines) in agents/compliance_anticipation_agent.py:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef2f0d140faea0fb", "name": "Commented-code block (6 lines) in agents/book_production/base.py:441", "shortDescription": {"text": "Commented-code block (6 lines) in agents/book_production/base.py:441"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe88048419731098", "name": "`fetch()` without try/.catch or AbortSignal \u2014 attune-ai-dev/help/search.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 attune-ai-dev/help/search.js:7"}, "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-cd6c1c27c06912ce", "name": "Legacy-named symbol `analysis_v1` in examples/redis_exploration.py:104", "shortDescription": {"text": "Legacy-named symbol `analysis_v1` in examples/redis_exploration.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-0f7da7b2a13ce231", "name": "Blocking `time.sleep(...)` inside `async def run_stage` \u2014 examples/approval_gates_demo.py:258", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def run_stage` \u2014 examples/approval_gates_demo.py:258"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6fcf8cb34d41db74", "name": "Commented-code block (5 lines) in examples/multi_llm_usage.py:196", "shortDescription": {"text": "Commented-code block (5 lines) in examples/multi_llm_usage.py:196"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e5e7bfcffa0f86d", "name": "Commented-code block (5 lines) in attune_redis/tests/conftest.py:103", "shortDescription": {"text": "Commented-code block (5 lines) in attune_redis/tests/conftest.py: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-4d5eb370d02c2920", "name": "Legacy-named symbol `TestWorkingMemoryReadIsNotDeprecated` in attune_redis/tests/test_memory.py:147", "shortDescription": {"text": "Legacy-named symbol `TestWorkingMemoryReadIsNotDeprecated` in attune_redis/tests/test_memory.py:147"}, "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-523d8136f3c7c28a", "name": "Legacy-named symbol `analysis_v1` in src/attune/redis_memory_storage.py:158", "shortDescription": {"text": "Legacy-named symbol `analysis_v1` in src/attune/redis_memory_storage.py:158"}, "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-b20790297add3367", "name": "Commented-code block (6 lines) in src/attune/cost_tracker.py:48", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/cost_tracker.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89fd06db90743236", "name": "Commented-code block (5 lines) in src/attune/models/auth_strategy.py:147", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/models/auth_strategy.py:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c0bc82a5e92c74e", "name": "Commented-code block (5 lines) in src/attune/spec/state.py:31", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/spec/state.py:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31f537ffe873f5f0", "name": "Legacy-named symbol `attune_config_legacy` in src/attune/config/__init__.py:30", "shortDescription": {"text": "Legacy-named symbol `attune_config_legacy` in src/attune/config/__init__.py:30"}, "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-a886ffaaa38e7e85", "name": "Commented-code block (7 lines) in src/attune/ops/anthropic_cost.py:201", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/ops/anthropic_cost.py:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6be762f75875a5f8", "name": "Commented-code block (5 lines) in src/attune/ops/help_data.py:476", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/help_data.py:476"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9082dd44778fd3b5", "name": "Commented-code block (5 lines) in src/attune/ops/config.py:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/config.py: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-f8bfbaa4cdeb8845", "name": "Commented-code block (6 lines) in src/attune/ops/run_meta_stdout.py:60", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/ops/run_meta_stdout.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4054fd0fa765c5de", "name": "Commented-code block (5 lines) in src/attune/ops/cli.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/cli.py:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d28b9e3a1e0b9fef", "name": "Commented-code block (6 lines) in src/attune/ops/server.py:145", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/ops/server.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f683ddca7b0a8e4", "name": "Commented-code block (5 lines) in src/attune/ops/runner.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/runner.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-62025adef5a9feb6", "name": "Commented-code block (5 lines) in src/attune/ops/data.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/data.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0809c9a7837161e2", "name": "Commented-code block (5 lines) in src/attune/ops/session_redaction.py:100", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/session_redaction.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-eabb9c66d5591ac9", "name": "Commented-code block (10 lines) in src/attune/ops/workflow_concern.py:60", "shortDescription": {"text": "Commented-code block (10 lines) in src/attune/ops/workflow_concern.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d96c4a7b04c1411", "name": "Commented-code block (5 lines) in src/attune/ops/static/js/specs.js:157", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/specs.js:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39345ebbcc9c6746", "name": "Commented-code block (5 lines) in src/attune/ops/static/js/completion_candidates.js:133", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/completion_candidates.js:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa7bae60950a1bf5", "name": "Commented-code block (5 lines) in src/attune/ops/static/js/run_view.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/run_view.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-834a6703f0f8827d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/run_view.js:324", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/run_view.js:324"}, "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-3b9f7f8aaf150d04", "name": "Commented-code block (7 lines) in src/attune/ops/static/js/specs_refined.js:79", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/ops/static/js/specs_refined.js:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-179259f73f5208d8", "name": "Commented-code block (6 lines) in src/attune/ops/static/js/client_token.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/ops/static/js/client_token.js: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-89fa685ef2e42728", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/client_token.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/client_token.js:5"}, "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-0124b859c27fe15f", "name": "Commented-code block (7 lines) in src/attune/ops/static/js/workflows_kebab.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/ops/static/js/workflows_kebab.js: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-8e4aae75f7e17205", "name": "Commented-code block (5 lines) in src/attune/ops/static/js/runner.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/runner.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eef0a47382f602cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/runner.js:532", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/runner.js:532"}, "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-a78f087950cab7df", "name": "Commented-code block (5 lines) in src/attune/ops/routes/specs.py:111", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/ops/routes/specs.py:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d043bfdb09dd8bb", "name": "Commented-code block (6 lines) in src/attune/ops/routes/dashboard.py:34", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/ops/routes/dashboard.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eea9a6d187433f9b", "name": "Commented-code block (9 lines) in src/attune/ops/routes/sessions.py:122", "shortDescription": {"text": "Commented-code block (9 lines) in src/attune/ops/routes/sessions.py:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dee5a7a1f6eee651", "name": "Blocking `httpx.get(...)` inside `async def call_api` \u2014 src/attune/resilience/retry.py:68", "shortDescription": {"text": "Blocking `httpx.get(...)` inside `async def call_api` \u2014 src/attune/resilience/retry.py:68"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `httpx.get(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa000dd8c0eeee34", "name": "Commented-code block (6 lines) in src/attune/memory/features.py:238", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/memory/features.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-aa6b9c1a34270e29", "name": "Legacy-named symbol `analysis_v1` in src/attune/memory/short_term/working.py:124", "shortDescription": {"text": "Legacy-named symbol `analysis_v1` in src/attune/memory/short_term/working.py:124"}, "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-be9d950f291fb786", "name": "Commented-code block (6 lines) in src/attune/gates/spend_gate.py:139", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/gates/spend_gate.py: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-b95e73dde2d74ef8", "name": "Legacy-named symbol `days_old` in src/attune/patterns/contextual.py:227", "shortDescription": {"text": "Legacy-named symbol `days_old` in src/attune/patterns/contextual.py:227"}, "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-181930e77b89b2aa", "name": "Commented-code block (5 lines) in src/attune/workflows/execution_mixin.py:571", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/execution_mixin.py:571"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9de4222b99f449ff", "name": "Commented-code block (7 lines) in src/attune/workflows/code_review.py:66", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/workflows/code_review.py:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8f37e722ac3714d", "name": "Commented-code block (15 lines) in src/attune/workflows/__init__.py:179", "shortDescription": {"text": "Commented-code block (15 lines) in src/attune/workflows/__init__.py:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dddd9dd9a98a588f", "name": "Commented-code block (7 lines) in src/attune/workflows/config.py:537", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/workflows/config.py:537"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-029486823d3c6a10", "name": "Commented-code block (5 lines) in src/attune/workflows/executor_mixin.py:200", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/executor_mixin.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-54dc7430876bb7cb", "name": "Commented-code block (5 lines) in src/attune/workflows/bug_predict_patterns.py:89", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/bug_predict_patterns.py:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19e2b0be13749dbe", "name": "Commented-code block (6 lines) in src/attune/workflows/security_audit.py:194", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/workflows/security_audit.py:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fb2774a401e77e4", "name": "Commented-code block (8 lines) in src/attune/workflows/bug_predict.py:197", "shortDescription": {"text": "Commented-code block (8 lines) in src/attune/workflows/bug_predict.py:197"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c4cc421f438b008", "name": "Commented-code block (5 lines) in src/attune/workflows/parsing_mixin.py:134", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/parsing_mixin.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-06a0fd7fc7f4529a", "name": "Commented-code block (6 lines) in src/attune/workflows/rag_code_gen.py:45", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/workflows/rag_code_gen.py:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0500feb9c5d90380", "name": "Legacy-named symbol `is_deprecated` in src/attune/workflows/migration.py:355", "shortDescription": {"text": "Legacy-named symbol `is_deprecated` in src/attune/workflows/migration.py:355"}, "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-76b2e3301300ffc8", "name": "Commented-code block (5 lines) in src/attune/workflows/agent_sdk_adapter.py:216", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/agent_sdk_adapter.py:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eff5717e35e5d760", "name": "Network/subprocess call without timeout or try/except \u2014 src/attune/workflows/agent_sdk_adapter.py:770", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/workflows/agent_sdk_adapter.py:770"}, "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-9bf61144d3ac29d7", "name": "Commented-code block (8 lines) in src/attune/workflows/perf_audit.py:183", "shortDescription": {"text": "Commented-code block (8 lines) in src/attune/workflows/perf_audit.py:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97d424eee753203c", "name": "Commented-code block (7 lines) in src/attune/workflows/progressive/__init__.py:21", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/workflows/progressive/__init__.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38f3e1dac2fb40ee", "name": "Commented-code block (6 lines) in src/attune/workflows/discovery_sweep/workflow.py:545", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/workflows/discovery_sweep/workflow.py:545"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5631888077b2ccdf", "name": "Commented-code block (5 lines) in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:306", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:306"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-022a9d2348f01d31", "name": "Commented-code block (6 lines) in src/attune/project_index/file_analysis.py:216", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/project_index/file_analysis.py:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd58dc3b3b2e1c95", "name": "Network/subprocess call without timeout or try/except \u2014 src/attune/project_index/index.py:304", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/project_index/index.py:304"}, "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-41a7bb5a1c1695ae", "name": "Network/subprocess call without timeout or try/except \u2014 src/attune/prompts/examples.py:26", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/prompts/examples.py:26"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-0ce1fb71634f0e36", "name": "Commented-code block (5 lines) in src/attune/wizards/builtin/security_wizard.py:189", "shortDescription": {"text": "Commented-code block (5 lines) in src/attune/wizards/builtin/security_wizard.py:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-411f9e0d73ca1618", "name": "Commented-code block (6 lines) in src/attune/meta_workflows/llm_execution.py:379", "shortDescription": {"text": "Commented-code block (6 lines) in src/attune/meta_workflows/llm_execution.py:379"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-444de7e4d29c2884", "name": "Commented-code block (7 lines) in src/attune/telemetry/usage_tracker.py:106", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/telemetry/usage_tracker.py:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5f2c2c165649853", "name": "Commented-code block (7 lines) in src/attune/cli_commands/workflow_commands.py:147", "shortDescription": {"text": "Commented-code block (7 lines) in src/attune/cli_commands/workflow_commands.py:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcdd1307187b61cc", "name": "98 env vars used in code but missing from .env.example", "shortDescription": {"text": "98 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLOWED_ORIGINS`, `AMS_BASE_URL`, `AMS_NAMESPACE`, `ANTHROPIC_ADMIN_API_KEY`, `ANTHROPIC_COST_CACHE_TTL_SECONDS`, `APPDATA`, `ATTUNE_AGENT_MODEL_DEFAULT`, `ATTUNE_AI_CHARS_PER_TOKEN` + 90 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:\nplugin/hooks/_sdk_gate.py:is_sdk_subprocess, src/attune/hooks/scripts/_sdk_gate.py:is_sdk_subprocess\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:\nscripts/simple_todo_impl.py:find_test_files, scripts/run_test_todo_implementation.py:find_test_files_with_todos, scripts/run_todo_implementation_workflow.py:find_test_files_with_todos\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:\nexamples/coordinated_workflow_demo.py:run_stage, examples/coordinated_workflow_demo.py:run_stage, examples/coordinated_workflow_demo.py:run_stage, examples/coordinated_workflow_demo.py:run_stage\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-112ba8168c1a4126", "name": "FastAPI POST `run_inspection` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:42", "shortDescription": {"text": "FastAPI POST `run_inspection` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:42"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b5549f039ad296ad", "name": "FastAPI POST `quick_scan` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:107", "shortDescription": {"text": "FastAPI POST `quick_scan` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:107"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8182f5f5a8920804", "name": "FastAPI POST `refresh_token` without auth dependency \u2014 backend/api/auth.py:140", "shortDescription": {"text": "FastAPI POST `refresh_token` without auth dependency \u2014 backend/api/auth.py:140"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb02de644003c7b6", "name": "FastAPI POST `validate_license` without auth dependency \u2014 backend/api/auth.py:184", "shortDescription": {"text": "FastAPI POST `validate_license` without auth dependency \u2014 backend/api/auth.py:184"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04a9d46d256b33ee", "name": "FastAPI PUT `update_profile` without auth dependency \u2014 backend/api/users.py:44", "shortDescription": {"text": "FastAPI PUT `update_profile` without auth dependency \u2014 backend/api/users.py:44"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fce50d5bcb2f2df", "name": "FastAPI DELETE `delete_account` without auth dependency \u2014 backend/api/users.py:89", "shortDescription": {"text": "FastAPI DELETE `delete_account` without auth dependency \u2014 backend/api/users.py:89"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca437907c941eb04", "name": "FastAPI POST `purchase_subscription` without auth dependency \u2014 backend/api/subscriptions.py:55", "shortDescription": {"text": "FastAPI POST `purchase_subscription` without auth dependency \u2014 backend/api/subscriptions.py:55"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7510fb22ab47190", "name": "FastAPI POST `add_team_member` without auth dependency \u2014 backend/api/subscriptions.py:110", "shortDescription": {"text": "FastAPI POST `add_team_member` without auth dependency \u2014 backend/api/subscriptions.py:110"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-022b44b9afd87e81", "name": "FastAPI DELETE `remove_team_member` without auth dependency \u2014 backend/api/subscriptions.py:132", "shortDescription": {"text": "FastAPI DELETE `remove_team_member` without auth dependency \u2014 backend/api/subscriptions.py:132"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4893bd8b7b3479c", "name": "FastAPI POST `deactivate_license` without auth dependency \u2014 backend/api/subscriptions.py:178", "shortDescription": {"text": "FastAPI POST `deactivate_license` without auth dependency \u2014 backend/api/subscriptions.py:178"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17ccacdcb5e9ec6f", "name": "FastAPI POST `create_session` without auth dependency \u2014 backend/api/analysis.py:110", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 backend/api/analysis.py:110"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbde5ca2596b31ab", "name": "FastAPI POST `analyze_project` without auth dependency \u2014 backend/api/analysis.py:162", "shortDescription": {"text": "FastAPI POST `analyze_project` without auth dependency \u2014 backend/api/analysis.py:162"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82f99d8b33e3d5c5", "name": "FastAPI POST `analyze_file` without auth dependency \u2014 backend/api/analysis.py:193", "shortDescription": {"text": "FastAPI POST `analyze_file` without auth dependency \u2014 backend/api/analysis.py:193"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f645cadc6159c219", "name": "FastAPI DELETE `delete_session` without auth dependency \u2014 backend/api/analysis.py:325", "shortDescription": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 backend/api/analysis.py:325"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb3ea46316680aa6", "name": "Dangling fetch: GET /help/search-index.json (attune-ai-dev/help/search.js:7)", "shortDescription": {"text": "Dangling fetch: GET /help/search-index.json (attune-ai-dev/help/search.js:7)"}, "fullDescription": {"text": "`attune-ai-dev/help/search.js:7` calls `GET /help/search-index.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/help/search-index.json`\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-f3727f6b8d1145ee", "name": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStarsBadge.tsx:18)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStarsBadge.tsx:18)"}, "fullDescription": {"text": "`website/components/GitHubStarsBadge.tsx:18` calls `GET https://api.github.com/repos/${repo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89baa4b91bf60196", "name": "Dangling fetch: POST /api/wizards/invoke (website/components/WizardPlayground.tsx:65)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/invoke (website/components/WizardPlayground.tsx:65)"}, "fullDescription": {"text": "`website/components/WizardPlayground.tsx:65` calls `POST /api/wizards/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/invoke`\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-f80c34a94374da18", "name": "Dangling fetch: POST /api/wizards/sbar/start (website/components/SBARWizard.tsx:179)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/sbar/start (website/components/SBARWizard.tsx:179)"}, "fullDescription": {"text": "`website/components/SBARWizard.tsx:179` calls `POST /api/wizards/sbar/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/sbar/start`\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-f5b2332e48ae53be", "name": "Dangling fetch: POST /api/wizards/sbar/enhance (website/components/SBARWizard.tsx:240)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/sbar/enhance (website/components/SBARWizard.tsx:240)"}, "fullDescription": {"text": "`website/components/SBARWizard.tsx:240` calls `POST /api/wizards/sbar/enhance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/sbar/enhance`\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-500969b63f4f124a", "name": "Dangling fetch: POST /api/wizards/sbar/priority (website/components/SBARWizard.tsx:278)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/sbar/priority (website/components/SBARWizard.tsx:278)"}, "fullDescription": {"text": "`website/components/SBARWizard.tsx:278` calls `POST /api/wizards/sbar/priority` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/sbar/priority`\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-ba73cfe04cd7506c", "name": "Dangling fetch: POST /api/wizards/sbar/medications (website/components/SBARWizard.tsx:306)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/sbar/medications (website/components/SBARWizard.tsx:306)"}, "fullDescription": {"text": "`website/components/SBARWizard.tsx:306` calls `POST /api/wizards/sbar/medications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/sbar/medications`\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-500a620d82904975", "name": "Dangling fetch: POST /api/wizards/sbar/generate (website/components/SBARWizard.tsx:353)", "shortDescription": {"text": "Dangling fetch: POST /api/wizards/sbar/generate (website/components/SBARWizard.tsx:353)"}, "fullDescription": {"text": "`website/components/SBARWizard.tsx:353` calls `POST /api/wizards/sbar/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/wizards/sbar/generate`\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-16691151a018df9a", "name": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStats.tsx:26)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStats.tsx:26)"}, "fullDescription": {"text": "`website/components/GitHubStats.tsx:26` calls `GET https://api.github.com/repos/${repo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a0a2212a287d79d", "name": "Dangling fetch: GET /api/costs?limit=10&days=7 (website/components/CostSavingsCard.tsx:65)", "shortDescription": {"text": "Dangling fetch: GET /api/costs?limit=10&days=7 (website/components/CostSavingsCard.tsx:65)"}, "fullDescription": {"text": "`website/components/CostSavingsCard.tsx:65` calls `GET /api/costs?limit=10&days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/costs`\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-850beb957c701d81", "name": "Dangling fetch: POST /api/newsletter (website/components/NewsletterSignup.tsx:20)", "shortDescription": {"text": "Dangling fetch: POST /api/newsletter (website/components/NewsletterSignup.tsx:20)"}, "fullDescription": {"text": "`website/components/NewsletterSignup.tsx:20` calls `POST /api/newsletter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/newsletter`\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-4b4266c5b2102bad", "name": "Dangling fetch: POST /api/newsletter (website/components/LeadMagnet.tsx:16)", "shortDescription": {"text": "Dangling fetch: POST /api/newsletter (website/components/LeadMagnet.tsx:16)"}, "fullDescription": {"text": "`website/components/LeadMagnet.tsx:16` calls `POST /api/newsletter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/newsletter`\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-92036bae0085a113", "name": "Dangling fetch: POST /api/debug-wizard/analyze (website/components/debug-wizard/DebugWizard.tsx:533)", "shortDescription": {"text": "Dangling fetch: POST /api/debug-wizard/analyze (website/components/debug-wizard/DebugWizard.tsx:533)"}, "fullDescription": {"text": "`website/components/debug-wizard/DebugWizard.tsx:533` calls `POST /api/debug-wizard/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/debug-wizard/analyze`\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-9c971eeab496a71b", "name": "Dangling fetch: POST /api/contact (website/app/contact/page.tsx:95)", "shortDescription": {"text": "Dangling fetch: POST /api/contact (website/app/contact/page.tsx:95)"}, "fullDescription": {"text": "`website/app/contact/page.tsx:95` calls `POST /api/contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contact`\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-28385a777dda3904", "name": "Dangling fetch: POST https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members (website/lib/email/mailchimp.", "shortDescription": {"text": "Dangling fetch: POST https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members (website/lib/email/mailchimp.ts:29)"}, "fullDescription": {"text": "`website/lib/email/mailchimp.ts:29` calls `POST https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>.api.mailchimp.com/3.0/lists/<p>/members`\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-46d1b833a6839928", "name": "Dangling fetch: GET https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/emai", "shortDescription": {"text": "Dangling fetch: GET https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/email/mailchimp.ts:98)"}, "fullDescription": {"text": "`website/lib/email/mailchimp.ts:98` calls `GET https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>.api.mailchimp.com/3.0/lists/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0aef29bfd36491f", "name": "Dangling fetch: PATCH https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/em", "shortDescription": {"text": "Dangling fetch: PATCH https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/email/mailchimp.ts:140)"}, "fullDescription": {"text": "`website/lib/email/mailchimp.ts:140` calls `PATCH https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>.api.mailchimp.com/3.0/lists/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`deployments/wizards-backend/app.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c236625afb6a8cb", "name": "Unused endpoint: GET /ready", "shortDescription": {"text": "Unused endpoint: GET /ready"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/health.py` declares `GET /ready` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6d412ba6647f6cc", "name": "Unused endpoint: GET /live", "shortDescription": {"text": "Unused endpoint: GET /live"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/health.py` declares `GET /live` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69a693dfc33637f4", "name": "Unused endpoint: POST /run", "shortDescription": {"text": "Unused endpoint: POST /run"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/inspect.py` declares `POST /run` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a6a03711f3fb9b0", "name": "Unused endpoint: POST /quick", "shortDescription": {"text": "Unused endpoint: POST /quick"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/inspect.py` declares `POST /quick` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9558568720c343c6", "name": "Unused endpoint: GET /formats", "shortDescription": {"text": "Unused endpoint: GET /formats"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/inspect.py` declares `GET /formats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-157604b431902532", "name": "Unused endpoint: GET /demo", "shortDescription": {"text": "Unused endpoint: GET /demo"}, "fullDescription": {"text": "`deployments/wizards-backend/routers/inspect.py` declares `GET /demo` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8131430b3d775c7c", "name": "Unused endpoint: POST /{{wizard_id}}/enhance", "shortDescription": {"text": "Unused endpoint: POST /{{wizard_id}}/enhance"}, "fullDescription": {"text": "`patterns/behavior.py` declares `POST /{{wizard_id}}/enhance` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-caf9a9d83a66d6f0", "name": "Unused endpoint: POST /{{wizard_id}}/save", "shortDescription": {"text": "Unused endpoint: POST /{{wizard_id}}/save"}, "fullDescription": {"text": "`patterns/validation.py` declares `POST /{{wizard_id}}/save` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a13a7e97aeacf55f", "name": "Unused endpoint: POST /start", "shortDescription": {"text": "Unused endpoint: POST /start"}, "fullDescription": {"text": "`patterns/empathy.py` declares `POST /start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b651ca796146c431", "name": "Unused endpoint: POST /{{wizard_id}}/preview", "shortDescription": {"text": "Unused endpoint: POST /{{wizard_id}}/preview"}, "fullDescription": {"text": "`patterns/empathy.py` declares `POST /{{wizard_id}}/preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cd256c2109bd2f5", "name": "Unused endpoint: POST /{{wizard_id}}/step", "shortDescription": {"text": "Unused endpoint: POST /{{wizard_id}}/step"}, "fullDescription": {"text": "`patterns/structural.py` declares `POST /{{wizard_id}}/step` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7fdeef0c3e252a94", "name": "Unused endpoint: GET /{{wizard_id}}/report", "shortDescription": {"text": "Unused endpoint: GET /{{wizard_id}}/report"}, "fullDescription": {"text": "`patterns/structural.py` declares `GET /{{wizard_id}}/report` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`backend/main.py` declares `GET /api/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc1afb9c1261643f", "name": "Unused endpoint: GET /api/info", "shortDescription": {"text": "Unused endpoint: GET /api/info"}, "fullDescription": {"text": "`backend/main.py` declares `GET /api/info` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-618721b912bad1c2", "name": "Unused endpoint: POST /login", "shortDescription": {"text": "Unused endpoint: POST /login"}, "fullDescription": {"text": "`backend/api/auth.py` declares `POST /login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-304b6f2b403d93f7", "name": "Unused endpoint: POST /register", "shortDescription": {"text": "Unused endpoint: POST /register"}, "fullDescription": {"text": "`backend/api/auth.py` declares `POST /register` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ce17d6b092a81ca", "name": "Unused endpoint: POST /refresh", "shortDescription": {"text": "Unused endpoint: POST /refresh"}, "fullDescription": {"text": "`backend/api/auth.py` declares `POST /refresh` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd1dc91abf32142d", "name": "Unused endpoint: GET /me", "shortDescription": {"text": "Unused endpoint: GET /me"}, "fullDescription": {"text": "`backend/api/auth.py` declares `GET /me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6ea6eb6f41a220c", "name": "Unused endpoint: POST /validate-license", "shortDescription": {"text": "Unused endpoint: POST /validate-license"}, "fullDescription": {"text": "`backend/api/auth.py` declares `POST /validate-license` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2595b39638e5c045", "name": "Unused endpoint: GET /profile", "shortDescription": {"text": "Unused endpoint: GET /profile"}, "fullDescription": {"text": "`backend/api/users.py` declares `GET /profile` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-911492554a68d0c1", "name": "Unused endpoint: PUT /profile", "shortDescription": {"text": "Unused endpoint: PUT /profile"}, "fullDescription": {"text": "`backend/api/users.py` declares `PUT /profile` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d467299d5c174fc0", "name": "Unused endpoint: GET /usage", "shortDescription": {"text": "Unused endpoint: GET /usage"}, "fullDescription": {"text": "`backend/api/users.py` declares `GET /usage` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4186216041d91fb", "name": "Unused endpoint: DELETE /account", "shortDescription": {"text": "Unused endpoint: DELETE /account"}, "fullDescription": {"text": "`backend/api/users.py` declares `DELETE /account` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5659d98a2deb346b", "name": "Unused endpoint: POST /purchase", "shortDescription": {"text": "Unused endpoint: POST /purchase"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `POST /purchase` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-35d941f552ad676f", "name": "Unused endpoint: GET /team", "shortDescription": {"text": "Unused endpoint: GET /team"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `GET /team` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1ebede960a11644", "name": "Unused endpoint: POST /team/members", "shortDescription": {"text": "Unused endpoint: POST /team/members"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `POST /team/members` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df7440e62331adec", "name": "Unused endpoint: DELETE /team/members/{user_id}", "shortDescription": {"text": "Unused endpoint: DELETE /team/members/{user_id}"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `DELETE /team/members/{user_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-35579901f60cc8d1", "name": "Unused endpoint: GET /licenses", "shortDescription": {"text": "Unused endpoint: GET /licenses"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `GET /licenses` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70d734db402f6014", "name": "Unused endpoint: POST /licenses/{license_id}/deactivate", "shortDescription": {"text": "Unused endpoint: POST /licenses/{license_id}/deactivate"}, "fullDescription": {"text": "`backend/api/subscriptions.py` declares `POST /licenses/{license_id}/deactivate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4748872cb583c0fb", "name": "Unused endpoint: POST /session", "shortDescription": {"text": "Unused endpoint: POST /session"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `POST /session` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08869e94d02e3c11", "name": "Unused endpoint: GET /session/{session_id}", "shortDescription": {"text": "Unused endpoint: GET /session/{session_id}"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `GET /session/{session_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a59d33cad2f6014b", "name": "Unused endpoint: POST /project", "shortDescription": {"text": "Unused endpoint: POST /project"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `POST /project` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d736ebc912946c9f", "name": "Unused endpoint: POST /file", "shortDescription": {"text": "Unused endpoint: POST /file"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `POST /file` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afc064028ae39ea9", "name": "Unused endpoint: GET /history", "shortDescription": {"text": "Unused endpoint: GET /history"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `GET /history` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c5074f0d1d9a0b4", "name": "Unused endpoint: DELETE /session/{session_id}", "shortDescription": {"text": "Unused endpoint: DELETE /session/{session_id}"}, "fullDescription": {"text": "`backend/api/analysis.py` declares `DELETE /session/{session_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d088674305ba9d9", "name": "Unused endpoint: GET /api/wizards/{wizard_id}", "shortDescription": {"text": "Unused endpoint: GET /api/wizards/{wizard_id}"}, "fullDescription": {"text": "`backend/api/wizards.py` declares `GET /api/wizards/{wizard_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-430041c1567e0ed3", "name": "Unused endpoint: GET /completion-candidates", "shortDescription": {"text": "Unused endpoint: GET /completion-candidates"}, "fullDescription": {"text": "`src/attune/ops/routes/specs.py` declares `GET /completion-candidates` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56608a3bd032f5f4", "name": "Unused endpoint: GET /{slug}", "shortDescription": {"text": "Unused endpoint: GET /{slug}"}, "fullDescription": {"text": "`src/attune/ops/routes/specs.py` declares `GET /{slug}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b0cdefdeeee4203", "name": "Unused endpoint: PUT /{slug}/{phase}/status", "shortDescription": {"text": "Unused endpoint: PUT /{slug}/{phase}/status"}, "fullDescription": {"text": "`src/attune/ops/routes/specs.py` declares `PUT /{slug}/{phase}/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-505394a683449279", "name": "Unused endpoint: POST /{slug}/completion-candidates/dismiss", "shortDescription": {"text": "Unused endpoint: POST /{slug}/completion-candidates/dismiss"}, "fullDescription": {"text": "`src/attune/ops/routes/specs.py` declares `POST /{slug}/completion-candidates/dismiss` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8dbb92ac42125edf", "name": "Unused endpoint: GET /workflows", "shortDescription": {"text": "Unused endpoint: GET /workflows"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /workflows` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-169dbaef5902cd9c", "name": "Unused endpoint: GET /help", "shortDescription": {"text": "Unused endpoint: GET /help"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /help` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8165ad533486cab9", "name": "Unused endpoint: GET /help/search", "shortDescription": {"text": "Unused endpoint: GET /help/search"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /help/search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7061caf3bb97c467", "name": "Unused endpoint: GET /help/admin", "shortDescription": {"text": "Unused endpoint: GET /help/admin"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /help/admin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5503c58ab2097236", "name": "Unused endpoint: GET /help/{feature}/{kind}", "shortDescription": {"text": "Unused endpoint: GET /help/{feature}/{kind}"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /help/{feature}/{kind}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-388426883f31f1bd", "name": "Unused endpoint: GET /help/{feature}", "shortDescription": {"text": "Unused endpoint: GET /help/{feature}"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /help/{feature}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b15d518d538de57d", "name": "Unused endpoint: GET /sessions", "shortDescription": {"text": "Unused endpoint: GET /sessions"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /sessions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a12014910b5c534", "name": "Unused endpoint: GET /runs/{run_id}/view", "shortDescription": {"text": "Unused endpoint: GET /runs/{run_id}/view"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /runs/{run_id}/view` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3e43fe2b36d6aba", "name": "Unused endpoint: GET /specs", "shortDescription": {"text": "Unused endpoint: GET /specs"}, "fullDescription": {"text": "`src/attune/ops/routes/dashboard.py` declares `GET /specs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19905"}, "properties": {"repository": "Smart-AI-Memory/attune-ai", "repoUrl": "https://github.com/Smart-AI-Memory/attune-ai", "branch": "main"}, "results": [{"ruleId": "scanner-9b6d1ea86bc2a7b5", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "9b6d1ea86bc2a7b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_utils.py:33"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46e198bfaa469b77", "level": "note", "message": {"text": "Possibly dead Python function: profile_memory"}, "properties": {"repobilityId": "d0fcdf0607b13b79", "scanner": "scanner-primary", "fingerprint": "46e198bfaa469b77", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_utils.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9027869923a596bf", "level": "note", "message": {"text": "Possibly dead Python function: benchmark_comparison"}, "properties": {"repobilityId": "785983223e10d7a9", "scanner": "scanner-primary", "fingerprint": "9027869923a596bf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_utils.py:138"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-59d668035da16b40", "level": "note", "message": {"text": "Possibly dead Python function: print_benchmark_results"}, "properties": {"repobilityId": "de64ca8f21014aaf", "scanner": "scanner-primary", "fingerprint": "59d668035da16b40", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_utils.py:189"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de2ff6f7afb7437a", "level": "note", "message": {"text": "Possibly dead Python function: visit_ClassDef"}, "properties": {"repobilityId": "4ddb6420f5455a47", "scanner": "scanner-primary", "fingerprint": "de2ff6f7afb7437a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ast_api_extractor.py:49"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07f7d486ed09983d", "level": "note", "message": {"text": "Possibly dead Python function: visit_FunctionDef"}, "properties": {"repobilityId": "7a354842f176b228", "scanner": "scanner-primary", "fingerprint": "07f7d486ed09983d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ast_api_extractor.py:123"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4948b095e516cefd", "level": "note", "message": {"text": "Possibly dead Python function: build_all"}, "properties": {"repobilityId": "b7e1dad6c48d5c20", "scanner": "scanner-primary", "fingerprint": "4948b095e516cefd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_docs.py:177"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e04f85047e30128b", "level": "note", "message": {"text": "Possibly dead Python function: check_attune_ai_version"}, "properties": {"repobilityId": "e553870aeb0be145", "scanner": "scanner-primary", "fingerprint": "e04f85047e30128b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:47"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48ea4c17c2c04429", "level": "note", "message": {"text": "Possibly dead Python function: check_attune_help_version"}, "properties": {"repobilityId": "3d9313cc32f44da9", "scanner": "scanner-primary", "fingerprint": "48ea4c17c2c04429", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a562c4c8d331112", "level": "note", "message": {"text": "Possibly dead Python function: check_pip_shows_correct_versions"}, "properties": {"repobilityId": "3fdf5a5bf8769900", "scanner": "scanner-primary", "fingerprint": "5a562c4c8d331112", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f27e2f5f9571b15", "level": "note", "message": {"text": "Possibly dead Python function: check_core_imports"}, "properties": {"repobilityId": "54912a935769ccbd", "scanner": "scanner-primary", "fingerprint": "8f27e2f5f9571b15", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:79"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-764ec5f74243c83c", "level": "note", "message": {"text": "Possibly dead Python function: check_workflow_registry"}, "properties": {"repobilityId": "f11f501f7123bbbf", "scanner": "scanner-primary", "fingerprint": "764ec5f74243c83c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4bb96982bf20d916", "level": "note", "message": {"text": "Possibly dead Python function: check_wizard_registry"}, "properties": {"repobilityId": "47d616e7e942c7dc", "scanner": "scanner-primary", "fingerprint": "4bb96982bf20d916", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ee127a905e53ee0", "level": "note", "message": {"text": "Possibly dead Python function: check_mcp_imports"}, "properties": {"repobilityId": "bf4c0c61ddefa102", "scanner": "scanner-primary", "fingerprint": "2ee127a905e53ee0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4b3fba4de80d649", "level": "note", "message": {"text": "Possibly dead Python function: check_agent_templates"}, "properties": {"repobilityId": "9648723f53c40765", "scanner": "scanner-primary", "fingerprint": "c4b3fba4de80d649", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f2cfb8f11c95a3c", "level": "note", "message": {"text": "Possibly dead Python function: check_help_engine_init"}, "properties": {"repobilityId": "8f3c4c8b9bf91a5b", "scanner": "scanner-primary", "fingerprint": "7f2cfb8f11c95a3c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:120"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e5575c416e98081f", "level": "note", "message": {"text": "Possibly dead Python function: check_help_engine_renderers"}, "properties": {"repobilityId": "6c18936624cd6804", "scanner": "scanner-primary", "fingerprint": "e5575c416e98081f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:126"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-629f981be8a78b34", "level": "note", "message": {"text": "Possibly dead Python function: check_help_engine_session"}, "properties": {"repobilityId": "7207e92b178e07d0", "scanner": "scanner-primary", "fingerprint": "629f981be8a78b34", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:134"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-384073fd016ec6ad", "level": "note", "message": {"text": "Possibly dead Python function: check_attune_cli_help"}, "properties": {"repobilityId": "180463de931d9d00", "scanner": "scanner-primary", "fingerprint": "384073fd016ec6ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:146"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0860cbe63a572cc", "level": "note", "message": {"text": "Possibly dead Python function: check_attune_help_cli"}, "properties": {"repobilityId": "737aa08ab07f4ef9", "scanner": "scanner-primary", "fingerprint": "f0860cbe63a572cc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f6f3dab70f0c95f1", "level": "note", "message": {"text": "Possibly dead Python function: check_path_validation_blocks_traversal"}, "properties": {"repobilityId": "71c6b47655b3fb2e", "scanner": "scanner-primary", "fingerprint": "f6f3dab70f0c95f1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:174"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1a9824ddbdb4f62c", "level": "note", "message": {"text": "Possibly dead Python function: check_path_validation_blocks_null_bytes"}, "properties": {"repobilityId": "8a940e78ca4e1393", "scanner": "scanner-primary", "fingerprint": "1a9824ddbdb4f62c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:184"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e00c4fb5834ba9aa", "level": "note", "message": {"text": "Possibly dead Python function: check_mcp_server_imports"}, "properties": {"repobilityId": "9d6f34720d78a5ec", "scanner": "scanner-primary", "fingerprint": "e00c4fb5834ba9aa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:197"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3078ed15335ac7c6", "level": "note", "message": {"text": "Possibly dead Python function: check_attune_help_in_attune_ai"}, "properties": {"repobilityId": "2f56ea4f8f313320", "scanner": "scanner-primary", "fingerprint": "3078ed15335ac7c6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/qa_post_release.py:218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0dc1c3effc4a987c", "level": "note", "message": {"text": "Possibly dead Python function: replace_todo"}, "properties": {"repobilityId": "490b0d0ce7810819", "scanner": "scanner-primary", "fingerprint": "0dc1c3effc4a987c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/simple_todo_impl.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-edb248a97bf3906b", "level": "note", "message": {"text": "Possibly dead Python function: instrumented"}, "properties": {"repobilityId": "673047ab3b470819", "scanner": "scanner-primary", "fingerprint": "edb248a97bf3906b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phase0/measure.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed2bac1e36f922b3", "level": "note", "message": {"text": "Possibly dead Python function: predict_next_audit"}, "properties": {"repobilityId": "49a8b71beb2b9dec", "scanner": "scanner-primary", "fingerprint": "ed2bac1e36f922b3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/compliance_anticipation_agent.py:349"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa095db4ac5cd6f8", "level": "note", "message": {"text": "Possibly dead Python function: check_anticipation_window"}, "properties": {"repobilityId": "14eb7a808cecd9fe", "scanner": "scanner-primary", "fingerprint": "aa095db4ac5cd6f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/compliance_anticipation_agent.py:456"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1594024369a8696", "level": "note", "message": {"text": "Possibly dead Python function: should_anticipate"}, "properties": {"repobilityId": "2a2115f6773c9764", "scanner": "scanner-primary", "fingerprint": "a1594024369a8696", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/compliance_anticipation_agent.py:538"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b27c3e9b73391a1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/Breadcrumbs.tsx:27"}, "properties": {"repobilityId": "ecfae050687529eb", "scanner": "scanner-primary", "fingerprint": "1b27c3e9b73391a1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ef403d42be2a21ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 website/components/CostSavingsCard.tsx:169"}, "properties": {"repobilityId": "9477d9b737c8d417", "scanner": "scanner-primary", "fingerprint": "ef403d42be2a21ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e5dfcdeb5724a224", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/components/PlausibleAnalytics.tsx:16"}, "properties": {"repobilityId": "0b7a170eb992c3f6", "scanner": "scanner-primary", "fingerprint": "e5dfcdeb5724a224", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-af4de06e423a34e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 website/components/debug-wizard/DebugWizard.tsx:1067"}, "properties": {"repobilityId": "87a51f943637011f", "scanner": "scanner-primary", "fingerprint": "af4de06e423a34e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f6d455ad0adcf10", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 website/components/debug-wizard/DebugWizard.tsx:180"}, "properties": {"repobilityId": "e70ccf51a18a1111", "scanner": "scanner-primary", "fingerprint": "7f6d455ad0adcf10", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-468f3697e72d8da7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 website/components/telemetry/TelemetryPanel.tsx:61"}, "properties": {"repobilityId": "df93e6057ee5cf3f", "scanner": "scanner-primary", "fingerprint": "468f3697e72d8da7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5dc7f7699269e17e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/page.tsx:48"}, "properties": {"repobilityId": "fd7b2f7312c04d2d", "scanner": "scanner-primary", "fingerprint": "5dc7f7699269e17e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-661d28ffbc840d78", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/layout.tsx:47"}, "properties": {"repobilityId": "9829bb285f86c1da", "scanner": "scanner-primary", "fingerprint": "661d28ffbc840d78", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-aaa89d2cdc19d12e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/page.tsx:37"}, "properties": {"repobilityId": "3f81e11543a94555", "scanner": "scanner-primary", "fingerprint": "aaa89d2cdc19d12e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6b853b0f78b30329", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/blog/[slug]/page.tsx:79"}, "properties": {"repobilityId": "4be5a0787ad7e260", "scanner": "scanner-primary", "fingerprint": "6b853b0f78b30329", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-56f1f14530147ce0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/contact/route.ts:28"}, "properties": {"repobilityId": "fa320f3bec9ba00d", "scanner": "scanner-primary", "fingerprint": "56f1f14530147ce0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-515c943a29f49b14", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 website/app/api/debug-wizard/analyze/route.ts:561"}, "properties": {"repobilityId": "9bde352511ae8f53", "scanner": "scanner-primary", "fingerprint": "515c943a29f49b14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1485ea9bb48a4bf2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/og/route.tsx:46"}, "properties": {"repobilityId": "0d69bd1f9a6ec781", "scanner": "scanner-primary", "fingerprint": "1485ea9bb48a4bf2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-57ed2c6f0c921379", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/newsletter/route.ts:29"}, "properties": {"repobilityId": "ce779c63d921117e", "scanner": "scanner-primary", "fingerprint": "57ed2c6f0c921379", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6da5e62f6ae91ffc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/app/api/webhooks/vercel/route.ts:86"}, "properties": {"repobilityId": "e5f2e2a335915e99", "scanner": "scanner-primary", "fingerprint": "6da5e62f6ae91ffc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07c84cc6182fa636", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/docs/page.tsx:95"}, "properties": {"repobilityId": "34e851c330d504f3", "scanner": "scanner-primary", "fingerprint": "07c84cc6182fa636", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-50e86b93013a3d28", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/changelog/page.tsx:46"}, "properties": {"repobilityId": "389207bf4b01b38b", "scanner": "scanner-primary", "fingerprint": "50e86b93013a3d28", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-772c41aa7eae515f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/how-it-works/page.tsx:35"}, "properties": {"repobilityId": "cec5d8f39276df90", "scanner": "scanner-primary", "fingerprint": "772c41aa7eae515f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-77a79fde2adc0cd3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/pricing/page.tsx:53"}, "properties": {"repobilityId": "9342e8409f68b1fb", "scanner": "scanner-primary", "fingerprint": "77a79fde2adc0cd3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e1ec7fd3dd0a40f5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 website/app/faq/page.tsx:210"}, "properties": {"repobilityId": "8ff8d82d8c50fc6b", "scanner": "scanner-primary", "fingerprint": "e1ec7fd3dd0a40f5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-401e07bf31a60c2f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 website/lib/metadata.ts:115"}, "properties": {"repobilityId": "bad85741d0d98876", "scanner": "scanner-primary", "fingerprint": "401e07bf31a60c2f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5787b6eda51519f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/redis.ts:103"}, "properties": {"repobilityId": "9f0db44e70c3352e", "scanner": "scanner-primary", "fingerprint": "5787b6eda51519f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ff0b06ac4b49ddd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/db.ts:140"}, "properties": {"repobilityId": "6b6c6974bea5cb3b", "scanner": "scanner-primary", "fingerprint": "0ff0b06ac4b49ddd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c304307f44377386", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/logger.ts:86"}, "properties": {"repobilityId": "ef5765351a07a39c", "scanner": "scanner-primary", "fingerprint": "c304307f44377386", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46fced2ab99803e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/email/sendgrid.ts:53"}, "properties": {"repobilityId": "158533315bde0331", "scanner": "scanner-primary", "fingerprint": "46fced2ab99803e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e745fb5485d7fb89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/lib/email/mailchimp.ts:24"}, "properties": {"repobilityId": "ea0dac9658609e35", "scanner": "scanner-primary", "fingerprint": "e745fb5485d7fb89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9dcd7dc9e7c15fab", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:1681"}, "properties": {"repobilityId": "b38c685bbf336f49", "scanner": "scanner-primary", "fingerprint": "9dcd7dc9e7c15fab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0811c6de1de3ce13", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 website/public/framework-docs/assets/javascripts/lunr/wordcut.js:6636"}, "properties": {"repobilityId": "aa2e27f98c870445", "scanner": "scanner-primary", "fingerprint": "0811c6de1de3ce13", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4976e7d7b567095b", "level": "warning", "message": {"text": "Privileged port 21 in use"}, "properties": {"repobilityId": "d920b7cd1b1a16dc", "scanner": "scanner-primary", "fingerprint": "4976e7d7b567095b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune.config.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53d6d3396e807eba", "level": "warning", "message": {"text": "Privileged port 29 in use"}, "properties": {"repobilityId": "f09242400239b5a3", "scanner": "scanner-primary", "fingerprint": "53d6d3396e807eba", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune.config.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6499a8b36db4cc0e", "level": "warning", "message": {"text": "Privileged port 7 in use"}, "properties": {"repobilityId": "428a6faecc63b5d6", "scanner": "scanner-primary", "fingerprint": "6499a8b36db4cc0e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-auth.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1601cdc7db5a802e", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/python:1-3.11-bullseye"}, "properties": {"repobilityId": "48de93c9a5abec99", "scanner": "scanner-primary", "fingerprint": "1601cdc7db5a802e", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/Dockerfile"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-56e0678487fd3acf", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in plugin/README.md:60"}, "properties": {"repobilityId": "a818130344a58a02", "scanner": "scanner-primary", "fingerprint": "56e0678487fd3acf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/README.md"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-956581db8bda1093", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in plugin/README.md:60"}, "properties": {"repobilityId": "a89a62eedfde2dbb", "scanner": "scanner-primary", "fingerprint": "956581db8bda1093", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/README.md"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-7d140f6b5f693c31", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in plugin/hooks/security_guard.py:54"}, "properties": {"repobilityId": "a435bdb05aee230e", "scanner": "scanner-primary", "fingerprint": "7d140f6b5f693c31", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/hooks/security_guard.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-40d664e4f6b20b0b", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in plugin/hooks/security_guard.py:58"}, "properties": {"repobilityId": "4922ca2cf26e0560", "scanner": "scanner-primary", "fingerprint": "40d664e4f6b20b0b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/hooks/security_guard.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-a36b384069fe2164", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in plugin/hooks/security_guard.py:66"}, "properties": {"repobilityId": "bd0d9c3f9412ad0f", "scanner": "scanner-primary", "fingerprint": "a36b384069fe2164", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/hooks/security_guard.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-794e1d2f6c694f13", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in plugin/skills/bug-predict/SKILL.md:60"}, "properties": {"repobilityId": "da3e177e9360274c", "scanner": "scanner-primary", "fingerprint": "794e1d2f6c694f13", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/bug-predict/SKILL.md"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-7453932644f47ee2", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in plugin/skills/bug-predict/SKILL.md:60"}, "properties": {"repobilityId": "d46122da0b6900b2", "scanner": "scanner-primary", "fingerprint": "7453932644f47ee2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/bug-predict/SKILL.md"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-a180c1a6a820080a", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in plugin/skills/security-audit/SKILL.md:65"}, "properties": {"repobilityId": "ad3b319abcf68027", "scanner": "scanner-primary", "fingerprint": "a180c1a6a820080a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/security-audit/SKILL.md"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-d9c17682ddd927dd", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in plugin/skills/security-audit/SKILL.md:65"}, "properties": {"repobilityId": "479c549f7ef321e9", "scanner": "scanner-primary", "fingerprint": "d9c17682ddd927dd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/security-audit/SKILL.md"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-ee736020f3f741cc", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:19"}, "properties": {"repobilityId": "390172169d4d559d", "scanner": "scanner-primary", "fingerprint": "ee736020f3f741cc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-hybrid.json"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-be8780bfa13d0239", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:99"}, "properties": {"repobilityId": "f5f6672c58312254", "scanner": "scanner-primary", "fingerprint": "be8780bfa13d0239", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-hybrid.json"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-8592b2fcd82d7d74", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-hybrid.json:179"}, "properties": {"repobilityId": "a193e3642beb0742", "scanner": "scanner-primary", "fingerprint": "8592b2fcd82d7d74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-hybrid.json"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-1d4abcc1af8b4a7a", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:19"}, "properties": {"repobilityId": "8f8c6d1eac2884ee", "scanner": "scanner-primary", "fingerprint": "1d4abcc1af8b4a7a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-bfe06e147a921fdb", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:99"}, "properties": {"repobilityId": "57bbd891e05c6aaa", "scanner": "scanner-primary", "fingerprint": "bfe06e147a921fdb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-82f98143207fc094", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json:179"}, "properties": {"repobilityId": "3c0297623bec9d3e", "scanner": "scanner-primary", "fingerprint": "82f98143207fc094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19-sentinel-xml-attr.json"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-6f90d2a54d56aaac", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in docs/rag/ab-report-2026-04-19.json:18"}, "properties": {"repobilityId": "1d64c3ef8b4e26ab", "scanner": "scanner-primary", "fingerprint": "6f90d2a54d56aaac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19.json"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-8d8073b3b096ecb7", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in docs/rag/ab-report-2026-04-19.json:93"}, "properties": {"repobilityId": "ae70c8decee1f5f7", "scanner": "scanner-primary", "fingerprint": "8d8073b3b096ecb7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19.json"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-7f3d7678e3f2c044", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in docs/rag/ab-report-2026-04-19.json:168"}, "properties": {"repobilityId": "6aa30430b141cffc", "scanner": "scanner-primary", "fingerprint": "7f3d7678e3f2c044", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/rag/ab-report-2026-04-19.json"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-9985409722b5f59a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-specs-page-refinement/wireframe.html:548"}, "properties": {"repobilityId": "1b367de143f4a11f", "scanner": "scanner-primary", "fingerprint": "9985409722b5f59a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/specs/archive/ops-specs-page-refinement/wireframe.html"}, "region": {"startLine": 548}}}]}, {"ruleId": "scanner-def84896bc10c56b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/specs/archive/ops-workflows-page-refinement/wireframe.html:488"}, "properties": {"repobilityId": "e0bf975cb9ffb677", "scanner": "scanner-primary", "fingerprint": "def84896bc10c56b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/specs/archive/ops-workflows-page-refinement/wireframe.html"}, "region": {"startLine": 488}}}]}, {"ruleId": "scanner-db2bbde7827a9782", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in docs/specs/ops-help-page/mockups/search.html:104"}, "properties": {"repobilityId": "47ae63c83997a490", "scanner": "scanner-primary", "fingerprint": "db2bbde7827a9782", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/specs/ops-help-page/mockups/search.html"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-ef4f15d880a61d89", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in docs/specs/ops-help-page/mockups/search.html:105"}, "properties": {"repobilityId": "cebf0bacbedf20db", "scanner": "scanner-primary", "fingerprint": "ef4f15d880a61d89", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/specs/ops-help-page/mockups/search.html"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-fcfe395463e88944", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/phase_2_setup.py:357"}, "properties": {"repobilityId": "ba929dae5340b74a", "scanner": "scanner-primary", "fingerprint": "fcfe395463e88944", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phase_2_setup.py"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-e0367f4f69e4c60a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/components/Breadcrumbs.tsx:27"}, "properties": {"repobilityId": "c96880b6ac12a16c", "scanner": "scanner-primary", "fingerprint": "e0367f4f69e4c60a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/components/Breadcrumbs.tsx"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-28ee3fcf6f355ac5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/components/PlausibleAnalytics.tsx:16"}, "properties": {"repobilityId": "11debfcc0124ccf1", "scanner": "scanner-primary", "fingerprint": "28ee3fcf6f355ac5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/components/PlausibleAnalytics.tsx"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-7681e6a9ecf5c24e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/page.tsx:48"}, "properties": {"repobilityId": "320c659101e4ca10", "scanner": "scanner-primary", "fingerprint": "7681e6a9ecf5c24e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/page.tsx"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-63bd02904a522b24", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/layout.tsx:47"}, "properties": {"repobilityId": "449d119062019ae4", "scanner": "scanner-primary", "fingerprint": "63bd02904a522b24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/layout.tsx"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-29ea23231b273e1f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/page.tsx:37"}, "properties": {"repobilityId": "3eabed4367fb206f", "scanner": "scanner-primary", "fingerprint": "29ea23231b273e1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/blog/page.tsx"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-a8f5a7ed38ca58aa", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/blog/[slug]/page.tsx:79"}, "properties": {"repobilityId": "4b35f60e75784604", "scanner": "scanner-primary", "fingerprint": "a8f5a7ed38ca58aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/blog/[slug]/page.tsx"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-00c56cc15e61339e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/docs/page.tsx:95"}, "properties": {"repobilityId": "6fe57ff65a5a1c30", "scanner": "scanner-primary", "fingerprint": "00c56cc15e61339e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/docs/page.tsx"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-bef255e30501b9ec", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/changelog/page.tsx:46"}, "properties": {"repobilityId": "650e5c870e580895", "scanner": "scanner-primary", "fingerprint": "bef255e30501b9ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/changelog/page.tsx"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-ace3fca75fba8c2b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/how-it-works/page.tsx:35"}, "properties": {"repobilityId": "2b36fbdc10d526b9", "scanner": "scanner-primary", "fingerprint": "ace3fca75fba8c2b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/how-it-works/page.tsx"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-7260cdd622df919a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/pricing/page.tsx:53"}, "properties": {"repobilityId": "fa3efc61cd3537ed", "scanner": "scanner-primary", "fingerprint": "7260cdd622df919a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/pricing/page.tsx"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-441f09aaf0d47ac7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in website/app/faq/page.tsx:210"}, "properties": {"repobilityId": "eb837e1b01fa663f", "scanner": "scanner-primary", "fingerprint": "441f09aaf0d47ac7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/app/faq/page.tsx"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-80a6885c4de8ed59", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in website/public/framework-docs/reference/FAQ/index.html:6595"}, "properties": {"repobilityId": "05b79fa1a1c3c7b2", "scanner": "scanner-primary", "fingerprint": "80a6885c4de8ed59", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/reference/FAQ/index.html"}, "region": {"startLine": 6595}}}]}, {"ruleId": "scanner-ca6737468cf0ea16", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in website/public/framework-docs/reference/FAQ/index.html:6730"}, "properties": {"repobilityId": "228006ae1d840f5d", "scanner": "scanner-primary", "fingerprint": "ca6737468cf0ea16", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/reference/FAQ/index.html"}, "region": {"startLine": 6730}}}]}, {"ruleId": "scanner-4d19f01abe8ee9e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js:14"}, "properties": {"repobilityId": "eb9e2e0f0e0a554a", "scanner": "scanner-primary", "fingerprint": "4d19f01abe8ee9e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-d9cd2d940ec985e5", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js:14"}, "properties": {"repobilityId": "9766661014795a82", "scanner": "scanner-primary", "fingerprint": "d9cd2d940ec985e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/assets/javascripts/bundle.e71a0d61.min.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-1c40c8ef8a630f77", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:5977"}, "properties": {"repobilityId": "ef2ef01372e3ca14", "scanner": "scanner-primary", "fingerprint": "1c40c8ef8a630f77", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/assets/javascripts/lunr/wordcut.js"}, "region": {"startLine": 5977}}}]}, {"ruleId": "scanner-76f14b8af6c288b3", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819"}, "properties": {"repobilityId": "37f0f82ee87071dc", "scanner": "scanner-primary", "fingerprint": "76f14b8af6c288b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/CODING_STANDARDS/index.html"}, "region": {"startLine": 1819}}}]}, {"ruleId": "scanner-9b35db0e00006076", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in website/public/framework-docs/CODING_STANDARDS/index.html:1819"}, "properties": {"repobilityId": "771b8efebc5011da", "scanner": "scanner-primary", "fingerprint": "9b35db0e00006076", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/CODING_STANDARDS/index.html"}, "region": {"startLine": 1819}}}]}, {"ruleId": "scanner-481836676f4950ad", "level": "error", "message": {"text": "Possible secret in website/public/framework-docs/how-to/security-architecture/index.html"}, "properties": {"repobilityId": "1be7cb68d73afa7a", "scanner": "scanner-primary", "fingerprint": "481836676f4950ad", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/how-to/security-architecture/index.html"}, "region": {"startLine": 4399}}}]}, {"ruleId": "scanner-52fd601383ebf4ed", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in website/public/framework-docs/how-to/security-architecture/index.html:4387"}, "properties": {"repobilityId": "29b0869db15c3176", "scanner": "scanner-primary", "fingerprint": "52fd601383ebf4ed", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/public/framework-docs/how-to/security-architecture/index.html"}, "region": {"startLine": 4387}}}]}, {"ruleId": "scanner-5d6807577d63cadc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deployments/wizards-backend/static/index.html:279"}, "properties": {"repobilityId": "98edf0471e37bc8d", "scanner": "scanner-primary", "fingerprint": "5d6807577d63cadc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deployments/wizards-backend/static/index.html"}, "region": {"startLine": 279}}}]}, {"ruleId": "scanner-aa84bf3a89e8b47d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in attune-ai-dev/help/search.js:11"}, "properties": {"repobilityId": "a40148e4a8433346", "scanner": "scanner-primary", "fingerprint": "aa84bf3a89e8b47d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/search.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-c4c7c27802c8e173", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/search-index.json:1"}, "properties": {"repobilityId": "c4e10da2bf021567", "scanner": "scanner-primary", "fingerprint": "c4c7c27802c8e173", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/search-index.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bfecd3a3a14e283c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/search-index.json:1"}, "properties": {"repobilityId": "77256e3185a49262", "scanner": "scanner-primary", "fingerprint": "bfecd3a3a14e283c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/search-index.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca04ca375cdab544", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/faq.html:285"}, "properties": {"repobilityId": "8a97073cd87a2eeb", "scanner": "scanner-primary", "fingerprint": "ca04ca375cdab544", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/faq.html"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-927806f0b0c66c05", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/faq.html:285"}, "properties": {"repobilityId": "ec40322eb341bef7", "scanner": "scanner-primary", "fingerprint": "927806f0b0c66c05", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/faq.html"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-75a9ec057d4e3199", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/comparison.html:332"}, "properties": {"repobilityId": "e4e1bc6d8086e71d", "scanner": "scanner-primary", "fingerprint": "75a9ec057d4e3199", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/comparison.html"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-e056726b149ccbb5", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/concept.html:283"}, "properties": {"repobilityId": "02d2f753b20507fe", "scanner": "scanner-primary", "fingerprint": "e056726b149ccbb5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/concept.html"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-63040f5e2e1c2f39", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/bug-predict/quickstart.html:275"}, "properties": {"repobilityId": "602516404484bd48", "scanner": "scanner-primary", "fingerprint": "63040f5e2e1c2f39", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/quickstart.html"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-1d81492eee361683", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/bug-predict/quickstart.html:276"}, "properties": {"repobilityId": "8f5caf8c9b59ad7d", "scanner": "scanner-primary", "fingerprint": "1d81492eee361683", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/bug-predict/quickstart.html"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-52d60c4820a7dc3d", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/faq.html:7"}, "properties": {"repobilityId": "3ed7dc6fb1f4b227", "scanner": "scanner-primary", "fingerprint": "52d60c4820a7dc3d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/faq.html"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-3fd96156b7cf3e5d", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/faq.html:7"}, "properties": {"repobilityId": "fb9006d56fb098be", "scanner": "scanner-primary", "fingerprint": "3fd96156b7cf3e5d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/faq.html"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-d432ccaf2c129581", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/faq.html:308"}, "properties": {"repobilityId": "b4506e6b9613c374", "scanner": "scanner-primary", "fingerprint": "d432ccaf2c129581", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/faq.html"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-861c71e3ba1fc23f", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in attune-ai-dev/help/security-audit/concept.html:7"}, "properties": {"repobilityId": "1238146ead920710", "scanner": "scanner-primary", "fingerprint": "861c71e3ba1fc23f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/concept.html"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-79c7da03f2a40031", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in attune-ai-dev/help/security-audit/concept.html:283"}, "properties": {"repobilityId": "6a5974c738a11eab", "scanner": "scanner-primary", "fingerprint": "79c7da03f2a40031", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/concept.html"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-fd734b5379945667", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in attune-ai-dev/help/security-audit/concept.html:303"}, "properties": {"repobilityId": "8fccda6f92c6bf83", "scanner": "scanner-primary", "fingerprint": "fd734b5379945667", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "attune-ai-dev/help/security-audit/concept.html"}, "region": {"startLine": 303}}}]}, {"ruleId": "scanner-6df0b39ebfdd5a18", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .claude/CLAUDE.md:88"}, "properties": {"repobilityId": "af302b138d60bce2", "scanner": "scanner-primary", "fingerprint": "6df0b39ebfdd5a18", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/CLAUDE.md"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-2cad9bb69f1fc559", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in .claude/CLAUDE.md:88"}, "properties": {"repobilityId": "fbdb2405bb236c4b", "scanner": "scanner-primary", "fingerprint": "2cad9bb69f1fc559", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/CLAUDE.md"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-fe62eb5c1246af4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs.js:88"}, "properties": {"repobilityId": "e0fac5689422612a", "scanner": "scanner-primary", "fingerprint": "fe62eb5c1246af4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/specs.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-3be09729958fbd00", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/completion_candidates.js:228"}, "properties": {"repobilityId": "5ed41bace9a10080", "scanner": "scanner-primary", "fingerprint": "3be09729958fbd00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/completion_candidates.js"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-4d8a6d9a6babbd69", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/run_view.js:944"}, "properties": {"repobilityId": "3fafff9189c44429", "scanner": "scanner-primary", "fingerprint": "4d8a6d9a6babbd69", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/run_view.js"}, "region": {"startLine": 944}}}]}, {"ruleId": "scanner-692591b607821bfa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/specs_kebab.js:69"}, "properties": {"repobilityId": "ae098326f645f415", "scanner": "scanner-primary", "fingerprint": "692591b607821bfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/specs_kebab.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-e5b1d069cbb16db2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/bulletin.js:96"}, "properties": {"repobilityId": "49d0567685da9bfd", "scanner": "scanner-primary", "fingerprint": "e5b1d069cbb16db2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/bulletin.js"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-2663bdb700927749", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/attune/ops/static/js/workflows_kebab.js:61"}, "properties": {"repobilityId": "3a5e6dd9259b17a1", "scanner": "scanner-primary", "fingerprint": "2663bdb700927749", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/ops/static/js/workflows_kebab.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-993eb9c101543b6e", "level": "error", "message": {"text": "Possible secret in src/attune/memory/security/secrets_types.py"}, "properties": {"repobilityId": "dba2bfa024bb1ca8", "scanner": "scanner-primary", "fingerprint": "993eb9c101543b6e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/memory/security/secrets_types.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-c9c31723a9535bb0", "level": "error", "message": {"text": "Possible secret in src/attune/memory/security/secrets_detector.py"}, "properties": {"repobilityId": "d1565a4bcd9fe6fc", "scanner": "scanner-primary", "fingerprint": "c9c31723a9535bb0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/memory/security/secrets_detector.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-c9c31723a9535bb0", "level": "error", "message": {"text": "Possible secret in src/attune/memory/security/secrets_detector.py"}, "properties": {"repobilityId": "7e0536f3b7e98ae9", "scanner": "scanner-primary", "fingerprint": "c9c31723a9535bb0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/memory/security/secrets_detector.py"}, "region": {"startLine": 581}}}]}, {"ruleId": "scanner-2815962061497651", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in src/attune/memory/security/secrets_detector.py:186"}, "properties": {"repobilityId": "869dbc7e71db7894", "scanner": "scanner-primary", "fingerprint": "2815962061497651", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/memory/security/secrets_detector.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-fe8415d4e2f4bc55", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/attune/hooks/scripts/security_guard.py:46"}, "properties": {"repobilityId": "ce3d3bc616dacf90", "scanner": "scanner-primary", "fingerprint": "fe8415d4e2f4bc55", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/hooks/scripts/security_guard.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-1b281e20d07f961e", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/attune/hooks/scripts/security_guard.py:50"}, "properties": {"repobilityId": "58cc8c7e8152a2bb", "scanner": "scanner-primary", "fingerprint": "1b281e20d07f961e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/hooks/scripts/security_guard.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-208a024643c60177", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in src/attune/hooks/scripts/security_guard.py:58"}, "properties": {"repobilityId": "2e860689c591806c", "scanner": "scanner-primary", "fingerprint": "208a024643c60177", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/hooks/scripts/security_guard.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-3e8671faa5b1474c", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/bug_predict_patterns.py:243"}, "properties": {"repobilityId": "a82966336576e41f", "scanner": "scanner-primary", "fingerprint": "3e8671faa5b1474c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/bug_predict_patterns.py"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-ad2891fdea396392", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/bug_predict_patterns.py:243"}, "properties": {"repobilityId": "f7911e2d5064188f", "scanner": "scanner-primary", "fingerprint": "ad2891fdea396392", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/bug_predict_patterns.py"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-cd882751ce316586", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/deep_review.py:68"}, "properties": {"repobilityId": "34e2d96f92c86ed9", "scanner": "scanner-primary", "fingerprint": "cd882751ce316586", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/deep_review.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-fbc0b1336a752463", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/deep_review.py:68"}, "properties": {"repobilityId": "a20f028872f71b9b", "scanner": "scanner-primary", "fingerprint": "fbc0b1336a752463", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/deep_review.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-8a2ac65401b5828f", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:200"}, "properties": {"repobilityId": "6c563b87514ce33e", "scanner": "scanner-primary", "fingerprint": "8a2ac65401b5828f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/discovery_sweep/sources/pattern_scan.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-95ff24731a799bfb", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:206"}, "properties": {"repobilityId": "cef7060d690b6d06", "scanner": "scanner-primary", "fingerprint": "95ff24731a799bfb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/discovery_sweep/sources/pattern_scan.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-6e9785365578ec96", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:212"}, "properties": {"repobilityId": "4edf30b6d449a632", "scanner": "scanner-primary", "fingerprint": "6e9785365578ec96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/workflows/discovery_sweep/sources/pattern_scan.py"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-096a3ab9e39445e3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a5cd3d6f940e45cb", "scanner": "scanner-primary", "fingerprint": "096a3ab9e39445e3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/.github/workflows/deploy.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-096a3ab9e39445e3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ec67c28e2f2e5c63", "scanner": "scanner-primary", "fingerprint": "096a3ab9e39445e3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/.github/workflows/deploy.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-c4d3362e34b54d91", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ef6147f6f05b6c49", "scanner": "scanner-primary", "fingerprint": "c4d3362e34b54d91", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-help-site.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe6fbdf47ca70d54", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "93b3a49ddc4e30fa", "scanner": "scanner-primary", "fingerprint": "fe6fbdf47ca70d54", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-pypi.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-768e8f28c1850d98", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "f3c306ca3743dfa1", "scanner": "scanner-primary", "fingerprint": "768e8f28c1850d98", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dependabot-auto-merge.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab3328b608b321a2", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "db35cea646e3b91a", "scanner": "scanner-primary", "fingerprint": "ab3328b608b321a2", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/help-freshness.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-65a716a27d2be993", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "3133a88ce98acc76", "scanner": "scanner-primary", "fingerprint": "65a716a27d2be993", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scorecard.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14ce8614dd03f409", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "81c5c697653f94e8", "scanner": "scanner-primary", "fingerprint": "14ce8614dd03f409", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-96e29be7d54564b0", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0c4681b980203b23", "scanner": "scanner-primary", "fingerprint": "96e29be7d54564b0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tier-pattern-analysis.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7bc38614fd7e353e", "level": "note", "message": {"text": "Very large file: tests/unit/test_coverage_batch1.py (2258 lines)"}, "properties": {"repobilityId": "039e8ef7d7c749d2", "scanner": "scanner-primary", "fingerprint": "7bc38614fd7e353e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15f912f8e585faf6", "level": "note", "message": {"text": "Very large file: tests/unit/test_coverage_batch10.py (2236 lines)"}, "properties": {"repobilityId": "3df514769c1e9bca", "scanner": "scanner-primary", "fingerprint": "15f912f8e585faf6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f8d77860af72f11", "level": "note", "message": {"text": "Very large file: tests/unit/test_coverage_batch9.py (2803 lines)"}, "properties": {"repobilityId": "05e9fdc01dfdaee7", "scanner": "scanner-primary", "fingerprint": "4f8d77860af72f11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-33b52222e2e3a9fd", "level": "note", "message": {"text": "Very large file: tests/unit/test_workflow_commands.py (1883 lines)"}, "properties": {"repobilityId": "fa78fa4e59dde32a", "scanner": "scanner-primary", "fingerprint": "33b52222e2e3a9fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ef0e3548ee33fd7", "level": "note", "message": {"text": "Very large file: tests/unit/test_coverage_batch2.py (1166 lines)"}, "properties": {"repobilityId": "0fc7d54832d8c3eb", "scanner": "scanner-primary", "fingerprint": "9ef0e3548ee33fd7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6453fcb7ddd9e98b", "level": "note", "message": {"text": "Very large file: tests/unit/test_coverage_batch7.py (2163 lines)"}, "properties": {"repobilityId": "c6c63ec82926fb67", "scanner": "scanner-primary", "fingerprint": "6453fcb7ddd9e98b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-54a7d9eac5b38405", "level": "note", "message": {"text": "Very large file: tests/unit/orchestration/test_execution_strategies.py (1815 lines)"}, "properties": {"repobilityId": "cfd4719b3f10a567", "scanner": "scanner-primary", "fingerprint": "54a7d9eac5b38405", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ce879923f0df0544", "level": "note", "message": {"text": "Very large file: tests/unit/socratic/test_mcp_server.py (1461 lines)"}, "properties": {"repobilityId": "c5844b0b7c9c77d1", "scanner": "scanner-primary", "fingerprint": "ce879923f0df0544", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-318435b22cf8a0ea", "level": "note", "message": {"text": "Very large file: tests/unit/workflows/test_execution_mixin_branches.py (1403 lines)"}, "properties": {"repobilityId": "5fb85a12a8c5f4dd", "scanner": "scanner-primary", "fingerprint": "318435b22cf8a0ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f19751593e4657f4", "level": "note", "message": {"text": "Very large file: tests/unit/workflows/test_agent_sdk_adapter.py (1509 lines)"}, "properties": {"repobilityId": "4383097de56a72e0", "scanner": "scanner-primary", "fingerprint": "f19751593e4657f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-62e6846cfbf1a6c9", "level": "note", "message": {"text": "Very large file: tests/unit/workflows/test_documentation_orchestrator.py (1641 lines)"}, "properties": {"repobilityId": "acca33132da5c953", "scanner": "scanner-primary", "fingerprint": "62e6846cfbf1a6c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4874e5f37e935acb", "level": "note", "message": {"text": "Very large file: tests/unit/wizards/test_wizard_base.py (1472 lines)"}, "properties": {"repobilityId": "fe8be54dd08ff727", "scanner": "scanner-primary", "fingerprint": "4874e5f37e935acb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bd08e69ebc84dc21", "level": "note", "message": {"text": "Very large file: tests/unit/telemetry/test_usage_tracker.py (1766 lines)"}, "properties": {"repobilityId": "0233165449b668b2", "scanner": "scanner-primary", "fingerprint": "bd08e69ebc84dc21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e1a9bd852eebde03", "level": "note", "message": {"text": "Very large file: tests/unit/telemetry/test_telemetry_cli.py (1654 lines)"}, "properties": {"repobilityId": "ac240182b7496eb6", "scanner": "scanner-primary", "fingerprint": "e1a9bd852eebde03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-abefb6f3ae252bc9", "level": "note", "message": {"text": "Very large file: tests/unit/cli_commands/test_telemetry_commands.py (1706 lines)"}, "properties": {"repobilityId": "15b68ab3bb4ea070", "scanner": "scanner-primary", "fingerprint": "abefb6f3ae252bc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7ba923467e8c132", "level": "note", "message": {"text": "Very large file: website/components/debug-wizard/DebugWizard.tsx (1998 lines)"}, "properties": {"repobilityId": "d9008e3383fd9f1d", "scanner": "scanner-primary", "fingerprint": "e7ba923467e8c132", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-128709692d6a4c2d", "level": "note", "message": {"text": "Very large file: website/public/framework-docs/assets/javascripts/lunr/wordcut.js (6707 lines)"}, "properties": {"repobilityId": "ffbca1acc3f392a0", "scanner": "scanner-primary", "fingerprint": "128709692d6a4c2d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-512a76c564e9f957", "level": "note", "message": {"text": "Very large file: agents/compliance_anticipation_agent.py (1423 lines)"}, "properties": {"repobilityId": "2ebf5d6877d22354", "scanner": "scanner-primary", "fingerprint": "512a76c564e9f957", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-830123d451416970", "level": "note", "message": {"text": "Very large file: agents/book_production/learning.py (1373 lines)"}, "properties": {"repobilityId": "7a304f02e4bebd7e", "scanner": "scanner-primary", "fingerprint": "830123d451416970", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b7006c646ebe2d63", "level": "note", "message": {"text": "Very large file: src/attune/workflows/agent_sdk_adapter.py (1615 lines)"}, "properties": {"repobilityId": "2d79ea36cb08cb52", "scanner": "scanner-primary", "fingerprint": "b7006c646ebe2d63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-447ab588d797eaeb", "level": "note", "message": {"text": "160 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "447ab588d797eaeb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "56bef9e6ef1601e1", "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": "aa9815748d8fc9a0", "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": "fb838d4943dee5bc", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "53ecf96aa281ad3a", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "67bcd717936a5c4e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-cc55229a7a3c078d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .mcp.json"}, "properties": {"repobilityId": "51942fb3d5b8b5b4", "scanner": "scanner-primary", "fingerprint": "cc55229a7a3c078d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".mcp.json"}, "region": {"startLine": 1}}}]}, {"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-bc15c74853dd18b9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/.mcp.json"}, "properties": {"repobilityId": "28c831bd0ad754d8", "scanner": "scanner-primary", "fingerprint": "bc15c74853dd18b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/.mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3fccb708d2a7b4b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/skills/refactor-plan/SKILL.md"}, "properties": {"repobilityId": "3f550170f8e13088", "scanner": "scanner-primary", "fingerprint": "d3fccb708d2a7b4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/refactor-plan/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da1c56e0de091fef", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/skills/bug-predict/SKILL.md"}, "properties": {"repobilityId": "b132a2bd2905d3ce", "scanner": "scanner-primary", "fingerprint": "da1c56e0de091fef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/bug-predict/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc58f07086259131", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/skills/doc-gen/SKILL.md"}, "properties": {"repobilityId": "60ae25cfa6295050", "scanner": "scanner-primary", "fingerprint": "bc58f07086259131", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/doc-gen/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-38f208db2849208e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: plugin/skills/memory-and-context/SKILL.md"}, "properties": {"repobilityId": "6ba181eb88904306", "scanner": "scanner-primary", "fingerprint": "38f208db2849208e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/memory-and-context/SKILL.md"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-4782adb1113d46f0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: plugin/skills/security-audit/SKILL.md"}, "properties": {"repobilityId": "21d0050415bab150", "scanner": "scanner-primary", "fingerprint": "4782adb1113d46f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "plugin/skills/security-audit/SKILL.md"}, "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-8f11527df62387c7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/mcp.json"}, "properties": {"repobilityId": "8d7a228e44de8a35", "scanner": "scanner-primary", "fingerprint": "8f11527df62387c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3ad97aa55a9d383", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/lessons.md"}, "properties": {"repobilityId": "32f3043cb68236ca", "scanner": "scanner-primary", "fingerprint": "c3ad97aa55a9d383", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/lessons.md"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-d1a220ac1ac81dec", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/attune/vscode-extension-limitations.md"}, "properties": {"repobilityId": "b4f6ed47e6209dac", "scanner": "scanner-primary", "fingerprint": "d1a220ac1ac81dec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/attune/vscode-extension-limitations.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b01036fd0d006415", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/rules/attune/advanced-optimization-plan.md"}, "properties": {"repobilityId": "668878bece3b3dff", "scanner": "scanner-primary", "fingerprint": "b01036fd0d006415", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/attune/advanced-optimization-plan.md"}, "region": {"startLine": 633}}}]}, {"ruleId": "scanner-989f9689360f2e23", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/attune/documentation-patterns.md"}, "properties": {"repobilityId": "a26a1d7d8d884b83", "scanner": "scanner-primary", "fingerprint": "989f9689360f2e23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/attune/documentation-patterns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c39462fb7f1b7c6", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/rules/attune/coding-standards-index.md"}, "properties": {"repobilityId": "4281b89e618e0d7a", "scanner": "scanner-primary", "fingerprint": "9c39462fb7f1b7c6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/attune/coding-standards-index.md"}, "region": {"startLine": 649}}}]}, {"ruleId": "scanner-c642dba1a2327baa", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bulk/SKILL.md"}, "properties": {"repobilityId": "5bbc275bb0ba44c6", "scanner": "scanner-primary", "fingerprint": "c642dba1a2327baa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bulk/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-874206fc9cfc4134", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/agent/SKILL.md"}, "properties": {"repobilityId": "ad073335538c1f0d", "scanner": "scanner-primary", "fingerprint": "874206fc9cfc4134", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/agent/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f79cc5f4c3c53f5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/simplify/SKILL.md"}, "properties": {"repobilityId": "30e4d8d366c0f590", "scanner": "scanner-primary", "fingerprint": "7f79cc5f4c3c53f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/simplify/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-76b2079650c80a32", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/dev/SKILL.md"}, "properties": {"repobilityId": "c51db655cfaf3d40", "scanner": "scanner-primary", "fingerprint": "76b2079650c80a32", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/dev/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a9ad47b188eae62", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/pipeline/SKILL.md"}, "properties": {"repobilityId": "ddcafca4ce37d2bf", "scanner": "scanner-primary", "fingerprint": "7a9ad47b188eae62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/pipeline/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-394afe7b39815fd3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/workflows/SKILL.md"}, "properties": {"repobilityId": "7602aa3e5e730c89", "scanner": "scanner-primary", "fingerprint": "394afe7b39815fd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/workflows/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0d23cdfc16e693a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/utilities/SKILL.md"}, "properties": {"repobilityId": "eb936bf333f82153", "scanner": "scanner-primary", "fingerprint": "f0d23cdfc16e693a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/utilities/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6cac32631535ff6a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/plan/SKILL.md"}, "properties": {"repobilityId": "47bba832006ed1f5", "scanner": "scanner-primary", "fingerprint": "6cac32631535ff6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/plan/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9a7eb5e4aee992d", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/plans/feature-rag-code-grounding-2026-04-17.md"}, "properties": {"repobilityId": "de2102951e86fa77", "scanner": "scanner-primary", "fingerprint": "f9a7eb5e4aee992d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/feature-rag-code-grounding-2026-04-17.md"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-9a7838892177615f", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/plans/feature-agent-sdk-0163-uplift-2026-04-19.md"}, "properties": {"repobilityId": "b9ab8ff668c6706b", "scanner": "scanner-primary", "fingerprint": "9a7838892177615f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/feature-agent-sdk-0163-uplift-2026-04-19.md"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-2d170799b1922350", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/plans/code-review-comparison.md"}, "properties": {"repobilityId": "d9d8d14248b3f258", "scanner": "scanner-primary", "fingerprint": "2d170799b1922350", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/code-review-comparison.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-292f1307915e57f1", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/plans/archive/2026-04-09-plan-b-phase1-testing/restore-runbook.md"}, "properties": {"repobilityId": "8acf4546090f0763", "scanner": "scanner-primary", "fingerprint": "292f1307915e57f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/plans/archive/2026-04-09-plan-b-phase1-testing/restore-runbook.md"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-1651b9b77c507b87", "level": "none", "message": {"text": "Commented-code block (13 lines) in tests/conftest.py:46"}, "properties": {"repobilityId": "0d837fdade998c30", "scanner": "scanner-primary", "fingerprint": "1651b9b77c507b87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7004a080273b050c", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/security/test_secrets_detector_edge_paths.py:94"}, "properties": {"repobilityId": "9940a29f161c30fb", "scanner": "scanner-primary", "fingerprint": "7004a080273b050c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63347fd63548be4f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_critical_workflows_smoke.py:118"}, "properties": {"repobilityId": "421f088c50bd8d0a", "scanner": "scanner-primary", "fingerprint": "63347fd63548be4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83fb4b928994e3d3", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/models/test_sonnet_opus_fallback.py:22"}, "properties": {"repobilityId": "55bdb21e824105fc", "scanner": "scanner-primary", "fingerprint": "83fb4b928994e3d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3c13355ccd79dde", "level": "note", "message": {"text": "Legacy-named symbol `bug_legacy` in tests/unit/test_analyze_tier_patterns.py:413"}, "properties": {"repobilityId": "3adc2964834d22f6", "scanner": "scanner-primary", "fingerprint": "b3c13355ccd79dde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e56cc12e3005630a", "level": "note", "message": {"text": "Legacy-named symbol `TestLoadWorkflowHistoryDeprecated` in tests/unit/test_coverage_batch17.py:79"}, "properties": {"repobilityId": "146d72bc9fb8c2c6", "scanner": "scanner-primary", "fingerprint": "e56cc12e3005630a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ece25bae516a3dd8", "level": "note", "message": {"text": "Legacy-named symbol `test_dialog_choice_2_use_legacy` in tests/unit/test_coverage_batch7.py:1212"}, "properties": {"repobilityId": "05f6ee4ca3a77e43", "scanner": "scanner-primary", "fingerprint": "ece25bae516a3dd8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ebe6df8fc9a00dd", "level": "note", "message": {"text": "Legacy-named symbol `test_remembered_choice_legacy` in tests/unit/test_workflow_migration.py:163"}, "properties": {"repobilityId": "e7f1ae95a1a8a0c4", "scanner": "scanner-primary", "fingerprint": "8ebe6df8fc9a00dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-79259d8231fcb5d8", "level": "note", "message": {"text": "Legacy-named symbol `test_get_state_returns_copy` in tests/unit/help/test_session.py:69"}, "properties": {"repobilityId": "e20fa8dc7ff2ec73", "scanner": "scanner-primary", "fingerprint": "79259d8231fcb5d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1b991cf01a3e0853", "level": "note", "message": {"text": "Legacy-named symbol `TestExecuteWithFallbackLegacy` in tests/unit/models/test_resilient_executor_coverage.py:240"}, "properties": {"repobilityId": "3b4691d90bfc2fa1", "scanner": "scanner-primary", "fingerprint": "1b991cf01a3e0853", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d18607a7734d95d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_test_generation.py:18"}, "properties": {"repobilityId": "508f4d81fd7c37e2", "scanner": "scanner-primary", "fingerprint": "4d18607a7734d95d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eda46cfb47ef871f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/orchestration/test_tools_performance.py:285"}, "properties": {"repobilityId": "b4a9bb750cfe769a", "scanner": "scanner-primary", "fingerprint": "eda46cfb47ef871f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b83c2ddca563c7c6", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/orchestration/test_composition_patterns.py:30"}, "properties": {"repobilityId": "d108bee45bdb5da3", "scanner": "scanner-primary", "fingerprint": "b83c2ddca563c7c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70504dde5b88c5fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_sweep_results_server_wiring.py:62"}, "properties": {"repobilityId": "445ba40609ea1c25", "scanner": "scanner-primary", "fingerprint": "70504dde5b88c5fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c468d37f24b0793a", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_telemetry_summary.py:21"}, "properties": {"repobilityId": "b519405415ff9a46", "scanner": "scanner-primary", "fingerprint": "c468d37f24b0793a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1ba775cb983907f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_home.py:196"}, "properties": {"repobilityId": "f007ba63f2491ac2", "scanner": "scanner-primary", "fingerprint": "f1ba775cb983907f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15287905fcafc1ef", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/unit/ops/test_run_meta_runner_integration.py:201"}, "properties": {"repobilityId": "a75d51d7892b0abd", "scanner": "scanner-primary", "fingerprint": "15287905fcafc1ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-638b7379b3e8cb55", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/ops/test_persistence_and_history.py:770"}, "properties": {"repobilityId": "e8ea63e5484a741d", "scanner": "scanner-primary", "fingerprint": "638b7379b3e8cb55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5398693c05d2a867", "level": "note", "message": {"text": "Legacy-named symbol `test_stale_when_last_modified_is_old` in tests/unit/ops/test_spec_lifecycle.py:209"}, "properties": {"repobilityId": "2282f1b43a075422", "scanner": "scanner-primary", "fingerprint": "5398693c05d2a867", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d938f7d391766ab4", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_spec_lifecycle.py:47"}, "properties": {"repobilityId": "20ead632f3b84a3d", "scanner": "scanner-primary", "fingerprint": "d938f7d391766ab4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74f6b09ba1dd074a", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/ops/test_pending_writes_api.py:440"}, "properties": {"repobilityId": "4af2c7281ca62e06", "scanner": "scanner-primary", "fingerprint": "74f6b09ba1dd074a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2215b7810e505c56", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_calibration_snapshot.py:47"}, "properties": {"repobilityId": "aae293996fcf93b5", "scanner": "scanner-primary", "fingerprint": "2215b7810e505c56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1532652d77a0f5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_middleware.py:135"}, "properties": {"repobilityId": "396fbda5d2d6b230", "scanner": "scanner-primary", "fingerprint": "d1532652d77a0f5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8750a8e961b20fe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_sweep_results_watcher.py:185"}, "properties": {"repobilityId": "447fe86e9b7f9714", "scanner": "scanner-primary", "fingerprint": "8750a8e961b20fe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77e0e40d5bb85e21", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_sessions_route_s3b.py:274"}, "properties": {"repobilityId": "d0c0523c108b17de", "scanner": "scanner-primary", "fingerprint": "77e0e40d5bb85e21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c71b3482bf51e357", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction.py:39"}, "properties": {"repobilityId": "9cf821699aa3a720", "scanner": "scanner-primary", "fingerprint": "c71b3482bf51e357", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-692f11fdd52c5f61", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/ops/test_session_redaction_snapshot.py:45"}, "properties": {"repobilityId": "61e7d8b9e2f3ecf3", "scanner": "scanner-primary", "fingerprint": "692f11fdd52c5f61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32560c5dd4727e47", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/ops/test_completion_candidates_routes.py:204"}, "properties": {"repobilityId": "4a89f4cd8917a4d8", "scanner": "scanner-primary", "fingerprint": "32560c5dd4727e47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e462ddf8a098d63d", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/ops/test_specs_routes.py:500"}, "properties": {"repobilityId": "87f34ab76227cae4", "scanner": "scanner-primary", "fingerprint": "e462ddf8a098d63d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fe873270b9ba20f", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/unit/ops/test_help_regen.py:29"}, "properties": {"repobilityId": "eed7799d7c9ce40d", "scanner": "scanner-primary", "fingerprint": "5fe873270b9ba20f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8e554e251095948", "level": "note", "message": {"text": "Legacy-named symbol `wizard_v2` in tests/unit/test_generator/test_cli.py:803"}, "properties": {"repobilityId": "5ab59e6b085f889e", "scanner": "scanner-primary", "fingerprint": "d8e554e251095948", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b357716c68a795ae", "level": "note", "message": {"text": "Legacy-named symbol `TestWorkflowResponseLegacy` in tests/unit/mcp/handlers/test_workflow_response.py:103"}, "properties": {"repobilityId": "7411cf849f54aa6e", "scanner": "scanner-primary", "fingerprint": "b357716c68a795ae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b84e60cce0a511ef", "level": "note", "message": {"text": "Legacy-named symbol `test_output_schema_returns_copy` in tests/unit/curator/test_prompt_schema.py:71"}, "properties": {"repobilityId": "fa6059fbeb199fe8", "scanner": "scanner-primary", "fingerprint": "b84e60cce0a511ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cad83397accb4048", "level": "note", "message": {"text": "Legacy-named symbol `env_backup` in tests/unit/agents/release/test_release_models.py:364"}, "properties": {"repobilityId": "75daa3f576ff1e2f", "scanner": "scanner-primary", "fingerprint": "cad83397accb4048", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7ef292d0425fd545", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/progressive/test_workflow.py:121"}, "properties": {"repobilityId": "de7b9d51c8bcb2d8", "scanner": "scanner-primary", "fingerprint": "7ef292d0425fd545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb1bc9ba612d5213", "level": "note", "message": {"text": "Legacy-named symbol `analyzer_v1` in tests/unit/memory/test_short_term.py:183"}, "properties": {"repobilityId": "3005c90101cf3ce7", "scanner": "scanner-primary", "fingerprint": "eb1bc9ba612d5213", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d1ec7cc0166e1e2c", "level": "note", "message": {"text": "Legacy-named symbol `test_pattern_v2` in tests/unit/memory/test_control_panel.py:62"}, "properties": {"repobilityId": "d570cba43ce0f9f1", "scanner": "scanner-primary", "fingerprint": "d1ec7cc0166e1e2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4e8ffb5d5b1a7f8d", "level": "none", "message": {"text": "Commented-code block (23 lines) in tests/unit/memory/test_long_term_methods.py:826"}, "properties": {"repobilityId": "18379c4800cda664", "scanner": "scanner-primary", "fingerprint": "4e8ffb5d5b1a7f8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a021c105afb3b2a", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/memory/test_pubsub_direct.py:144"}, "properties": {"repobilityId": "86a838f509188b4c", "scanner": "scanner-primary", "fingerprint": "1a021c105afb3b2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98a3dc6c90a069df", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/memory/test_redis_auto_detect.py:395"}, "properties": {"repobilityId": "dee6430dcf431e29", "scanner": "scanner-primary", "fingerprint": "98a3dc6c90a069df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33ce7105186dc788", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/memory/test_redis_integration.py:282"}, "properties": {"repobilityId": "daf4602123e15975", "scanner": "scanner-primary", "fingerprint": "33ce7105186dc788", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e08f3c0a998778d2", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/unit/memory/test_long_term_security.py:595"}, "properties": {"repobilityId": "c18aa7267164ccc1", "scanner": "scanner-primary", "fingerprint": "e08f3c0a998778d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-431d354a97c2d0cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/memory/test_cross_session.py:108"}, "properties": {"repobilityId": "777221f1c3e5e104", "scanner": "scanner-primary", "fingerprint": "431d354a97c2d0cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-180bd15042edee56", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/memory/test_redis_bootstrap.py:101"}, "properties": {"repobilityId": "562c26b7f42e92c8", "scanner": "scanner-primary", "fingerprint": "180bd15042edee56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-635cc4f63a4f0dba", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/memory/short_term/test_queues.py:73"}, "properties": {"repobilityId": "2e46859d5109b3a8", "scanner": "scanner-primary", "fingerprint": "635cc4f63a4f0dba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e392e7b288ca89f0", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/unit/memory/short_term/test_conflicts.py:235"}, "properties": {"repobilityId": "7495aaa9b8b4dc7d", "scanner": "scanner-primary", "fingerprint": "e392e7b288ca89f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18d17643c743b2c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/scanner/test_file_traversal.py:300"}, "properties": {"repobilityId": "c6058a99a7fcac9e", "scanner": "scanner-primary", "fingerprint": "18d17643c743b2c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cefe08c35592ae1", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/hooks/test_session_continuity_io.py:234"}, "properties": {"repobilityId": "6c12315e7c63d2c7", "scanner": "scanner-primary", "fingerprint": "3cefe08c35592ae1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eae6b0b9bd2f5ef0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/hooks/test_worktree_path_guard.py:202"}, "properties": {"repobilityId": "8ba40063e1a8016b", "scanner": "scanner-primary", "fingerprint": "eae6b0b9bd2f5ef0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9dd2643b684bda78", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/hooks/test_hook_scripts.py:332"}, "properties": {"repobilityId": "62e3d460d24a17c2", "scanner": "scanner-primary", "fingerprint": "9dd2643b684bda78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa997217b5717a96", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/workflows/test_orchestrated_health_check_comprehensive.py:761"}, "properties": {"repobilityId": "42043c1f46f19060", "scanner": "scanner-primary", "fingerprint": "fa997217b5717a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd273e90e85bdc5a", "level": "note", "message": {"text": "Legacy-named symbol `via_legacy` in tests/unit/workflows/test_orchestrated_health_check.py:786"}, "properties": {"repobilityId": "17507220ab8da2ac", "scanner": "scanner-primary", "fingerprint": "cd273e90e85bdc5a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5dd3e75ac6ed9102", "level": "note", "message": {"text": "Legacy-named symbol `test_load_cached_advisories_warns_when_cache_old` in tests/unit/workflows/test_dependency_check_audit.py:62"}, "properties": {"repobilityId": "f3604e28b7599595", "scanner": "scanner-primary", "fingerprint": "5dd3e75ac6ed9102", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cdbd4798c3868584", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/workflows/test_workflow_execution.py:616"}, "properties": {"repobilityId": "eb3767a98df84d89", "scanner": "scanner-primary", "fingerprint": "cdbd4798c3868584", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-647a537a2c76b176", "level": "note", "message": {"text": "Legacy-named symbol `test_old` in tests/unit/workflows/test_test_maintenance.py:285"}, "properties": {"repobilityId": "40da491d413c2e42", "scanner": "scanner-primary", "fingerprint": "647a537a2c76b176", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a0635db0f2c6690c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/workflows/progressive/test_cost_telemetry.py:55"}, "properties": {"repobilityId": "82223864d30665e3", "scanner": "scanner-primary", "fingerprint": "a0635db0f2c6690c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ca86357b360b5f0", "level": "note", "message": {"text": "Legacy-named symbol `env_backup` in tests/unit/meta_workflows/test_llm_execution.py:457"}, "properties": {"repobilityId": "8b7aaeca836fb600", "scanner": "scanner-primary", "fingerprint": "5ca86357b360b5f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-691c033387cd3cf4", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/scripts/test_audit_worktrees.py:29"}, "properties": {"repobilityId": "ba9a2681f920b937", "scanner": "scanner-primary", "fingerprint": "691c033387cd3cf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8047de033f7d3e0", "level": "note", "message": {"text": "Legacy-named symbol `_also_unused` in tests/golden_files/simplify/over_engineered/input.py:96"}, "properties": {"repobilityId": "a3d9bd5babc326d3", "scanner": "scanner-primary", "fingerprint": "f8047de033f7d3e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-28fae9e4ca0ced32", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/memory/test_unified_memory.py:245"}, "properties": {"repobilityId": "e370f026b63db771", "scanner": "scanner-primary", "fingerprint": "28fae9e4ca0ced32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2795048447300f9a", "level": "note", "message": {"text": "Legacy-named symbol `env_backup` in tests/memory/test_redis_config.py:188"}, "properties": {"repobilityId": "4381f77c3e1c276e", "scanner": "scanner-primary", "fingerprint": "2795048447300f9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a0bd65f10403135", "level": "note", "message": {"text": "Legacy-named symbol `test_get_platform_info_returns_copy` in tests/core/test_platform_utils.py:402"}, "properties": {"repobilityId": "332e12f67063457a", "scanner": "scanner-primary", "fingerprint": "6a0bd65f10403135", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bfa35e96177b0260", "level": "note", "message": {"text": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_base.py:345"}, "properties": {"repobilityId": "09764a4120c6244e", "scanner": "scanner-primary", "fingerprint": "bfa35e96177b0260", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2f20e49904094846", "level": "note", "message": {"text": "Legacy-named symbol `test_get_conversation_history_returns_copy` in tests/agent_factory/test_native_adapter.py:232"}, "properties": {"repobilityId": "1c119ef81e7b1726", "scanner": "scanner-primary", "fingerprint": "2f20e49904094846", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-99f1bc1005e11d96", "level": "note", "message": {"text": "Legacy-named symbol `agent1_copy` in tests/agents_md/test_loader.py:152"}, "properties": {"repobilityId": "bce686075bde49d9", "scanner": "scanner-primary", "fingerprint": "99f1bc1005e11d96", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c055534f1ca256ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in plugin/hooks/_state.py:40"}, "properties": {"repobilityId": "9a10bfc52dd8d7c6", "scanner": "scanner-primary", "fingerprint": "c055534f1ca256ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c4554eebf98fbdf", "level": "none", "message": {"text": "Commented-code block (6 lines) in plugin/hooks/session_stash.py:73"}, "properties": {"repobilityId": "a892cfba77e0e736", "scanner": "scanner-primary", "fingerprint": "8c4554eebf98fbdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-106143b807ec9e17", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/score_test_quality.py:50"}, "properties": {"repobilityId": "683e241ce4a63cba", "scanner": "scanner-primary", "fingerprint": "106143b807ec9e17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7ea715564d09275", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_2_setup.py:357"}, "properties": {"repobilityId": "5fd21f0ef4c819ea", "scanner": "scanner-primary", "fingerprint": "d7ea715564d09275", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63a4292369654133", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/batch10_workflow.py:64"}, "properties": {"repobilityId": "d8b435c9cb311aaa", "scanner": "scanner-primary", "fingerprint": "63a4292369654133", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-556178837bc06db7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/qa_post_release.py:64"}, "properties": {"repobilityId": "d02c61c66dbc14e5", "scanner": "scanner-primary", "fingerprint": "556178837bc06db7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9623f4b241e72118", "level": "note", "message": {"text": "Stub function `check_core_imports` (body is just `pass`/`return`) \u2014 scripts/qa_post_release.py:79"}, "properties": {"repobilityId": "42587068cabe49e6", "scanner": "scanner-primary", "fingerprint": "9623f4b241e72118", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8d689c1c7380e15f", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build_session_fixtures.py:107"}, "properties": {"repobilityId": "d7de34bb54fd9327", "scanner": "scanner-primary", "fingerprint": "8d689c1c7380e15f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12d68edf642a0d8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/fix_mkdocs_paths.py:27"}, "properties": {"repobilityId": "b48c825df1867278", "scanner": "scanner-primary", "fingerprint": "12d68edf642a0d8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed9e2b9e3d39d073", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/launch_autonomous_test_gen.py:29"}, "properties": {"repobilityId": "0e1b954d75eb92d6", "scanner": "scanner-primary", "fingerprint": "ed9e2b9e3d39d073", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c5b01bbb67605ccf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/run_tests.py:50"}, "properties": {"repobilityId": "dbd75f4902bff4f2", "scanner": "scanner-primary", "fingerprint": "c5b01bbb67605ccf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acb71cc213552004", "level": "note", "message": {"text": "Legacy-named symbol `no_backup` in scripts/migrate_workflow_history.py:188"}, "properties": {"repobilityId": "94c405b86037dbe4", "scanner": "scanner-primary", "fingerprint": "acb71cc213552004", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c88fee7f90eca89", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/audit_docs_wiring.py:207"}, "properties": {"repobilityId": "6bdf9b176d263c7f", "scanner": "scanner-primary", "fingerprint": "2c88fee7f90eca89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad5000b2f9db6ccd", "level": "none", "message": {"text": "Commented-code block (7 lines) in website/test/capabilities-accuracy.test.ts:16"}, "properties": {"repobilityId": "77cb796b9fecdc40", "scanner": "scanner-primary", "fingerprint": "ad5000b2f9db6ccd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dee6a83271587b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/SBARWizard.tsx:240"}, "properties": {"repobilityId": "bf0a1483ce2b3504", "scanner": "scanner-primary", "fingerprint": "8dee6a83271587b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63e034ead8115f67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/debug-wizard/DebugWizard.tsx:533"}, "properties": {"repobilityId": "30a6cd5b732c5d41", "scanner": "scanner-primary", "fingerprint": "63e034ead8115f67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4802e4c163a3951c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 website/components/telemetry/hooks/useTelemetryData.ts:126"}, "properties": {"repobilityId": "1c4837d2a03e2ebd", "scanner": "scanner-primary", "fingerprint": "4802e4c163a3951c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e024c32ff09f1600", "level": "none", "message": {"text": "Commented-code block (6 lines) in website/public/framework-docs/assets/javascripts/lunr/wordcut.js:627"}, "properties": {"repobilityId": "3ee59391faccebd3", "scanner": "scanner-primary", "fingerprint": "e024c32ff09f1600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87986494840ddf66", "level": "none", "message": {"text": "Commented-code block (5 lines) in agents/compliance_anticipation_agent.py:118"}, "properties": {"repobilityId": "0175ba72c4420c93", "scanner": "scanner-primary", "fingerprint": "87986494840ddf66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef2f0d140faea0fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in agents/book_production/base.py:441"}, "properties": {"repobilityId": "6e5fc3c1e09150e2", "scanner": "scanner-primary", "fingerprint": "ef2f0d140faea0fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe88048419731098", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 attune-ai-dev/help/search.js:7"}, "properties": {"repobilityId": "cde88ed2ef7a6cb3", "scanner": "scanner-primary", "fingerprint": "fe88048419731098", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd6c1c27c06912ce", "level": "note", "message": {"text": "Legacy-named symbol `analysis_v1` in examples/redis_exploration.py:104"}, "properties": {"repobilityId": "9394b3809990aae7", "scanner": "scanner-primary", "fingerprint": "cd6c1c27c06912ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f7da7b2a13ce231", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def run_stage` \u2014 examples/approval_gates_demo.py:258"}, "properties": {"repobilityId": "2e972b351a3af3da", "scanner": "scanner-primary", "fingerprint": "0f7da7b2a13ce231", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/approval_gates_demo.py"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-6fcf8cb34d41db74", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/multi_llm_usage.py:196"}, "properties": {"repobilityId": "f2e56362259f62de", "scanner": "scanner-primary", "fingerprint": "6fcf8cb34d41db74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e5e7bfcffa0f86d", "level": "none", "message": {"text": "Commented-code block (5 lines) in attune_redis/tests/conftest.py:103"}, "properties": {"repobilityId": "5e2b94f3dd88f92b", "scanner": "scanner-primary", "fingerprint": "4e5e7bfcffa0f86d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d5eb370d02c2920", "level": "note", "message": {"text": "Legacy-named symbol `TestWorkingMemoryReadIsNotDeprecated` in attune_redis/tests/test_memory.py:147"}, "properties": {"repobilityId": "f11be7a0b0024184", "scanner": "scanner-primary", "fingerprint": "4d5eb370d02c2920", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-523d8136f3c7c28a", "level": "note", "message": {"text": "Legacy-named symbol `analysis_v1` in src/attune/redis_memory_storage.py:158"}, "properties": {"repobilityId": "8fd1d294e1b839ec", "scanner": "scanner-primary", "fingerprint": "523d8136f3c7c28a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b20790297add3367", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/cost_tracker.py:48"}, "properties": {"repobilityId": "156ce595eb4eb8d5", "scanner": "scanner-primary", "fingerprint": "b20790297add3367", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89fd06db90743236", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/models/auth_strategy.py:147"}, "properties": {"repobilityId": "ec5e367f4d272444", "scanner": "scanner-primary", "fingerprint": "89fd06db90743236", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c0bc82a5e92c74e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/spec/state.py:31"}, "properties": {"repobilityId": "8b32fdaf251d9b75", "scanner": "scanner-primary", "fingerprint": "4c0bc82a5e92c74e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31f537ffe873f5f0", "level": "note", "message": {"text": "Legacy-named symbol `attune_config_legacy` in src/attune/config/__init__.py:30"}, "properties": {"repobilityId": "3c145f61842a6d0e", "scanner": "scanner-primary", "fingerprint": "31f537ffe873f5f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a886ffaaa38e7e85", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/ops/anthropic_cost.py:201"}, "properties": {"repobilityId": "7b72381bd7600e21", "scanner": "scanner-primary", "fingerprint": "a886ffaaa38e7e85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6be762f75875a5f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/help_data.py:476"}, "properties": {"repobilityId": "af8373da13f80c0c", "scanner": "scanner-primary", "fingerprint": "6be762f75875a5f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9082dd44778fd3b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/config.py:33"}, "properties": {"repobilityId": "9ac8858d7e588cc1", "scanner": "scanner-primary", "fingerprint": "9082dd44778fd3b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8bfbaa4cdeb8845", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/ops/run_meta_stdout.py:60"}, "properties": {"repobilityId": "4883b452e69bc355", "scanner": "scanner-primary", "fingerprint": "f8bfbaa4cdeb8845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4054fd0fa765c5de", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/cli.py:80"}, "properties": {"repobilityId": "fed3358bfae95db5", "scanner": "scanner-primary", "fingerprint": "4054fd0fa765c5de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d28b9e3a1e0b9fef", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/ops/server.py:145"}, "properties": {"repobilityId": "73e0813197f1006e", "scanner": "scanner-primary", "fingerprint": "d28b9e3a1e0b9fef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f683ddca7b0a8e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/runner.py:40"}, "properties": {"repobilityId": "538471e67688e14e", "scanner": "scanner-primary", "fingerprint": "7f683ddca7b0a8e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62025adef5a9feb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/data.py:70"}, "properties": {"repobilityId": "25cc9b73288f8178", "scanner": "scanner-primary", "fingerprint": "62025adef5a9feb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0809c9a7837161e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/session_redaction.py:100"}, "properties": {"repobilityId": "95361a923a2277a6", "scanner": "scanner-primary", "fingerprint": "0809c9a7837161e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eabb9c66d5591ac9", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/attune/ops/workflow_concern.py:60"}, "properties": {"repobilityId": "dfa91b86573af0bc", "scanner": "scanner-primary", "fingerprint": "eabb9c66d5591ac9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d96c4a7b04c1411", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/specs.js:157"}, "properties": {"repobilityId": "53f8eee010249bb2", "scanner": "scanner-primary", "fingerprint": "9d96c4a7b04c1411", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39345ebbcc9c6746", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/completion_candidates.js:133"}, "properties": {"repobilityId": "9497e1c99e4364db", "scanner": "scanner-primary", "fingerprint": "39345ebbcc9c6746", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa7bae60950a1bf5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/run_view.js:4"}, "properties": {"repobilityId": "25cb8a46c5f21837", "scanner": "scanner-primary", "fingerprint": "aa7bae60950a1bf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-834a6703f0f8827d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/run_view.js:324"}, "properties": {"repobilityId": "1023d371423fe4ff", "scanner": "scanner-primary", "fingerprint": "834a6703f0f8827d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3b9f7f8aaf150d04", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/ops/static/js/specs_refined.js:79"}, "properties": {"repobilityId": "7254e2aad31fa644", "scanner": "scanner-primary", "fingerprint": "3b9f7f8aaf150d04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-179259f73f5208d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/ops/static/js/client_token.js:3"}, "properties": {"repobilityId": "58360d42e8a50980", "scanner": "scanner-primary", "fingerprint": "179259f73f5208d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89fa685ef2e42728", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/client_token.js:5"}, "properties": {"repobilityId": "98b2e5d24ae0fe32", "scanner": "scanner-primary", "fingerprint": "89fa685ef2e42728", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0124b859c27fe15f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/ops/static/js/workflows_kebab.js:3"}, "properties": {"repobilityId": "b20d12cf02dc0ca4", "scanner": "scanner-primary", "fingerprint": "0124b859c27fe15f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e4aae75f7e17205", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/static/js/runner.js:5"}, "properties": {"repobilityId": "4565fdbe2123f2b3", "scanner": "scanner-primary", "fingerprint": "8e4aae75f7e17205", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eef0a47382f602cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/attune/ops/static/js/runner.js:532"}, "properties": {"repobilityId": "09c40333fa357a65", "scanner": "scanner-primary", "fingerprint": "eef0a47382f602cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a78f087950cab7df", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/ops/routes/specs.py:111"}, "properties": {"repobilityId": "d4ddc820ec8970a0", "scanner": "scanner-primary", "fingerprint": "a78f087950cab7df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d043bfdb09dd8bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/ops/routes/dashboard.py:34"}, "properties": {"repobilityId": "2aba45670b5ba36b", "scanner": "scanner-primary", "fingerprint": "3d043bfdb09dd8bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eea9a6d187433f9b", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/attune/ops/routes/sessions.py:122"}, "properties": {"repobilityId": "6973ddec09dfc827", "scanner": "scanner-primary", "fingerprint": "eea9a6d187433f9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dee5a7a1f6eee651", "level": "error", "message": {"text": "Blocking `httpx.get(...)` inside `async def call_api` \u2014 src/attune/resilience/retry.py:68"}, "properties": {"repobilityId": "ffa44bc34f79cc7c", "scanner": "scanner-primary", "fingerprint": "dee5a7a1f6eee651", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/attune/resilience/retry.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-aa000dd8c0eeee34", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/memory/features.py:238"}, "properties": {"repobilityId": "499b8c2549d6c551", "scanner": "scanner-primary", "fingerprint": "aa000dd8c0eeee34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa6b9c1a34270e29", "level": "note", "message": {"text": "Legacy-named symbol `analysis_v1` in src/attune/memory/short_term/working.py:124"}, "properties": {"repobilityId": "d86c0620943ede19", "scanner": "scanner-primary", "fingerprint": "aa6b9c1a34270e29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be9d950f291fb786", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/gates/spend_gate.py:139"}, "properties": {"repobilityId": "0def1dfa6955dabd", "scanner": "scanner-primary", "fingerprint": "be9d950f291fb786", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b95e73dde2d74ef8", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in src/attune/patterns/contextual.py:227"}, "properties": {"repobilityId": "6db2820cbad3b20e", "scanner": "scanner-primary", "fingerprint": "b95e73dde2d74ef8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-181930e77b89b2aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/execution_mixin.py:571"}, "properties": {"repobilityId": "17dfec25cafe6dbf", "scanner": "scanner-primary", "fingerprint": "181930e77b89b2aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9de4222b99f449ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/workflows/code_review.py:66"}, "properties": {"repobilityId": "53fc67d059eb5e4b", "scanner": "scanner-primary", "fingerprint": "9de4222b99f449ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8f37e722ac3714d", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/attune/workflows/__init__.py:179"}, "properties": {"repobilityId": "c6c72988a311cd2d", "scanner": "scanner-primary", "fingerprint": "e8f37e722ac3714d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dddd9dd9a98a588f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/workflows/config.py:537"}, "properties": {"repobilityId": "6a11706a6dc51877", "scanner": "scanner-primary", "fingerprint": "dddd9dd9a98a588f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-029486823d3c6a10", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/executor_mixin.py:200"}, "properties": {"repobilityId": "592982637e9a6484", "scanner": "scanner-primary", "fingerprint": "029486823d3c6a10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54dc7430876bb7cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/bug_predict_patterns.py:89"}, "properties": {"repobilityId": "4de01873dd53d683", "scanner": "scanner-primary", "fingerprint": "54dc7430876bb7cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19e2b0be13749dbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/workflows/security_audit.py:194"}, "properties": {"repobilityId": "e5bc0d468dfe88e8", "scanner": "scanner-primary", "fingerprint": "19e2b0be13749dbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fb2774a401e77e4", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/attune/workflows/bug_predict.py:197"}, "properties": {"repobilityId": "f2605eee636d77aa", "scanner": "scanner-primary", "fingerprint": "5fb2774a401e77e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c4cc421f438b008", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/parsing_mixin.py:134"}, "properties": {"repobilityId": "9d1b37871e0b2b43", "scanner": "scanner-primary", "fingerprint": "2c4cc421f438b008", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06a0fd7fc7f4529a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/workflows/rag_code_gen.py:45"}, "properties": {"repobilityId": "a86f42f1b6e0e6e9", "scanner": "scanner-primary", "fingerprint": "06a0fd7fc7f4529a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0500feb9c5d90380", "level": "note", "message": {"text": "Legacy-named symbol `is_deprecated` in src/attune/workflows/migration.py:355"}, "properties": {"repobilityId": "0d5eb77bfd76692f", "scanner": "scanner-primary", "fingerprint": "0500feb9c5d90380", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-76b2e3301300ffc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/agent_sdk_adapter.py:216"}, "properties": {"repobilityId": "ea963852905ea59f", "scanner": "scanner-primary", "fingerprint": "76b2e3301300ffc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eff5717e35e5d760", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/workflows/agent_sdk_adapter.py:770"}, "properties": {"repobilityId": "094a4826ea677e6e", "scanner": "scanner-primary", "fingerprint": "eff5717e35e5d760", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9bf61144d3ac29d7", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/attune/workflows/perf_audit.py:183"}, "properties": {"repobilityId": "5c410df95099af06", "scanner": "scanner-primary", "fingerprint": "9bf61144d3ac29d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97d424eee753203c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/workflows/progressive/__init__.py:21"}, "properties": {"repobilityId": "943b132079c830e4", "scanner": "scanner-primary", "fingerprint": "97d424eee753203c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38f3e1dac2fb40ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/workflows/discovery_sweep/workflow.py:545"}, "properties": {"repobilityId": "09d36cac78abd840", "scanner": "scanner-primary", "fingerprint": "38f3e1dac2fb40ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5631888077b2ccdf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/workflows/discovery_sweep/sources/pattern_scan.py:306"}, "properties": {"repobilityId": "8f52c155178b7c2f", "scanner": "scanner-primary", "fingerprint": "5631888077b2ccdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-022a9d2348f01d31", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/project_index/file_analysis.py:216"}, "properties": {"repobilityId": "4ea209d7a2de2462", "scanner": "scanner-primary", "fingerprint": "022a9d2348f01d31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd58dc3b3b2e1c95", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/project_index/index.py:304"}, "properties": {"repobilityId": "6660f6dac722999f", "scanner": "scanner-primary", "fingerprint": "cd58dc3b3b2e1c95", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-41a7bb5a1c1695ae", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/attune/prompts/examples.py:26"}, "properties": {"repobilityId": "2691cd6f2944d98f", "scanner": "scanner-primary", "fingerprint": "41a7bb5a1c1695ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ce1fb71634f0e36", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/attune/wizards/builtin/security_wizard.py:189"}, "properties": {"repobilityId": "4028494ba0e2dfc8", "scanner": "scanner-primary", "fingerprint": "0ce1fb71634f0e36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-411f9e0d73ca1618", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/attune/meta_workflows/llm_execution.py:379"}, "properties": {"repobilityId": "55a5bdf9eec99e19", "scanner": "scanner-primary", "fingerprint": "411f9e0d73ca1618", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-444de7e4d29c2884", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/telemetry/usage_tracker.py:106"}, "properties": {"repobilityId": "778dad4b408eeadf", "scanner": "scanner-primary", "fingerprint": "444de7e4d29c2884", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5f2c2c165649853", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/attune/cli_commands/workflow_commands.py:147"}, "properties": {"repobilityId": "cd46b0320ada4f26", "scanner": "scanner-primary", "fingerprint": "b5f2c2c165649853", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcdd1307187b61cc", "level": "note", "message": {"text": "98 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "51c4192f5836ddfa", "scanner": "scanner-primary", "fingerprint": "fcdd1307187b61cc", "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": "3a4fafb96f29097b", "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": "caf3b4f3183a3cab", "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": "19a5da10fa8c89d1", "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": "13ee9e471d4c48ab", "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": "842c266eb74ed7c4", "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": "48c6f44e9afe68da", "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": "24389b79920c83d2", "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": "c84d432a670bf87a", "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": "d6f370c23d05b7db", "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": "9f1fa96396db5bc1", "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": "970a46f7724069cf", "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": "8814f9887e7c6788", "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": "850006b05685cd62", "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": "8a591c269edb0804", "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": "78e59810bb215557", "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": "7075e9760f4d6577", "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": "61915347bb391c83", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "0f531fe8d6d619cc", "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": "a7413304d82dfa25", "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": "74e3fb803127985a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-112ba8168c1a4126", "level": "error", "message": {"text": "FastAPI POST `run_inspection` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:42"}, "properties": {"repobilityId": "3390026588045ee3", "scanner": "scanner-primary", "fingerprint": "112ba8168c1a4126", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deployments/wizards-backend/routers/inspect.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-b5549f039ad296ad", "level": "error", "message": {"text": "FastAPI POST `quick_scan` without auth dependency \u2014 deployments/wizards-backend/routers/inspect.py:107"}, "properties": {"repobilityId": "cc0112dd10b5bb9c", "scanner": "scanner-primary", "fingerprint": "b5549f039ad296ad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deployments/wizards-backend/routers/inspect.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-8182f5f5a8920804", "level": "error", "message": {"text": "FastAPI POST `refresh_token` without auth dependency \u2014 backend/api/auth.py:140"}, "properties": {"repobilityId": "e0f23cbdb4533970", "scanner": "scanner-primary", "fingerprint": "8182f5f5a8920804", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/auth.py"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-bb02de644003c7b6", "level": "error", "message": {"text": "FastAPI POST `validate_license` without auth dependency \u2014 backend/api/auth.py:184"}, "properties": {"repobilityId": "3fdea8da2c048e9f", "scanner": "scanner-primary", "fingerprint": "bb02de644003c7b6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/auth.py"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-04a9d46d256b33ee", "level": "error", "message": {"text": "FastAPI PUT `update_profile` without auth dependency \u2014 backend/api/users.py:44"}, "properties": {"repobilityId": "f4d856e2b0b16e4a", "scanner": "scanner-primary", "fingerprint": "04a9d46d256b33ee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/users.py"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-3fce50d5bcb2f2df", "level": "error", "message": {"text": "FastAPI DELETE `delete_account` without auth dependency \u2014 backend/api/users.py:89"}, "properties": {"repobilityId": "9c43656b3c4a4b38", "scanner": "scanner-primary", "fingerprint": "3fce50d5bcb2f2df", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/users.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-ca437907c941eb04", "level": "error", "message": {"text": "FastAPI POST `purchase_subscription` without auth dependency \u2014 backend/api/subscriptions.py:55"}, "properties": {"repobilityId": "fe41365d713298a6", "scanner": "scanner-primary", "fingerprint": "ca437907c941eb04", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/subscriptions.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-a7510fb22ab47190", "level": "error", "message": {"text": "FastAPI POST `add_team_member` without auth dependency \u2014 backend/api/subscriptions.py:110"}, "properties": {"repobilityId": "9de53acb5230ff01", "scanner": "scanner-primary", "fingerprint": "a7510fb22ab47190", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/subscriptions.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-022b44b9afd87e81", "level": "error", "message": {"text": "FastAPI DELETE `remove_team_member` without auth dependency \u2014 backend/api/subscriptions.py:132"}, "properties": {"repobilityId": "5ff8609b0838342f", "scanner": "scanner-primary", "fingerprint": "022b44b9afd87e81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/subscriptions.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-a4893bd8b7b3479c", "level": "error", "message": {"text": "FastAPI POST `deactivate_license` without auth dependency \u2014 backend/api/subscriptions.py:178"}, "properties": {"repobilityId": "1769e53353ef26e3", "scanner": "scanner-primary", "fingerprint": "a4893bd8b7b3479c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/subscriptions.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-17ccacdcb5e9ec6f", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 backend/api/analysis.py:110"}, "properties": {"repobilityId": "2a850689d7ceafd1", "scanner": "scanner-primary", "fingerprint": "17ccacdcb5e9ec6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/analysis.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-dbde5ca2596b31ab", "level": "error", "message": {"text": "FastAPI POST `analyze_project` without auth dependency \u2014 backend/api/analysis.py:162"}, "properties": {"repobilityId": "28760bf5c92f89e8", "scanner": "scanner-primary", "fingerprint": "dbde5ca2596b31ab", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/analysis.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-82f99d8b33e3d5c5", "level": "error", "message": {"text": "FastAPI POST `analyze_file` without auth dependency \u2014 backend/api/analysis.py:193"}, "properties": {"repobilityId": "6a2ceb95a66eb2ad", "scanner": "scanner-primary", "fingerprint": "82f99d8b33e3d5c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/analysis.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-f645cadc6159c219", "level": "error", "message": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 backend/api/analysis.py:325"}, "properties": {"repobilityId": "d9b8daaad0e0a7b0", "scanner": "scanner-primary", "fingerprint": "f645cadc6159c219", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/api/analysis.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-fb3ea46316680aa6", "level": "error", "message": {"text": "Dangling fetch: GET /help/search-index.json (attune-ai-dev/help/search.js:7)"}, "properties": {"repobilityId": "a41f8fc02fc8f093", "scanner": "scanner-primary", "fingerprint": "fb3ea46316680aa6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3727f6b8d1145ee", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStarsBadge.tsx:18)"}, "properties": {"repobilityId": "3154587d6ba7a970", "scanner": "scanner-primary", "fingerprint": "f3727f6b8d1145ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89baa4b91bf60196", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/invoke (website/components/WizardPlayground.tsx:65)"}, "properties": {"repobilityId": "2bc24559eb109145", "scanner": "scanner-primary", "fingerprint": "89baa4b91bf60196", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f80c34a94374da18", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/sbar/start (website/components/SBARWizard.tsx:179)"}, "properties": {"repobilityId": "2aa2342b397a6292", "scanner": "scanner-primary", "fingerprint": "f80c34a94374da18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5b2332e48ae53be", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/sbar/enhance (website/components/SBARWizard.tsx:240)"}, "properties": {"repobilityId": "0974b795d2609ba7", "scanner": "scanner-primary", "fingerprint": "f5b2332e48ae53be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-500969b63f4f124a", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/sbar/priority (website/components/SBARWizard.tsx:278)"}, "properties": {"repobilityId": "c46b399343e7bdb5", "scanner": "scanner-primary", "fingerprint": "500969b63f4f124a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba73cfe04cd7506c", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/sbar/medications (website/components/SBARWizard.tsx:306)"}, "properties": {"repobilityId": "faa09f5b7321f2c8", "scanner": "scanner-primary", "fingerprint": "ba73cfe04cd7506c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-500a620d82904975", "level": "error", "message": {"text": "Dangling fetch: POST /api/wizards/sbar/generate (website/components/SBARWizard.tsx:353)"}, "properties": {"repobilityId": "9bbfd5c04ce1c590", "scanner": "scanner-primary", "fingerprint": "500a620d82904975", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16691151a018df9a", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo} (website/components/GitHubStats.tsx:26)"}, "properties": {"repobilityId": "5ea2b7e9fe392ba9", "scanner": "scanner-primary", "fingerprint": "16691151a018df9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a0a2212a287d79d", "level": "error", "message": {"text": "Dangling fetch: GET /api/costs?limit=10&days=7 (website/components/CostSavingsCard.tsx:65)"}, "properties": {"repobilityId": "3d450a3adf844d88", "scanner": "scanner-primary", "fingerprint": "8a0a2212a287d79d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-850beb957c701d81", "level": "error", "message": {"text": "Dangling fetch: POST /api/newsletter (website/components/NewsletterSignup.tsx:20)"}, "properties": {"repobilityId": "b7ec6cb7af72e1b8", "scanner": "scanner-primary", "fingerprint": "850beb957c701d81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b4266c5b2102bad", "level": "error", "message": {"text": "Dangling fetch: POST /api/newsletter (website/components/LeadMagnet.tsx:16)"}, "properties": {"repobilityId": "f12408af133956db", "scanner": "scanner-primary", "fingerprint": "4b4266c5b2102bad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92036bae0085a113", "level": "error", "message": {"text": "Dangling fetch: POST /api/debug-wizard/analyze (website/components/debug-wizard/DebugWizard.tsx:533)"}, "properties": {"repobilityId": "1a4d4e9578b3adf1", "scanner": "scanner-primary", "fingerprint": "92036bae0085a113", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c971eeab496a71b", "level": "error", "message": {"text": "Dangling fetch: POST /api/contact (website/app/contact/page.tsx:95)"}, "properties": {"repobilityId": "7a6ead0aeed5ae2a", "scanner": "scanner-primary", "fingerprint": "9c971eeab496a71b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28385a777dda3904", "level": "error", "message": {"text": "Dangling fetch: POST https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members (website/lib/email/mailchimp.ts:29)"}, "properties": {"repobilityId": "c183ca02b4fa3fca", "scanner": "scanner-primary", "fingerprint": "28385a777dda3904", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46d1b833a6839928", "level": "error", "message": {"text": "Dangling fetch: GET https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/email/mailchimp.ts:98)"}, "properties": {"repobilityId": "616f974a0a182356", "scanner": "scanner-primary", "fingerprint": "46d1b833a6839928", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0aef29bfd36491f", "level": "error", "message": {"text": "Dangling fetch: PATCH https://${serverPrefix}.api.mailchimp.com/3.0/lists/${listId}/members/${emailHash} (website/lib/email/mailchimp.ts:140)"}, "properties": {"repobilityId": "506fd2027b6565f0", "scanner": "scanner-primary", "fingerprint": "d0aef29bfd36491f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "a2e7539834585a2f", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c236625afb6a8cb", "level": "note", "message": {"text": "Unused endpoint: GET /ready"}, "properties": {"repobilityId": "9f0c5a54d8c2e241", "scanner": "scanner-primary", "fingerprint": "8c236625afb6a8cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d6d412ba6647f6cc", "level": "note", "message": {"text": "Unused endpoint: GET /live"}, "properties": {"repobilityId": "c226a1b7762e6057", "scanner": "scanner-primary", "fingerprint": "d6d412ba6647f6cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69a693dfc33637f4", "level": "note", "message": {"text": "Unused endpoint: POST /run"}, "properties": {"repobilityId": "db002afb5f29989b", "scanner": "scanner-primary", "fingerprint": "69a693dfc33637f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a6a03711f3fb9b0", "level": "note", "message": {"text": "Unused endpoint: POST /quick"}, "properties": {"repobilityId": "ba4bec3c8c3b72e8", "scanner": "scanner-primary", "fingerprint": "4a6a03711f3fb9b0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9558568720c343c6", "level": "note", "message": {"text": "Unused endpoint: GET /formats"}, "properties": {"repobilityId": "6c1b54f56bec4aa2", "scanner": "scanner-primary", "fingerprint": "9558568720c343c6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-157604b431902532", "level": "note", "message": {"text": "Unused endpoint: GET /demo"}, "properties": {"repobilityId": "a8f62e87d6c4371c", "scanner": "scanner-primary", "fingerprint": "157604b431902532", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8131430b3d775c7c", "level": "note", "message": {"text": "Unused endpoint: POST /{{wizard_id}}/enhance"}, "properties": {"repobilityId": "a12fa59cedc142f1", "scanner": "scanner-primary", "fingerprint": "8131430b3d775c7c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-caf9a9d83a66d6f0", "level": "note", "message": {"text": "Unused endpoint: POST /{{wizard_id}}/save"}, "properties": {"repobilityId": "a982c4004ef6b6f2", "scanner": "scanner-primary", "fingerprint": "caf9a9d83a66d6f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a13a7e97aeacf55f", "level": "note", "message": {"text": "Unused endpoint: POST /start"}, "properties": {"repobilityId": "3e383d2562c5877e", "scanner": "scanner-primary", "fingerprint": "a13a7e97aeacf55f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b651ca796146c431", "level": "note", "message": {"text": "Unused endpoint: POST /{{wizard_id}}/preview"}, "properties": {"repobilityId": "3d9ac614089f22df", "scanner": "scanner-primary", "fingerprint": "b651ca796146c431", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cd256c2109bd2f5", "level": "note", "message": {"text": "Unused endpoint: POST /{{wizard_id}}/step"}, "properties": {"repobilityId": "9b6c499a44585b51", "scanner": "scanner-primary", "fingerprint": "0cd256c2109bd2f5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7fdeef0c3e252a94", "level": "note", "message": {"text": "Unused endpoint: GET /{{wizard_id}}/report"}, "properties": {"repobilityId": "2b0b663c30138c05", "scanner": "scanner-primary", "fingerprint": "7fdeef0c3e252a94", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "3c95aa69206af894", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc1afb9c1261643f", "level": "note", "message": {"text": "Unused endpoint: GET /api/info"}, "properties": {"repobilityId": "26367f1874c6e8ac", "scanner": "scanner-primary", "fingerprint": "bc1afb9c1261643f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-618721b912bad1c2", "level": "note", "message": {"text": "Unused endpoint: POST /login"}, "properties": {"repobilityId": "d8ae83a298978baf", "scanner": "scanner-primary", "fingerprint": "618721b912bad1c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-304b6f2b403d93f7", "level": "note", "message": {"text": "Unused endpoint: POST /register"}, "properties": {"repobilityId": "3ae75703476f5c82", "scanner": "scanner-primary", "fingerprint": "304b6f2b403d93f7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ce17d6b092a81ca", "level": "note", "message": {"text": "Unused endpoint: POST /refresh"}, "properties": {"repobilityId": "62ffef51951407d3", "scanner": "scanner-primary", "fingerprint": "7ce17d6b092a81ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd1dc91abf32142d", "level": "note", "message": {"text": "Unused endpoint: GET /me"}, "properties": {"repobilityId": "0456d92abe5cfcd2", "scanner": "scanner-primary", "fingerprint": "fd1dc91abf32142d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d6ea6eb6f41a220c", "level": "note", "message": {"text": "Unused endpoint: POST /validate-license"}, "properties": {"repobilityId": "e9bbff61e7b99747", "scanner": "scanner-primary", "fingerprint": "d6ea6eb6f41a220c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2595b39638e5c045", "level": "note", "message": {"text": "Unused endpoint: GET /profile"}, "properties": {"repobilityId": "37b0c5e9b1fd2f7d", "scanner": "scanner-primary", "fingerprint": "2595b39638e5c045", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-911492554a68d0c1", "level": "note", "message": {"text": "Unused endpoint: PUT /profile"}, "properties": {"repobilityId": "3c5abe499d4e8bed", "scanner": "scanner-primary", "fingerprint": "911492554a68d0c1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d467299d5c174fc0", "level": "note", "message": {"text": "Unused endpoint: GET /usage"}, "properties": {"repobilityId": "a486da56c0615b4f", "scanner": "scanner-primary", "fingerprint": "d467299d5c174fc0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d4186216041d91fb", "level": "note", "message": {"text": "Unused endpoint: DELETE /account"}, "properties": {"repobilityId": "0038c4de3e523774", "scanner": "scanner-primary", "fingerprint": "d4186216041d91fb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5659d98a2deb346b", "level": "note", "message": {"text": "Unused endpoint: POST /purchase"}, "properties": {"repobilityId": "5b12adc71c905389", "scanner": "scanner-primary", "fingerprint": "5659d98a2deb346b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35d941f552ad676f", "level": "note", "message": {"text": "Unused endpoint: GET /team"}, "properties": {"repobilityId": "6af77d939e8a0160", "scanner": "scanner-primary", "fingerprint": "35d941f552ad676f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1ebede960a11644", "level": "note", "message": {"text": "Unused endpoint: POST /team/members"}, "properties": {"repobilityId": "34c2a886ba60fbdd", "scanner": "scanner-primary", "fingerprint": "e1ebede960a11644", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-df7440e62331adec", "level": "note", "message": {"text": "Unused endpoint: DELETE /team/members/{user_id}"}, "properties": {"repobilityId": "0998c2f1b223101c", "scanner": "scanner-primary", "fingerprint": "df7440e62331adec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35579901f60cc8d1", "level": "note", "message": {"text": "Unused endpoint: GET /licenses"}, "properties": {"repobilityId": "a9ee4bc596623574", "scanner": "scanner-primary", "fingerprint": "35579901f60cc8d1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70d734db402f6014", "level": "note", "message": {"text": "Unused endpoint: POST /licenses/{license_id}/deactivate"}, "properties": {"repobilityId": "de0a721e2d5e2753", "scanner": "scanner-primary", "fingerprint": "70d734db402f6014", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4748872cb583c0fb", "level": "note", "message": {"text": "Unused endpoint: POST /session"}, "properties": {"repobilityId": "75bced7717d7559e", "scanner": "scanner-primary", "fingerprint": "4748872cb583c0fb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-08869e94d02e3c11", "level": "note", "message": {"text": "Unused endpoint: GET /session/{session_id}"}, "properties": {"repobilityId": "c4c4beb0d81ce503", "scanner": "scanner-primary", "fingerprint": "08869e94d02e3c11", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a59d33cad2f6014b", "level": "note", "message": {"text": "Unused endpoint: POST /project"}, "properties": {"repobilityId": "a8de27c9fe19f123", "scanner": "scanner-primary", "fingerprint": "a59d33cad2f6014b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d736ebc912946c9f", "level": "note", "message": {"text": "Unused endpoint: POST /file"}, "properties": {"repobilityId": "1893051b89466451", "scanner": "scanner-primary", "fingerprint": "d736ebc912946c9f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afc064028ae39ea9", "level": "note", "message": {"text": "Unused endpoint: GET /history"}, "properties": {"repobilityId": "74e8a8fb9e65db34", "scanner": "scanner-primary", "fingerprint": "afc064028ae39ea9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9c5074f0d1d9a0b4", "level": "note", "message": {"text": "Unused endpoint: DELETE /session/{session_id}"}, "properties": {"repobilityId": "6a61538bb2aa32d3", "scanner": "scanner-primary", "fingerprint": "9c5074f0d1d9a0b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8d088674305ba9d9", "level": "note", "message": {"text": "Unused endpoint: GET /api/wizards/{wizard_id}"}, "properties": {"repobilityId": "2b040c115539fc2a", "scanner": "scanner-primary", "fingerprint": "8d088674305ba9d9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-430041c1567e0ed3", "level": "note", "message": {"text": "Unused endpoint: GET /completion-candidates"}, "properties": {"repobilityId": "815b42da2e9435e2", "scanner": "scanner-primary", "fingerprint": "430041c1567e0ed3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56608a3bd032f5f4", "level": "note", "message": {"text": "Unused endpoint: GET /{slug}"}, "properties": {"repobilityId": "03c4c25a2702ddb3", "scanner": "scanner-primary", "fingerprint": "56608a3bd032f5f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4b0cdefdeeee4203", "level": "note", "message": {"text": "Unused endpoint: PUT /{slug}/{phase}/status"}, "properties": {"repobilityId": "ff807ec03791a677", "scanner": "scanner-primary", "fingerprint": "4b0cdefdeeee4203", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-505394a683449279", "level": "note", "message": {"text": "Unused endpoint: POST /{slug}/completion-candidates/dismiss"}, "properties": {"repobilityId": "10c2a5a0b604c9c8", "scanner": "scanner-primary", "fingerprint": "505394a683449279", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8dbb92ac42125edf", "level": "note", "message": {"text": "Unused endpoint: GET /workflows"}, "properties": {"repobilityId": "42781fdb67b661f3", "scanner": "scanner-primary", "fingerprint": "8dbb92ac42125edf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-169dbaef5902cd9c", "level": "note", "message": {"text": "Unused endpoint: GET /help"}, "properties": {"repobilityId": "e6f34b6ca48c4141", "scanner": "scanner-primary", "fingerprint": "169dbaef5902cd9c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8165ad533486cab9", "level": "note", "message": {"text": "Unused endpoint: GET /help/search"}, "properties": {"repobilityId": "3c96e9c79fab30ea", "scanner": "scanner-primary", "fingerprint": "8165ad533486cab9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7061caf3bb97c467", "level": "note", "message": {"text": "Unused endpoint: GET /help/admin"}, "properties": {"repobilityId": "35b448d327db60f8", "scanner": "scanner-primary", "fingerprint": "7061caf3bb97c467", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5503c58ab2097236", "level": "note", "message": {"text": "Unused endpoint: GET /help/{feature}/{kind}"}, "properties": {"repobilityId": "2bdc413cd5082af6", "scanner": "scanner-primary", "fingerprint": "5503c58ab2097236", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-388426883f31f1bd", "level": "note", "message": {"text": "Unused endpoint: GET /help/{feature}"}, "properties": {"repobilityId": "f4487bd2729b0955", "scanner": "scanner-primary", "fingerprint": "388426883f31f1bd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b15d518d538de57d", "level": "note", "message": {"text": "Unused endpoint: GET /sessions"}, "properties": {"repobilityId": "d95fec2d02526f4c", "scanner": "scanner-primary", "fingerprint": "b15d518d538de57d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a12014910b5c534", "level": "note", "message": {"text": "Unused endpoint: GET /runs/{run_id}/view"}, "properties": {"repobilityId": "62e14a3983adc2a4", "scanner": "scanner-primary", "fingerprint": "4a12014910b5c534", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e3e43fe2b36d6aba", "level": "note", "message": {"text": "Unused endpoint: GET /specs"}, "properties": {"repobilityId": "5541ea53593e2d8f", "scanner": "scanner-primary", "fingerprint": "e3e43fe2b36d6aba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}