{"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-5dde3e5277563a04", "name": "Possibly dead Python function: create_draft", "shortDescription": {"text": "Possibly dead Python function: create_draft"}, "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-ff244c0940934196", "name": "Possibly dead Python function: create_final", "shortDescription": {"text": "Possibly dead Python function: create_final"}, "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-f66ed08cd9c571ba", "name": "Possibly dead Python function: create_texture", "shortDescription": {"text": "Possibly dead Python function: create_texture"}, "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-7657b26715e4f194", "name": "Stray `console.log` in TS/JS \u2014 src/systems/balanceValidation.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/systems/balanceValidation.ts:92"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af14b0d007666d14", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/unitCodex.ts:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/unitCodex.ts:22"}, "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-c3caa4af531f17fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/minimap.ts:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/minimap.ts:24"}, "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-6c55b4263a0fac6d", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/hud.ts:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/hud.ts:33"}, "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-941221012acc3020", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/screens.ts:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/screens.ts:12"}, "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-7f79c7987ca2d64a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/core/game.ts:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/core/game.ts:200"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "12 tests / 79 src (ratio 0.15)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 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-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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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-63659c7ef5c32d46", "name": "Commented-code block (6 lines) in generate_asset.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in generate_asset.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-75306480d173dcac", "name": "Commented-code block (5 lines) in tools/rocks.glb.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tools/rocks.glb.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65e4680e6b368139", "name": "Commented-code block (5 lines) in tools/convert_vehicle_to_spec.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tools/convert_vehicle_to_spec.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95ffedaf6da934f9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/campaign/campaign.ts:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/campaign/campaign.ts:6"}, "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-9c4545f16d9db82c", "name": "Commented-code block (7 lines) in src/render/vehicleModels.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/render/vehicleModels.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c5be35ae1b1701d", "name": "Commented-code block (5 lines) in src/render/terrainNoise.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in src/render/terrainNoise.ts: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-e2ee8ef9eeb23fbc", "name": "Commented-code block (5 lines) in src/render/vehicleGlb.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/render/vehicleGlb.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-16109acb80b4f27a", "name": "Commented-code block (5 lines) in src/render/terrain.ts:309", "shortDescription": {"text": "Commented-code block (5 lines) in src/render/terrain.ts:309"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c49c091759fda56a", "name": "Commented-code block (8 lines) in src/render/models.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/render/models.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-25ebadc5291ff628", "name": "Commented-code block (5 lines) in src/vehicles/warden.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/vehicles/warden.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f09397fc9ce899f", "name": "Commented-code block (6 lines) in src/vehicles/types.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/types.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34319c68d7e1d65d", "name": "Commented-code block (6 lines) in src/vehicles/red/support.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/support.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-73e7199663fea292", "name": "Commented-code block (6 lines) in src/vehicles/red/scout.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/scout.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-39de4d9ffdf6affa", "name": "Commented-code block (6 lines) in src/vehicles/red/antiAir.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/antiAir.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-8f7e318e31bee337", "name": "Commented-code block (6 lines) in src/vehicles/red/lightAttack.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/lightAttack.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-4e860aaa9b069f58", "name": "Commented-code block (6 lines) in src/vehicles/red/mediumTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/mediumTank.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-fce621d471e8891d", "name": "Commented-code block (6 lines) in src/vehicles/red/harvester.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/harvester.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-90b6abb9271c23e7", "name": "Commented-code block (6 lines) in src/vehicles/red/builder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/builder.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-7a06ebf5e69596b2", "name": "Commented-code block (6 lines) in src/vehicles/red/heavyTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/red/heavyTank.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-ebdf315d7116b7b7", "name": "Commented-code block (6 lines) in src/vehicles/green/support.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/support.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-5488cedbf6811f33", "name": "Commented-code block (6 lines) in src/vehicles/green/scout.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/scout.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-72a17b1913f7b24b", "name": "Commented-code block (5 lines) in src/vehicles/green/warden.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/vehicles/green/warden.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-a928a7b75f89eef2", "name": "Commented-code block (6 lines) in src/vehicles/green/antiAir.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/antiAir.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-85e7f8a5f21a72ff", "name": "Commented-code block (6 lines) in src/vehicles/green/lightAttack.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/lightAttack.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-3045d08beba24416", "name": "Commented-code block (6 lines) in src/vehicles/green/mediumTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/mediumTank.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-f8c2a6a91a915205", "name": "Commented-code block (6 lines) in src/vehicles/green/harvester.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/harvester.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-a8a316921c495948", "name": "Commented-code block (6 lines) in src/vehicles/green/builder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/builder.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-89396efba6927d93", "name": "Commented-code block (6 lines) in src/vehicles/green/heavyTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/green/heavyTank.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-bdeb4e4dcdc082c6", "name": "Commented-code block (6 lines) in src/vehicles/blue/support.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/support.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-ac1c6a5dbec1828b", "name": "Commented-code block (6 lines) in src/vehicles/blue/scout.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/scout.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-31514053b33830bc", "name": "Commented-code block (6 lines) in src/vehicles/blue/antiAir.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/antiAir.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-04b51045d2f8a74d", "name": "Commented-code block (6 lines) in src/vehicles/blue/lightAttack.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/lightAttack.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-7dc658b3c5ce7799", "name": "Commented-code block (6 lines) in src/vehicles/blue/mediumTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/mediumTank.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-f14f38768216a713", "name": "Commented-code block (6 lines) in src/vehicles/blue/harvester.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/harvester.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-1294103e9c5e1117", "name": "Commented-code block (6 lines) in src/vehicles/blue/builder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/builder.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-5656bdfc53b91ec7", "name": "Commented-code block (6 lines) in src/vehicles/blue/heavyTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/blue/heavyTank.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-e1446c6bd01e08d1", "name": "Commented-code block (6 lines) in src/vehicles/yellow/support.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/support.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-891e9daaf960e342", "name": "Commented-code block (6 lines) in src/vehicles/yellow/scout.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/scout.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-077e14d9b694d9e5", "name": "Commented-code block (6 lines) in src/vehicles/yellow/antiAir.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/antiAir.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-01be61ae9427dd56", "name": "Commented-code block (6 lines) in src/vehicles/yellow/lightAttack.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/lightAttack.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-e40b2469c13f2178", "name": "Commented-code block (6 lines) in src/vehicles/yellow/mediumTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/mediumTank.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-8a6b01a8858b3995", "name": "Commented-code block (6 lines) in src/vehicles/yellow/harvester.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/harvester.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-bc574e4b63952da9", "name": "Commented-code block (6 lines) in src/vehicles/yellow/builder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/builder.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-159ad91fdb7cc06c", "name": "Commented-code block (6 lines) in src/vehicles/yellow/heavyTank.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/heavyTank.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-319e66a630e14977", "name": "2 env vars used in code but missing from .env.example", "shortDescription": {"text": "2 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `DEV`, `VIREON_ROCK_OUT`. 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/23308"}, "properties": {"repository": "YorkStack/Vireon-Front", "repoUrl": "https://github.com/YorkStack/Vireon-Front", "branch": "main"}, "results": [{"ruleId": "scanner-5dde3e5277563a04", "level": "note", "message": {"text": "Possibly dead Python function: create_draft"}, "properties": {"repobilityId": "01614dbb268f7d70", "scanner": "scanner-primary", "fingerprint": "5dde3e5277563a04", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_asset.py:404"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff244c0940934196", "level": "note", "message": {"text": "Possibly dead Python function: create_final"}, "properties": {"repobilityId": "4872706cc37977dd", "scanner": "scanner-primary", "fingerprint": "ff244c0940934196", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_asset.py:424"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f66ed08cd9c571ba", "level": "note", "message": {"text": "Possibly dead Python function: create_texture"}, "properties": {"repobilityId": "2c7a355b2a925ab5", "scanner": "scanner-primary", "fingerprint": "f66ed08cd9c571ba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_asset.py:444"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7657b26715e4f194", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/systems/balanceValidation.ts:92"}, "properties": {"repobilityId": "c97392f6b132d81b", "scanner": "scanner-primary", "fingerprint": "7657b26715e4f194", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-af14b0d007666d14", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/unitCodex.ts:22"}, "properties": {"repobilityId": "d95179367a81472b", "scanner": "scanner-primary", "fingerprint": "af14b0d007666d14", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/unitCodex.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-c3caa4af531f17fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/minimap.ts:24"}, "properties": {"repobilityId": "a1ce6ac08eb32c30", "scanner": "scanner-primary", "fingerprint": "c3caa4af531f17fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/minimap.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-6c55b4263a0fac6d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/hud.ts:33"}, "properties": {"repobilityId": "2fc812c413da27cb", "scanner": "scanner-primary", "fingerprint": "6c55b4263a0fac6d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/hud.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-941221012acc3020", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/screens.ts:12"}, "properties": {"repobilityId": "9ea644665ff3d018", "scanner": "scanner-primary", "fingerprint": "941221012acc3020", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/screens.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-7f79c7987ca2d64a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/core/game.ts:200"}, "properties": {"repobilityId": "bd69eb9c9ffb83b8", "scanner": "scanner-primary", "fingerprint": "7f79c7987ca2d64a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/game.ts"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "ada2328bb0ceeff7", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "d711742e53112fe3", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d65dfcb987a53460", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "396203584f489e4c", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "ffdf5519f13a6bcd", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "d512cafad32b067a", "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": "e76e150fd3dcf851", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"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-63659c7ef5c32d46", "level": "none", "message": {"text": "Commented-code block (6 lines) in generate_asset.py:31"}, "properties": {"repobilityId": "aea755bf881aef44", "scanner": "scanner-primary", "fingerprint": "63659c7ef5c32d46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75306480d173dcac", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/rocks.glb.test.ts:1"}, "properties": {"repobilityId": "3e4d32bcb045dd58", "scanner": "scanner-primary", "fingerprint": "75306480d173dcac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65e4680e6b368139", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/convert_vehicle_to_spec.mjs:1"}, "properties": {"repobilityId": "eb00456e279cb5ff", "scanner": "scanner-primary", "fingerprint": "65e4680e6b368139", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95ffedaf6da934f9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/campaign/campaign.ts:6"}, "properties": {"repobilityId": "e2b6b738968f0f45", "scanner": "scanner-primary", "fingerprint": "95ffedaf6da934f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9c4545f16d9db82c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/render/vehicleModels.ts:5"}, "properties": {"repobilityId": "40e00a8022ea5c6d", "scanner": "scanner-primary", "fingerprint": "9c4545f16d9db82c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c5be35ae1b1701d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/render/terrainNoise.ts:22"}, "properties": {"repobilityId": "90cef3b3e3bb499c", "scanner": "scanner-primary", "fingerprint": "2c5be35ae1b1701d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2ee8ef9eeb23fbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/render/vehicleGlb.ts:1"}, "properties": {"repobilityId": "970d813f4628db0b", "scanner": "scanner-primary", "fingerprint": "e2ee8ef9eeb23fbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16109acb80b4f27a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/render/terrain.ts:309"}, "properties": {"repobilityId": "886aaf5dd69bfac3", "scanner": "scanner-primary", "fingerprint": "16109acb80b4f27a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c49c091759fda56a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/render/models.ts:1"}, "properties": {"repobilityId": "88a71018290e77fa", "scanner": "scanner-primary", "fingerprint": "c49c091759fda56a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25ebadc5291ff628", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/vehicles/warden.test.ts:1"}, "properties": {"repobilityId": "1181cdff0f1e11ac", "scanner": "scanner-primary", "fingerprint": "25ebadc5291ff628", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f09397fc9ce899f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/types.ts:3"}, "properties": {"repobilityId": "f73e5dd333255d56", "scanner": "scanner-primary", "fingerprint": "2f09397fc9ce899f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34319c68d7e1d65d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/support.ts:1"}, "properties": {"repobilityId": "ecfe3438060b3fa5", "scanner": "scanner-primary", "fingerprint": "34319c68d7e1d65d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73e7199663fea292", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/scout.ts:1"}, "properties": {"repobilityId": "3727cb38906befc0", "scanner": "scanner-primary", "fingerprint": "73e7199663fea292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39de4d9ffdf6affa", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/antiAir.ts:1"}, "properties": {"repobilityId": "b55d14391c0dc68d", "scanner": "scanner-primary", "fingerprint": "39de4d9ffdf6affa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f7e318e31bee337", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/lightAttack.ts:1"}, "properties": {"repobilityId": "f96cc50eb02ff206", "scanner": "scanner-primary", "fingerprint": "8f7e318e31bee337", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e860aaa9b069f58", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/mediumTank.ts:1"}, "properties": {"repobilityId": "7f597ca32724db83", "scanner": "scanner-primary", "fingerprint": "4e860aaa9b069f58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fce621d471e8891d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/harvester.ts:1"}, "properties": {"repobilityId": "77b2df2378e43cf5", "scanner": "scanner-primary", "fingerprint": "fce621d471e8891d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90b6abb9271c23e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/builder.ts:1"}, "properties": {"repobilityId": "fb48d7b9dce0154c", "scanner": "scanner-primary", "fingerprint": "90b6abb9271c23e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a06ebf5e69596b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/red/heavyTank.ts:1"}, "properties": {"repobilityId": "30eb1daf5bc90f20", "scanner": "scanner-primary", "fingerprint": "7a06ebf5e69596b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebdf315d7116b7b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/support.ts:1"}, "properties": {"repobilityId": "2cf57f4b0dddc4a0", "scanner": "scanner-primary", "fingerprint": "ebdf315d7116b7b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5488cedbf6811f33", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/scout.ts:1"}, "properties": {"repobilityId": "f8334d8024b8aa79", "scanner": "scanner-primary", "fingerprint": "5488cedbf6811f33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72a17b1913f7b24b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/vehicles/green/warden.ts:1"}, "properties": {"repobilityId": "d80660ff52742f3c", "scanner": "scanner-primary", "fingerprint": "72a17b1913f7b24b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a928a7b75f89eef2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/antiAir.ts:1"}, "properties": {"repobilityId": "5bda19dbfc51f9f3", "scanner": "scanner-primary", "fingerprint": "a928a7b75f89eef2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85e7f8a5f21a72ff", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/lightAttack.ts:1"}, "properties": {"repobilityId": "d06710eace65bf6c", "scanner": "scanner-primary", "fingerprint": "85e7f8a5f21a72ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3045d08beba24416", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/mediumTank.ts:1"}, "properties": {"repobilityId": "1ab668a7dc21fa05", "scanner": "scanner-primary", "fingerprint": "3045d08beba24416", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8c2a6a91a915205", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/harvester.ts:1"}, "properties": {"repobilityId": "5f0260d8317a550e", "scanner": "scanner-primary", "fingerprint": "f8c2a6a91a915205", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8a316921c495948", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/builder.ts:1"}, "properties": {"repobilityId": "87ddfff576981717", "scanner": "scanner-primary", "fingerprint": "a8a316921c495948", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89396efba6927d93", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/green/heavyTank.ts:1"}, "properties": {"repobilityId": "08cd6a7c6a8886d4", "scanner": "scanner-primary", "fingerprint": "89396efba6927d93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdeb4e4dcdc082c6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/support.ts:1"}, "properties": {"repobilityId": "cd548681d307d5c3", "scanner": "scanner-primary", "fingerprint": "bdeb4e4dcdc082c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac1c6a5dbec1828b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/scout.ts:1"}, "properties": {"repobilityId": "33761fb451fa5bdb", "scanner": "scanner-primary", "fingerprint": "ac1c6a5dbec1828b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31514053b33830bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/antiAir.ts:1"}, "properties": {"repobilityId": "a8edbd78a923c7e2", "scanner": "scanner-primary", "fingerprint": "31514053b33830bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04b51045d2f8a74d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/lightAttack.ts:1"}, "properties": {"repobilityId": "cd0c1b6b1b935b97", "scanner": "scanner-primary", "fingerprint": "04b51045d2f8a74d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7dc658b3c5ce7799", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/mediumTank.ts:1"}, "properties": {"repobilityId": "3cfafc83575acbca", "scanner": "scanner-primary", "fingerprint": "7dc658b3c5ce7799", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f14f38768216a713", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/harvester.ts:1"}, "properties": {"repobilityId": "84729c3647034572", "scanner": "scanner-primary", "fingerprint": "f14f38768216a713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1294103e9c5e1117", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/builder.ts:1"}, "properties": {"repobilityId": "30f54a7658fe066a", "scanner": "scanner-primary", "fingerprint": "1294103e9c5e1117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5656bdfc53b91ec7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/blue/heavyTank.ts:1"}, "properties": {"repobilityId": "07b34a03c698abe9", "scanner": "scanner-primary", "fingerprint": "5656bdfc53b91ec7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1446c6bd01e08d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/support.ts:1"}, "properties": {"repobilityId": "86fc9a9279b5c9c0", "scanner": "scanner-primary", "fingerprint": "e1446c6bd01e08d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-891e9daaf960e342", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/scout.ts:1"}, "properties": {"repobilityId": "06cdd7576bda4560", "scanner": "scanner-primary", "fingerprint": "891e9daaf960e342", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077e14d9b694d9e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/antiAir.ts:1"}, "properties": {"repobilityId": "eb288e681f4db3c1", "scanner": "scanner-primary", "fingerprint": "077e14d9b694d9e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01be61ae9427dd56", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/lightAttack.ts:1"}, "properties": {"repobilityId": "4ff6f5f0893f6d64", "scanner": "scanner-primary", "fingerprint": "01be61ae9427dd56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e40b2469c13f2178", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/mediumTank.ts:1"}, "properties": {"repobilityId": "2ad3bfa81d0ced4d", "scanner": "scanner-primary", "fingerprint": "e40b2469c13f2178", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a6b01a8858b3995", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/harvester.ts:1"}, "properties": {"repobilityId": "67c47f583ea81f3a", "scanner": "scanner-primary", "fingerprint": "8a6b01a8858b3995", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc574e4b63952da9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/builder.ts:1"}, "properties": {"repobilityId": "cdf9a3bae9eb1f77", "scanner": "scanner-primary", "fingerprint": "bc574e4b63952da9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-159ad91fdb7cc06c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/vehicles/yellow/heavyTank.ts:1"}, "properties": {"repobilityId": "f98bc605f40dbb2a", "scanner": "scanner-primary", "fingerprint": "159ad91fdb7cc06c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319e66a630e14977", "level": "none", "message": {"text": "2 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d838d1fc5d8231c9", "scanner": "scanner-primary", "fingerprint": "319e66a630e14977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}