{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6465d923224e379b", "name": "TODO/FIXME marker in shipping code \u2014 apps/aevatar-console-web/src/requestErrorConfig.ts:78", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/aevatar-console-web/src/requestErrorConfig.ts:78"}, "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-cc96fcd0efed886b", "name": "Stray `console.log` in TS/JS \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:77"}, "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-a5fe681bf841e26d", "name": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/pages/MissionControl/TopologyCanvas.tsx:545", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/pages/MissionControl/TopologyCanvas.tsx:545"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4e0e12a8496c1c3", "name": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/shared/graphs/GraphCanvas.tsx:528", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/shared/graphs/GraphCanvas.tsx:528"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ffebacb078d029a3", "name": "Dockerfile runs as root: src/Aevatar.Mainnet.Host.Api/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: src/Aevatar.Mainnet.Host.Api/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-755a81123f76b316", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/sdk:10.0", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/sdk:10.0"}, "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-2ce50de3093f19de", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/aspnet:10.0", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/aspnet:10.0"}, "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-27f1339c56e64765", "name": "Insecure pattern 'local_storage_auth_token' in .claude/skills/setup-browser-auth/SKILL.md:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in .claude/skills/setup-browser-auth/SKILL.md:107"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-516a8fe8f74cbc4c", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "dorny/paths-filter@v3 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": "medium", "confidence": 1.0}}, {"id": "scanner-dccc256540103e73", "name": "Very large file: tools/ci/architecture_guards.sh (1994 lines)", "shortDescription": {"text": "Very large file: tools/ci/architecture_guards.sh (1994 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-cdb0ee758f94be9a", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/index.test.tsx (8232 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/index.test.tsx (8232 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-9b814dbb5e4a4d5c", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/index.tsx (10900 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/index.tsx (10900 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-f814d4d9ae16a562", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioInspectorPane.tsx (1405 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioInspectorPane.tsx (1405 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-8b21bd8130d5a673", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioWorkbenchSections.tsx (2079 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioWorkbenchSections.tsx (2079 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-7eb9ad9b0bc130f9", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.tsx (3766 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.tsx (3766 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-fe399fed464db2ee", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.test.tsx (1672 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.test.tsx (1672 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-4fcac562bc90658a", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioFilesDetailPane.tsx (2716 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioFilesDetailPane.tsx (2716 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-84f60ccae8457b14", "name": "Very large file: apps/aevatar-console-web/src/pages/studio/components/bind/StudioMemberBindPanel.tsx (1887 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/bind/StudioMemberBindPanel.tsx (1887 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-78cbf408c96b39ee", "name": "Very large file: apps/aevatar-console-web/src/pages/runs/index.tsx (2499 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/runs/index.tsx (2499 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-7fe43edd7cc2d455", "name": "Very large file: apps/aevatar-console-web/src/pages/gagents/index.tsx (2786 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/gagents/index.tsx (2786 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-0cef2878b2b23181", "name": "Very large file: apps/aevatar-console-web/src/pages/chat/index.test.tsx (1887 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/index.test.tsx (1887 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-6e5fee1db9334491", "name": "Very large file: apps/aevatar-console-web/src/pages/chat/chatAdvancedConsole.tsx (2801 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/chatAdvancedConsole.tsx (2801 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-dfb0b430e99d10e3", "name": "Very large file: apps/aevatar-console-web/src/pages/chat/chatPresentation.tsx (2896 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/chatPresentation.tsx (2896 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-cea02307a5b39a38", "name": "Very large file: apps/aevatar-console-web/src/pages/chat/index.tsx (2322 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/index.tsx (2322 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-67eac9a8c750cc7a", "name": "Very large file: apps/aevatar-console-web/src/pages/scopes/invoke.tsx (2000 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/scopes/invoke.tsx (2000 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-297bc03c6acd8c29", "name": "Very large file: apps/aevatar-console-web/src/pages/scopes/components/ScopeServiceRuntimeWorkbench.tsx (1518 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/scopes/components/ScopeServiceRuntimeWorkbench.tsx (1518 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-4d40559a74dc2fcf", "name": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.test.tsx (1924 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.test.tsx (1924 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-e0903e84e1b12618", "name": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.tsx (1664 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.tsx (1664 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-d7419533f67b0925", "name": "Very large file: apps/aevatar-console-web/src/pages/Deployments/index.tsx (3470 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/Deployments/index.tsx (3470 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-1a03717443104457", "name": "Very large file: apps/aevatar-console-web/src/pages/actors/index.tsx (1986 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/actors/index.tsx (1986 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-7ede79dc19315071", "name": "Very large file: apps/aevatar-console-web/src/pages/governance/components/GovernanceWorkbench.tsx (2122 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/pages/governance/components/GovernanceWorkbench.tsx (2122 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-eb800b0573df49fb", "name": "Very large file: apps/aevatar-console-web/src/shared/studio/api.ts (2562 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/shared/studio/api.ts (2562 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-8f1f54ac9a6cb032", "name": "Very large file: apps/aevatar-console-web/src/shared/studio/api.test.ts (1805 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/shared/studio/api.test.ts (1805 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-d09483abb8c65b1d", "name": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.zh-CN.ts (4912 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.zh-CN.ts (4912 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-a46cf9769572b6f2", "name": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.en-US.ts (4912 lines)", "shortDescription": {"text": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.en-US.ts (4912 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 37 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 244 placeholder/mock markers across 71 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-5025ee8121708f6c", "name": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/parameters.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/parameters.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-8746d3e948605923", "name": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/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-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8050b0a396cca628", "name": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/auditor-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/auditor-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9ef34e650b56a5b", "name": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/implementer-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/implementer-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-731eaa1c049e6d4f", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-refactor-loop/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-refactor-loop/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-b9c859c44b389b7a", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/REFERENCE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/REFERENCE.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-bc3899790a4cc0f2", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/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-814d47f0d91b9a37", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/fix.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/fix.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecdfda0c8c65ba25", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/implement.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/implement.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-d2433e019d2c7b19", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d876e41c76dc3e8", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/auditor-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/auditor-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff1231f84d4b5164", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/implementer-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/implementer-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d5c4db3ad94b2155", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/ci-runner-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/ci-runner-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a5ae75e6638df84", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/convergence-policy.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/convergence-policy.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-872aa479ca3716bc", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/design-reviewer-prompt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/design-reviewer-prompt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a63f6720b532955", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/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-a1f868c7460a5b48", "name": "Agent authority lacks a verifier contract: .claude/skills/arch-audit/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/arch-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-28c5aa6e28d3abde", "name": "Commented-code block (6 lines) in apps/aevatar-console-web/src/pages/studio/index.tsx:9163", "shortDescription": {"text": "Commented-code block (6 lines) in apps/aevatar-console-web/src/pages/studio/index.tsx:9163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f97f762579585b10", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:87"}, "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-a239dd327b61a636", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/api/scopeRuntimeApi.test.ts:279", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/api/scopeRuntimeApi.test.ts:279"}, "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-e55460462dbd26f8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/fetch.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/fetch.ts:9"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-513cc6f60450a975", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/client.ts:222", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/client.ts:222"}, "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-a7c9773af0dbd63b", "name": "Commented-code block (6 lines) in apps/aevatar-console-web/src/shared/asyncOperations/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/aevatar-console-web/src/shared/asyncOperations/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7957c4e431c1336a", "name": "Commented-code block (7 lines) in apps/aevatar-console-web/src/shared/query/serviceResourceQueryKeys.ts:16", "shortDescription": {"text": "Commented-code block (7 lines) in apps/aevatar-console-web/src/shared/query/serviceResourceQueryKeys.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-2eafc3188c36bb02", "name": "3 env vars used in code but missing from .env.example", "shortDescription": {"text": "3 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AEVATAR_CONSOLE_PUBLIC_PATH`, `AEVATAR_CONSOLE_TEAM_FIRST_ENABLED`, `CI`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23929"}, "properties": {"repository": "aevatarAI/aevatar", "repoUrl": "https://github.com/aevatarAI/aevatar", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6465d923224e379b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/aevatar-console-web/src/requestErrorConfig.ts:78"}, "properties": {"repobilityId": "238d0bde34697c56", "scanner": "scanner-primary", "fingerprint": "6465d923224e379b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cc96fcd0efed886b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:77"}, "properties": {"repobilityId": "7a0108d0f8249ef6", "scanner": "scanner-primary", "fingerprint": "cc96fcd0efed886b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5fe681bf841e26d", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/pages/MissionControl/TopologyCanvas.tsx:545"}, "properties": {"repobilityId": "bc48d038bbdd5b5a", "scanner": "scanner-primary", "fingerprint": "a5fe681bf841e26d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-d4e0e12a8496c1c3", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 apps/aevatar-console-web/src/shared/graphs/GraphCanvas.tsx:528"}, "properties": {"repobilityId": "2a26596c2124f492", "scanner": "scanner-primary", "fingerprint": "d4e0e12a8496c1c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-ffebacb078d029a3", "level": "warning", "message": {"text": "Dockerfile runs as root: src/Aevatar.Mainnet.Host.Api/Dockerfile"}, "properties": {"repobilityId": "b20b08b52deaa0ff", "scanner": "scanner-primary", "fingerprint": "ffebacb078d029a3", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-755a81123f76b316", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/sdk:10.0"}, "properties": {"repobilityId": "616ad83277114d0e", "scanner": "scanner-primary", "fingerprint": "755a81123f76b316", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Aevatar.Mainnet.Host.Api/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ce50de3093f19de", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet/aspnet:10.0"}, "properties": {"repobilityId": "22e6130e22506b50", "scanner": "scanner-primary", "fingerprint": "2ce50de3093f19de", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Aevatar.Mainnet.Host.Api/Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-27f1339c56e64765", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in .claude/skills/setup-browser-auth/SKILL.md:107"}, "properties": {"repobilityId": "9332b52fc8aaef6e", "scanner": "scanner-primary", "fingerprint": "27f1339c56e64765", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/setup-browser-auth/SKILL.md"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-516a8fe8f74cbc4c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "efe88d7b11fb4f0e", "scanner": "scanner-primary", "fingerprint": "516a8fe8f74cbc4c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "21ed6976f1304681", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54597edb7f5bad38", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "94496af5c2f647df", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-dccc256540103e73", "level": "note", "message": {"text": "Very large file: tools/ci/architecture_guards.sh (1994 lines)"}, "properties": {"repobilityId": "71b6600a5506f7ba", "scanner": "scanner-primary", "fingerprint": "dccc256540103e73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cdb0ee758f94be9a", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/index.test.tsx (8232 lines)"}, "properties": {"repobilityId": "db96edd4c50e070a", "scanner": "scanner-primary", "fingerprint": "cdb0ee758f94be9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9b814dbb5e4a4d5c", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/index.tsx (10900 lines)"}, "properties": {"repobilityId": "880c50dcaeb5767c", "scanner": "scanner-primary", "fingerprint": "9b814dbb5e4a4d5c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f814d4d9ae16a562", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioInspectorPane.tsx (1405 lines)"}, "properties": {"repobilityId": "41e7dd8245049ec2", "scanner": "scanner-primary", "fingerprint": "f814d4d9ae16a562", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8b21bd8130d5a673", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioWorkbenchSections.tsx (2079 lines)"}, "properties": {"repobilityId": "2c2cb21836420141", "scanner": "scanner-primary", "fingerprint": "8b21bd8130d5a673", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7eb9ad9b0bc130f9", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.tsx (3766 lines)"}, "properties": {"repobilityId": "bb73569a2d6ea81e", "scanner": "scanner-primary", "fingerprint": "7eb9ad9b0bc130f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fe399fed464db2ee", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioBuildPanels.test.tsx (1672 lines)"}, "properties": {"repobilityId": "467f666e37d9ca29", "scanner": "scanner-primary", "fingerprint": "fe399fed464db2ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fcac562bc90658a", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/StudioFilesDetailPane.tsx (2716 lines)"}, "properties": {"repobilityId": "35eade2773068246", "scanner": "scanner-primary", "fingerprint": "4fcac562bc90658a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-84f60ccae8457b14", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/studio/components/bind/StudioMemberBindPanel.tsx (1887 lines)"}, "properties": {"repobilityId": "fcc08b92e61cdc7f", "scanner": "scanner-primary", "fingerprint": "84f60ccae8457b14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-78cbf408c96b39ee", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/runs/index.tsx (2499 lines)"}, "properties": {"repobilityId": "e846bc3295a2f8bb", "scanner": "scanner-primary", "fingerprint": "78cbf408c96b39ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7fe43edd7cc2d455", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/gagents/index.tsx (2786 lines)"}, "properties": {"repobilityId": "ddca6b57d1f89cea", "scanner": "scanner-primary", "fingerprint": "7fe43edd7cc2d455", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0cef2878b2b23181", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/index.test.tsx (1887 lines)"}, "properties": {"repobilityId": "888d6efba01616b1", "scanner": "scanner-primary", "fingerprint": "0cef2878b2b23181", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e5fee1db9334491", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/chatAdvancedConsole.tsx (2801 lines)"}, "properties": {"repobilityId": "702e296299e7b60c", "scanner": "scanner-primary", "fingerprint": "6e5fee1db9334491", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfb0b430e99d10e3", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/chatPresentation.tsx (2896 lines)"}, "properties": {"repobilityId": "0c5edee57084e2ab", "scanner": "scanner-primary", "fingerprint": "dfb0b430e99d10e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cea02307a5b39a38", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/chat/index.tsx (2322 lines)"}, "properties": {"repobilityId": "d05628692b4f10c1", "scanner": "scanner-primary", "fingerprint": "cea02307a5b39a38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-67eac9a8c750cc7a", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/scopes/invoke.tsx (2000 lines)"}, "properties": {"repobilityId": "050edca00991e973", "scanner": "scanner-primary", "fingerprint": "67eac9a8c750cc7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-297bc03c6acd8c29", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/scopes/components/ScopeServiceRuntimeWorkbench.tsx (1518 lines)"}, "properties": {"repobilityId": "5723db43ab3e6490", "scanner": "scanner-primary", "fingerprint": "297bc03c6acd8c29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d40559a74dc2fcf", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.test.tsx (1924 lines)"}, "properties": {"repobilityId": "217b10ad962027e9", "scanner": "scanner-primary", "fingerprint": "4d40559a74dc2fcf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e0903e84e1b12618", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/teams/detail.tsx (1664 lines)"}, "properties": {"repobilityId": "5a2642948a1007c5", "scanner": "scanner-primary", "fingerprint": "e0903e84e1b12618", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d7419533f67b0925", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/Deployments/index.tsx (3470 lines)"}, "properties": {"repobilityId": "dc5af5192a3fcef4", "scanner": "scanner-primary", "fingerprint": "d7419533f67b0925", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a03717443104457", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/actors/index.tsx (1986 lines)"}, "properties": {"repobilityId": "66f27d101233f186", "scanner": "scanner-primary", "fingerprint": "1a03717443104457", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7ede79dc19315071", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/pages/governance/components/GovernanceWorkbench.tsx (2122 lines)"}, "properties": {"repobilityId": "9a1d4ca68211deae", "scanner": "scanner-primary", "fingerprint": "7ede79dc19315071", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb800b0573df49fb", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/shared/studio/api.ts (2562 lines)"}, "properties": {"repobilityId": "d5ce6ec4d963a776", "scanner": "scanner-primary", "fingerprint": "eb800b0573df49fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8f1f54ac9a6cb032", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/shared/studio/api.test.ts (1805 lines)"}, "properties": {"repobilityId": "6a254e36be7c56f9", "scanner": "scanner-primary", "fingerprint": "8f1f54ac9a6cb032", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d09483abb8c65b1d", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.zh-CN.ts (4912 lines)"}, "properties": {"repobilityId": "900d91e0b84b4d02", "scanner": "scanner-primary", "fingerprint": "d09483abb8c65b1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a46cf9769572b6f2", "level": "note", "message": {"text": "Very large file: apps/aevatar-console-web/src/locales/projectMessages.en-US.ts (4912 lines)"}, "properties": {"repobilityId": "22576baf51325c0e", "scanner": "scanner-primary", "fingerprint": "a46cf9769572b6f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5db97196e171347e", "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": "0873308432421431", "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": "bd4391651a9d2054", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-5025ee8121708f6c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/parameters.md"}, "properties": {"repobilityId": "ac9144d009cabf43", "scanner": "scanner-primary", "fingerprint": "5025ee8121708f6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "cursor_rule"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".cursor/skills/aevatar-workflow-yaml/parameters.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8746d3e948605923", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .cursor/skills/aevatar-workflow-yaml/SKILL.md"}, "properties": {"repobilityId": "99e9778a6dc84095", "scanner": "scanner-primary", "fingerprint": "8746d3e948605923", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "cursor_rule"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".cursor/skills/aevatar-workflow-yaml/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8050b0a396cca628", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/auditor-prompt.md"}, "properties": {"repobilityId": "92188178c94a1312", "scanner": "scanner-primary", "fingerprint": "8050b0a396cca628", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/refactor-team/auditor-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9ef34e650b56a5b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/refactor-team/implementer-prompt.md"}, "properties": {"repobilityId": "ee6a347bf595742c", "scanner": "scanner-primary", "fingerprint": "e9ef34e650b56a5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/refactor-team/implementer-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-731eaa1c049e6d4f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-refactor-loop/SKILL.md"}, "properties": {"repobilityId": "e16033198552b959", "scanner": "scanner-primary", "fingerprint": "731eaa1c049e6d4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-refactor-loop/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9c859c44b389b7a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/REFERENCE.md"}, "properties": {"repobilityId": "e85a726c88543f94", "scanner": "scanner-primary", "fingerprint": "b9c859c44b389b7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-implement-loop/REFERENCE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc3899790a4cc0f2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/SKILL.md"}, "properties": {"repobilityId": "9529e466272136a3", "scanner": "scanner-primary", "fingerprint": "bc3899790a4cc0f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-implement-loop/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-814d47f0d91b9a37", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/fix.md"}, "properties": {"repobilityId": "662cea015b9d5fb8", "scanner": "scanner-primary", "fingerprint": "814d47f0d91b9a37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-implement-loop/prompts/fix.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ecdfda0c8c65ba25", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/implement.md"}, "properties": {"repobilityId": "9e6bf59b2a35586d", "scanner": "scanner-primary", "fingerprint": "ecdfda0c8c65ba25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-implement-loop/prompts/implement.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2433e019d2c7b19", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-implement-loop/prompts/review.md"}, "properties": {"repobilityId": "18e847cf8bb758f9", "scanner": "scanner-primary", "fingerprint": "d2433e019d2c7b19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-implement-loop/prompts/review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d876e41c76dc3e8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/auditor-prompt.md"}, "properties": {"repobilityId": "9d6349c1b308a9f7", "scanner": "scanner-primary", "fingerprint": "8d876e41c76dc3e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/auditor-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff1231f84d4b5164", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/implementer-prompt.md"}, "properties": {"repobilityId": "c38997d0b74293a3", "scanner": "scanner-primary", "fingerprint": "ff1231f84d4b5164", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/implementer-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d5c4db3ad94b2155", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/ci-runner-prompt.md"}, "properties": {"repobilityId": "6541f220b503370a", "scanner": "scanner-primary", "fingerprint": "d5c4db3ad94b2155", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/ci-runner-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a5ae75e6638df84", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/convergence-policy.md"}, "properties": {"repobilityId": "2ba429e30fe3a2a3", "scanner": "scanner-primary", "fingerprint": "4a5ae75e6638df84", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/convergence-policy.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-872aa479ca3716bc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/design-reviewer-prompt.md"}, "properties": {"repobilityId": "7daeab2e2980926a", "scanner": "scanner-primary", "fingerprint": "872aa479ca3716bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/design-reviewer-prompt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a63f6720b532955", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-refactor-team/SKILL.md"}, "properties": {"repobilityId": "f53cdbbad4bec432", "scanner": "scanner-primary", "fingerprint": "3a63f6720b532955", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-refactor-team/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1f868c7460a5b48", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/arch-audit/SKILL.md"}, "properties": {"repobilityId": "41525baec2859be6", "scanner": "scanner-primary", "fingerprint": "a1f868c7460a5b48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/arch-audit/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28c5aa6e28d3abde", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/aevatar-console-web/src/pages/studio/index.tsx:9163"}, "properties": {"repobilityId": "2f4f92b7b01d8b5f", "scanner": "scanner-primary", "fingerprint": "28c5aa6e28d3abde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f97f762579585b10", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/pages/studio/components/bind/bindSnippets.ts:87"}, "properties": {"repobilityId": "4b73460d31ca3bb5", "scanner": "scanner-primary", "fingerprint": "f97f762579585b10", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a239dd327b61a636", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/api/scopeRuntimeApi.test.ts:279"}, "properties": {"repobilityId": "3cd78c2a3df9173e", "scanner": "scanner-primary", "fingerprint": "a239dd327b61a636", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e55460462dbd26f8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/fetch.ts:9"}, "properties": {"repobilityId": "8ef8fb36aa8542ea", "scanner": "scanner-primary", "fingerprint": "e55460462dbd26f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-513cc6f60450a975", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/aevatar-console-web/src/shared/auth/client.ts:222"}, "properties": {"repobilityId": "2c27e79bd7ebf52e", "scanner": "scanner-primary", "fingerprint": "513cc6f60450a975", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7c9773af0dbd63b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/aevatar-console-web/src/shared/asyncOperations/index.ts:1"}, "properties": {"repobilityId": "45db809a39d6797c", "scanner": "scanner-primary", "fingerprint": "a7c9773af0dbd63b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7957c4e431c1336a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/aevatar-console-web/src/shared/query/serviceResourceQueryKeys.ts:16"}, "properties": {"repobilityId": "4711af97ca06a12e", "scanner": "scanner-primary", "fingerprint": "7957c4e431c1336a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eafc3188c36bb02", "level": "none", "message": {"text": "3 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "bd934ba112b02ffa", "scanner": "scanner-primary", "fingerprint": "2eafc3188c36bb02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}