{"data":{"skill":{"slug":"gamedev-skills-router","name":"router","icon":"📦","repo":"https://github.com/gamedev-skills/awesome-gamedev-agent-skills/tree/19d93f97c9c1ea0f8b306e77aa81e0d3e352d3e9/router","status":"approved","author":"gamedev-skills","authorVersion":null,"skillstoreRevision":1,"license":null},"licenseCorrection":null,"audit":{"id":"e131f802-2133-46f6-bf85-83cad6a9aeff","skill_id":"e7ac75d5-dea7-4b84-bd6f-3e6ab16c1828","version":1,"content_hash":"v3:c993c6abcbffafea2683d7748b53b3dfaf438415:69c1167073530655dac859e33c4b8893903b94f13326ef1c85f152b8008418ba:3d5e9f5592566e28fc7e7d0423799ae83a3afa1584f5c1ea4a2e7f99d99b420f:736b696c6c732f67616d656465762d736b696c6c732f726f75746572:702f3eed5d96e1616e9887cbac0aa124","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 128 static findings are false positives from Markdown formatting, ordinary prose, and game-development terminology. Context confirms routing guidance rather than shell execution, scope manipulation, or host and network reconnaissance. No evidence found of prompt injection, credential theft, data exfiltration, or malicious intent in the reviewed files.","remediation":[],"risk_factor_evidence":[{"factor":"scripts","evidence":[{"file":"references/engine-detection.md","line_end":38,"line_start":38},{"file":"references/routing-table.md","line_end":91,"line_start":91},{"file":"SKILL.md","line_end":126,"line_start":126}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":54,"line_start":54},{"file":"SKILL.md","line_end":55,"line_start":55},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":58,"line_start":58},{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":60,"line_start":60},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":62,"line_start":62},{"file":"SKILL.md","line_end":63,"line_start":63},{"file":"SKILL.md","line_end":64,"line_start":64},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":68,"line_start":68},{"file":"SKILL.md","line_end":74,"line_start":74},{"file":"SKILL.md","line_end":80,"line_start":80},{"file":"SKILL.md","line_end":81,"line_start":81},{"file":"SKILL.md","line_end":82,"line_start":82},{"file":"SKILL.md","line_end":86,"line_start":86},{"file":"SKILL.md","line_end":87,"line_start":87},{"file":"SKILL.md","line_end":89,"line_start":89},{"file":"SKILL.md","line_end":90,"line_start":90},{"file":"SKILL.md","line_end":92,"line_start":92},{"file":"SKILL.md","line_end":93,"line_start":93},{"file":"SKILL.md","line_end":99,"line_start":99},{"file":"SKILL.md","line_end":100,"line_start":100},{"file":"SKILL.md","line_end":101,"line_start":101},{"file":"SKILL.md","line_end":102,"line_start":102},{"file":"SKILL.md","line_end":103,"line_start":103},{"file":"SKILL.md","line_end":104,"line_start":104},{"file":"SKILL.md","line_end":105,"line_start":105},{"file":"SKILL.md","line_end":106,"line_start":106},{"file":"SKILL.md","line_end":107,"line_start":107},{"file":"SKILL.md","line_end":108,"line_start":108},{"file":"SKILL.md","line_end":109,"line_start":109},{"file":"SKILL.md","line_end":110,"line_start":110},{"file":"SKILL.md","line_end":111,"line_start":111},{"file":"SKILL.md","line_end":114,"line_start":114},{"file":"SKILL.md","line_end":115,"line_start":115},{"file":"SKILL.md","line_end":116,"line_start":116},{"file":"SKILL.md","line_end":117,"line_start":117},{"file":"SKILL.md","line_end":119,"line_start":119},{"file":"SKILL.md","line_end":120,"line_start":120},{"file":"SKILL.md","line_end":121,"line_start":121},{"file":"SKILL.md","line_end":122,"line_start":122},{"file":"SKILL.md","line_end":126,"line_start":126},{"file":"SKILL.md","line_end":128,"line_start":128},{"file":"SKILL.md","line_end":129,"line_start":129},{"file":"SKILL.md","line_end":130,"line_start":130},{"file":"SKILL.md","line_end":131,"line_start":131}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":5,"total_lines":587,"audit_model":"codex","audited_at":"2026-11-06T15:33:15.384+00:00","created_at":"2026-11-09T15:34:33.326691+00:00","static_findings":[{"id":"scripts:references/engine-detection.md:38:with-statement-deprecated-scope-confusion","file":"references/engine-detection.md","pattern":"with statement (deprecated, scope confusion)","snippet":"| Defold | `game.project` has no engine version key: use the editor or `bob.jar` version the project","category":"scripts","line_end":38,"severity":"medium","line_start":38},{"id":"scripts:references/routing-table.md:91:with-statement-deprecated-scope-confusion","file":"references/routing-table.md","pattern":"with statement (deprecated, scope confusion)","snippet":"| Concept skill | `says:` triggers | Pairs with (engine API skill) |","category":"scripts","line_end":91,"severity":"medium","line_start":91},{"id":"blocker:references/routing-table.md:87:system-reconnaissance","file":"references/routing-table.md","pattern":"System reconnaissance","snippet":"| `roblox-simulator-economy` | Roblox simulator/tycoon/clicker/idle economy, upgrade cost curve, `co","category":"blocker","line_end":87,"severity":"low","line_start":87},{"id":"blocker:references/routing-table.md:95:system-reconnaissance","file":"references/routing-table.md","pattern":"System reconnaissance","snippet":"| `ai-behavior-trees-utility-ai` | behavior tree runtime, blackboard, action/condition node, selecto","category":"blocker","line_end":95,"severity":"low","line_start":95},{"id":"blocker:references/routing-table.md:114:system-reconnaissance","file":"references/routing-table.md","pattern":"System reconnaissance","snippet":"| `roguelike` | roguelike, procedural dungeon, permadeath, turn-based grid | `procedural-gen` + `god","category":"blocker","line_end":114,"severity":"low","line_start":114},{"id":"blocker:references/routing-table.md:121:system-reconnaissance","file":"references/routing-table.md","pattern":"System reconnaissance","snippet":"| `puzzle` | puzzle game, match-3, grid logic, tile-matching | `godot-tilemap`/`unity-tilemap-2d` + ","category":"blocker","line_end":121,"severity":"low","line_start":121},{"id":"blocker:references/routing-table.md:29:network-reconnaissance","file":"references/routing-table.md","pattern":"Network reconnaissance","snippet":"| `godot-gdscript-headless-testing` | \"headless test\", \"run tests from CLI\", `godot --headless --scr","category":"blocker","line_end":29,"severity":"low","line_start":29},{"id":"scripts:SKILL.md:126:with-statement-deprecated-scope-confusion","file":"SKILL.md","pattern":"with statement (deprecated, scope confusion)","snippet":"| Concept (`says:`) | Discipline skill | Pairs with (engine API) |","category":"scripts","line_end":126,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. **Read (disclosure)** — open only the chosen `SKILL.md` bodies; `references/` only on demand. §4.","category":"external_commands","line_end":39,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 1 | Godot | `project.godot` | `skills/godot/` |","category":"external_commands","line_end":54,"severity":"medium","line_start":54},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 2 | Unreal | `*.uproject` | `skills/unreal/` |","category":"external_commands","line_end":55,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 3 | Unity | `Assets/` **and** `ProjectSettings/ProjectVersion.txt` | `skills/unity/` |","category":"external_commands","line_end":56,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 4 | Ebitengine | `go.mod` requiring `github.com/hajimehoshi/ebiten/v2` | `skills/ebitengine/` |","category":"external_commands","line_end":57,"severity":"medium","line_start":57},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 5 | Bevy | `Cargo.toml` with a `bevy` dependency | `skills/other-engines/bevy-ecs/` |","category":"external_commands","line_end":58,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 6 | Phaser | `package.json` dep `phaser` | `skills/web-engines/phaser-*` |","category":"external_commands","line_end":59,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 7 | PixiJS | `package.json` dep `pixi.js` | `skills/web-engines/pixijs-rendering/` |","category":"external_commands","line_end":60,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 8 | three.js | `package.json` dep `three` | `skills/web-engines/threejs-*` |","category":"external_commands","line_end":61,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 9 | Defold | `game.project` | `skills/other-engines/defold-core/` |","category":"external_commands","line_end":62,"severity":"medium","line_start":62},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 10 | LÖVE | `conf.lua` / `main.lua` calling `love.*` | `skills/other-engines/love2d-core/` |","category":"external_commands","line_end":63,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 11 | pygame | `*.py` with `import pygame` | `skills/other-engines/pygame-core/` |","category":"external_commands","line_end":64,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| 12 | Roblox | `*.rbxl(x)` / `*.project.json` (Rojo) | `skills/other-engines/roblox-*` |","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"rules, monorepos, and plain-text engine mentions, read `references/engine-detection.md`.","category":"external_commands","line_end":68,"severity":"medium","line_start":68},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`docs/VERSION-SUPPORT.md` in the source repository (it is not installed with the router).","category":"external_commands","line_end":74,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **disciplines** (cross-engine concepts): `create-game-assets`, `game-ai`, `ai-behavior-trees-utili","category":"external_commands","line_end":80,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`save-systems`, `audio-design`, `shader-programming`, `physics-tuning`, `level-design`,","category":"external_commands","line_end":81,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`input-systems`, `game-feel`, `camera-systems`, `game-ui-ux`, `performance-optimization`.","category":"external_commands","line_end":82,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **genres** (whole-game templates): `platformer`, `roguelike`, `rpg`, `fps-shooter`,","category":"external_commands","line_end":86,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`tower-defense`, `card-game`, `visual-novel`, `survival-crafting`, `puzzle`. Triggered by genre","category":"external_commands","line_end":87,"severity":"medium","line_start":87},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **workflows** (process/shipping): `game-jam`, `prototype-fast`, `steam-publish`,","category":"external_commands","line_end":89,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`itch-publish`. Triggered by process words (\"publish on Steam\", \"vertical slice\").","category":"external_commands","line_end":90,"severity":"medium","line_start":90},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"File signals sharpen this: `*.yarn`/`*.ink` → `dialogue-systems`/`visual-novel`; `steam_appid.txt`","category":"external_commands","line_end":92,"severity":"medium","line_start":92},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"→ `steam-publish`; `*.inputactions` → `unity-input-system`.","category":"external_commands","line_end":93,"severity":"medium","line_start":93},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Godot** (`skills/godot/`): language `godot-gdscript` / `godot-csharp`; structure","category":"external_commands","line_end":99,"severity":"medium","line_start":99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`godot-nodes-scenes`, `godot-signals-groups`; 2D `godot-2d-movement`, `godot-tilemap`; 3D","category":"external_commands","line_end":100,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`godot-3d-essentials`; physics `godot-physics`; UI `godot-ui-control`; animation","category":"external_commands","line_end":101,"severity":"medium","line_start":101},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`godot-animation`; shaders `godot-shaders`; data `godot-resources`; audio `godot-audio`;","category":"external_commands","line_end":102,"severity":"medium","line_start":102},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"netcode `godot-multiplayer`; headless CLI tests `godot-gdscript-headless-testing`; ship","category":"external_commands","line_end":103,"severity":"medium","line_start":103},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`godot-export`.","category":"external_commands","line_end":104,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Unity** (`skills/unity/`): scripting `unity-csharp-scripting`; input `unity-input-system`;","category":"external_commands","line_end":105,"severity":"medium","line_start":105},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"physics `unity-physics`; animation `unity-animation`; data `unity-scriptableobjects`; 2D","category":"external_commands","line_end":106,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`unity-tilemap-2d`; AI nav `unity-navmesh`; ship `unity-build-pipeline`.","category":"external_commands","line_end":107,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Unreal** (`skills/unreal/`): visual scripting `unreal-blueprints`; C++ gameplay","category":"external_commands","line_end":108,"severity":"medium","line_start":108},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`unreal-cpp-gameplay`; input `unreal-enhanced-input`; AI `unreal-behavior-trees`; VFX","category":"external_commands","line_end":109,"severity":"medium","line_start":109},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`unreal-niagara`; ship `unreal-packaging`.","category":"external_commands","line_end":110,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Ebitengine** (`skills/ebitengine/`): `ebitengine-game` for Go 2D games and focused","category":"external_commands","line_end":111,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Web** (`skills/web-engines/`): `phaser-core`, `phaser-arcade-physics`; `pixijs-rendering`;","category":"external_commands","line_end":114,"severity":"medium","line_start":114},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`threejs-scene-setup`, `threejs-gltf-loading`, `threejs-materials-lighting`.","category":"external_commands","line_end":115,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Other** (`skills/other-engines/`): `bevy-ecs`, `pygame-core`, `love2d-core`; Defold","category":"external_commands","line_end":116,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`defold-core` (collections, game objects, scripts, input, messages, factories, proxies,","category":"external_commands","line_end":117,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-luau`, persistence `roblox-datastores`, UI `roblox-ui`, remotes/security","category":"external_commands","line_end":119,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-networking`, character lifecycle `roblox-characters`, simulation/queries","category":"external_commands","line_end":120,"severity":"medium","line_start":120},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-physics`, in-Studio operation `roblox-studio-workflow`, and simulator/tycoon/idle","category":"external_commands","line_end":121,"severity":"medium","line_start":121},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"economy balancing `roblox-simulator-economy`.","category":"external_commands","line_end":122,"severity":"medium","line_start":122},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Concept (`says:`) | Discipline skill | Pairs with (engine API) |","category":"external_commands","line_end":126,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| art direction, game assets, sprites, tilesets, textures, icons, 3D props | `create-game-assets` | ","category":"external_commands","line_end":128,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| enemy AI, behavior tree, pathfinding, steering | `game-ai` | `unity-navmesh` / `unreal-behavior-tr","category":"external_commands","line_end":129,"severity":"medium","line_start":129},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| BT runtime, blackboard, decorator, selector/sequence, utility AI, response curve, consideration | ","category":"external_commands","line_end":130,"severity":"medium","line_start":130},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| procedural, noise, seed, dungeon generator, WFC | `procedural-gen` | engine tilemap/grid skill |","category":"external_commands","line_end":131,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| dialogue, Yarn, Ink, conversation tree | `dialogue-systems` | engine UI skill |","category":"external_commands","line_end":132,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| save/load, slots, persistence | `save-systems` | `roblox-datastores` / engine IO |","category":"external_commands","line_end":133,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| adaptive music, mixer, ducking, SFX | `audio-design` | `godot-audio` / Unity AudioMixer |","category":"external_commands","line_end":134,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| shader, fragment, dissolve/outline | `shader-programming` | `godot-shaders` / engine material |","category":"external_commands","line_end":135,"severity":"medium","line_start":135},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| jitter, tunneling, fixed timestep | `physics-tuning` | `godot-physics` / `unity-physics` |","category":"external_commands","line_end":136,"severity":"medium","line_start":136},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| whitebox, blockout, tile layout, pacing | `level-design` | `godot-tilemap` / `unity-tilemap-2d` |","category":"external_commands","line_end":137,"severity":"medium","line_start":137},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| rebind, gamepad, input buffering | `input-systems` | `unity-input-system` / `unreal-enhanced-input","category":"external_commands","line_end":138,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| screen shake, hit-stop, juice, squash & stretch, \"make it punchy\" | `game-feel` | engine animation","category":"external_commands","line_end":139,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| camera follow, deadzone, look-ahead, orbit, first-person | `camera-systems` | `godot-2d-movement` ","category":"external_commands","line_end":140,"severity":"medium","line_start":140},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| HUD, menu, UI layout, scaling, safe area, focus nav | `game-ui-ux` | `godot-ui-control` / Unity UI","category":"external_commands","line_end":141,"severity":"medium","line_start":141},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| low FPS, optimize, draw calls, GC spike, pooling, profiler | `performance-optimization` | engine p","category":"external_commands","line_end":142,"severity":"medium","line_start":142},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-ui` + `game-ui-ux` (+ `input-systems` for gameplay bindings); remote exploit or","category":"external_commands","line_end":145,"severity":"medium","line_start":145},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"replication requests use `roblox-networking` + `roblox-luau`; respawn/rig requests use","category":"external_commands","line_end":146,"severity":"medium","line_start":146},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-characters`; physical simulation/query requests use `roblox-physics` (+","category":"external_commands","line_end":147,"severity":"medium","line_start":147},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`physics-tuning` for stability); simulator, tycoon, clicker or idle economy requests (upgrade","category":"external_commands","line_end":148,"severity":"medium","line_start":148},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`roblox-simulator-economy` + `roblox-networking` (+ `roblox-datastores` for saving); direct place","category":"external_commands","line_end":150,"severity":"medium","line_start":150},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"editing also uses `roblox-studio-workflow`.","category":"external_commands","line_end":151,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For Ebitengine, bind engine-specific slots to `ebitengine-game` and its relevant reference","category":"external_commands","line_end":153,"severity":"medium","line_start":153},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`defold-core` and add only the needed disciplines, e.g. \"add player movement to my Defold","category":"external_commands","line_end":159,"severity":"medium","line_start":159},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"game\" → `defold-core` + `input-systems` (+ `platformer` for a platformer). Defold has no","category":"external_commands","line_end":160,"severity":"medium","line_start":160},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"dedicated GUI, tilemap or physics skill yet; use `defold-core` and its build reference's","category":"external_commands","line_end":161,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### 3c. Genres — **compose** engine + disciplines (bind `*` to the detected engine)","category":"external_commands","line_end":164,"severity":"medium","line_start":164},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Genre (`says:`) | composes |","category":"external_commands","line_end":166,"severity":"medium","line_start":166},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| platformer, jump, double jump | `godot-2d-movement` (or engine physics) + `godot-tilemap`/`unity-t","category":"external_commands","line_end":168,"severity":"medium","line_start":168},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| roguelike, procedural dungeon, permadeath | `procedural-gen` + `godot-tilemap`/`unity-tilemap-2d` ","category":"external_commands","line_end":169,"severity":"medium","line_start":169},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| RPG, stats, inventory, quests | `godot-resources`/`unity-scriptableobjects` + `dialogue-systems` +","category":"external_commands","line_end":170,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| FPS, first-person, hitscan | `godot-3d-essentials`/`unreal-cpp-gameplay` + `input-systems` + `game","category":"external_commands","line_end":171,"severity":"medium","line_start":171},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| tower defense, waves, lanes | `game-ai` + engine movement + `level-design` + `game-ui-ux` |","category":"external_commands","line_end":172,"severity":"medium","line_start":172},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| card game, deckbuilder, TCG | `godot-resources`/`unity-scriptableobjects` + `game-ui-ux` (+ engine","category":"external_commands","line_end":173,"severity":"medium","line_start":173},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| visual novel, branching story | `dialogue-systems` + `save-systems` + `game-ui-ux` |","category":"external_commands","line_end":174,"severity":"medium","line_start":174},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| survival, crafting, gathering | `save-systems` + `godot-resources`/`unity-scriptableobjects` + `pr","category":"external_commands","line_end":175,"severity":"medium","line_start":175},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| puzzle, match-3, grid logic | `godot-tilemap`/`unity-tilemap-2d` + `level-design` + `game-feel` |","category":"external_commands","line_end":176,"severity":"medium","line_start":176},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`game-jam` (jam, 48-hour, Ludum Dare/GMTK) · `prototype-fast` (vertical slice, MVP, greybox) ·","category":"external_commands","line_end":180,"severity":"medium","line_start":180},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`steam-publish` (Steam, Steamworks, depot; `steam_appid.txt`) · `itch-publish` (itch.io, butler;","category":"external_commands","line_end":181,"severity":"medium","line_start":181},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`.itch.toml`).","category":"external_commands","line_end":182,"severity":"medium","line_start":182},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`references/routing-table.md`.","category":"external_commands","line_end":185,"severity":"medium","line_start":185},{"id":"external_commands:SKILL.md:189:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Preloaded:** only each skill's `name` + `description` are in context. Decide from those plus","category":"external_commands","line_end":189,"severity":"medium","line_start":189},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **On selection:** read the body of **each chosen** `skills/<category>/<name>/SKILL.md` — and","category":"external_commands","line_end":191,"severity":"medium","line_start":191},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **On demand:** read a skill's bundled `references/` files only when the subtask needs that","category":"external_commands","line_end":193,"severity":"medium","line_start":193},{"id":"external_commands:SKILL.md:198:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Announce what you load and why, e.g.: *\"Detected Godot (`project.godot`). Loading","category":"external_commands","line_end":198,"severity":"medium","line_start":198},{"id":"external_commands:SKILL.md:199:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`godot-2d-movement` for the controller and `platformer` for jump feel; will open the platformer","category":"external_commands","line_end":199,"severity":"medium","line_start":199},{"id":"external_commands:SKILL.md:200:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"skill's `feel-tuning.md` reference if you want coyote-time/buffering.\"*","category":"external_commands","line_end":200,"severity":"medium","line_start":200},{"id":"external_commands:SKILL.md:213:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Hand-offs:** when a genre's `composes` names a slot like `*-2d-movement`, bind it to the","category":"external_commands","line_end":213,"severity":"medium","line_start":213},{"id":"external_commands:SKILL.md:214:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"detected engine. If that engine lacks the exact skill, see §6 and `references/routing-table.md`","category":"external_commands","line_end":214,"severity":"medium","line_start":214},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"discipline/genre/workflow skill — no engine needed (\"what's a good save format?\" → `save-systems`).","category":"external_commands","line_end":223,"severity":"medium","line_start":223},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Read `references/custom-engines.md` to map the relevant discipline/genre concepts onto verified","category":"external_commands","line_end":230,"severity":"medium","line_start":230},{"id":"external_commands:SKILL.md:236:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`unity-csharp-scripting` + `unity-physics`\"). Never fabricate a skill name.","category":"external_commands","line_end":236,"severity":"medium","line_start":236},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"add a double jump to my Godot player\" | Godot (`project.godot`) | `godot-2d-movement` → `platform","category":"external_commands","line_end":245,"severity":"medium","line_start":245},{"id":"external_commands:SKILL.md:246:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"make an inventory for my Unity RPG\" | Unity (`Assets/`+`ProjectSettings/`) | `unity-scriptableobj","category":"external_commands","line_end":246,"severity":"medium","line_start":246},{"id":"external_commands:SKILL.md:247:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"add an inventory to my proprietary C++ RPG\" | existing custom engine | custom-engine reference → ","category":"external_commands","line_end":247,"severity":"medium","line_start":247},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"build a 2D puzzle in Go with Ebitengine\" | Ebitengine (named; later `go.mod`) | `ebitengine-game`","category":"external_commands","line_end":248,"severity":"medium","line_start":248},{"id":"external_commands:SKILL.md:249:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"fix a stale HUD in my Go game\" | Ebitengine (`go.mod` + game imports) | `ebitengine-game` → `game","category":"external_commands","line_end":249,"severity":"medium","line_start":249},{"id":"external_commands:SKILL.md:250:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"add player movement to my Defold game\" | Defold (`game.project`) | `defold-core` → `input-systems","category":"external_commands","line_end":250,"severity":"medium","line_start":250},{"id":"external_commands:SKILL.md:251:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"rebirths in my Roblox simulator take forever\" | Roblox (`*.project.json` / place file) | `roblox-","category":"external_commands","line_end":251,"severity":"medium","line_start":251},{"id":"external_commands:SKILL.md:252:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"procedural dungeon roguelike in Godot\" | Godot | `godot-tilemap` → `procedural-gen` → `roguelike`","category":"external_commands","line_end":252,"severity":"medium","line_start":252},{"id":"external_commands:SKILL.md:253:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"branching dialogue from a `.yarn` file\" | (none required) | `dialogue-systems` (+ engine UI skill","category":"external_commands","line_end":253,"severity":"medium","line_start":253},{"id":"external_commands:SKILL.md:254:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"how do I design save slots with migration?\" | (none) | `save-systems` only |","category":"external_commands","line_end":254,"severity":"medium","line_start":254},{"id":"external_commands:SKILL.md:255:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"publish my game on itch with butler\" | (any/none) | `itch-publish` only |","category":"external_commands","line_end":255,"severity":"medium","line_start":255},{"id":"external_commands:SKILL.md:256:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"I want to make a game but don't know what to use\" | unknown → ask, default Godot | router asks on","category":"external_commands","line_end":256,"severity":"medium","line_start":256},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"make hits feel punchy in my Godot game\" | Godot (`project.godot`) | `game-feel` (+ `camera-system","category":"external_commands","line_end":257,"severity":"medium","line_start":257},{"id":"external_commands:SKILL.md:258:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"the camera should follow my player smoothly\" | (detected engine) | `camera-systems` (+ engine mov","category":"external_commands","line_end":258,"severity":"medium","line_start":258},{"id":"external_commands:SKILL.md:259:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"my Unity game drops to 30 FPS, optimize it\" | Unity (`Assets/`+`ProjectSettings/`) | `performance","category":"external_commands","line_end":259,"severity":"medium","line_start":259},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| \"make a cohesive pixel-art player and enemy set\" | (detected engine) | `create-game-assets` → rele","category":"external_commands","line_end":260,"severity":"medium","line_start":260},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Full engine fingerprints, secondary signals, and disambiguation: `references/engine-detection.md`.","category":"external_commands","line_end":264,"severity":"medium","line_start":264},{"id":"external_commands:SKILL.md:265:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Exhaustive per-skill trigger words, engine bindings, and binding gaps: `references/routing-table.m","category":"external_commands","line_end":265,"severity":"medium","line_start":265},{"id":"external_commands:SKILL.md:266:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Custom/proprietary or unsupported engine integration: `references/custom-engines.md`.","category":"external_commands","line_end":266,"severity":"medium","line_start":266},{"id":"blocker:SKILL.md:49:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"An explicitly identified custom/proprietary engine is a valid result even without a catalog skill.","category":"blocker","line_end":49,"severity":"low","line_start":49},{"id":"blocker:SKILL.md:131:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| procedural, noise, seed, dungeon generator, WFC | `procedural-gen` | engine tilemap/grid skill |","category":"blocker","line_end":131,"severity":"low","line_start":131},{"id":"blocker:SKILL.md:149:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"costs, rebirths, offline earnings, big numbers, paid eggs/crates odds) use","category":"blocker","line_end":149,"severity":"low","line_start":149},{"id":"blocker:SKILL.md:176:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| puzzle, match-3, grid logic | `godot-tilemap`/`unity-tilemap-2d` + `level-design` + `game-feel` |","category":"blocker","line_end":176,"severity":"low","line_start":176}],"finding_verdicts":[{"id":"scripts:references/engine-detection.md:38:with-statement-deprecated-scope-confusion","reason":"The phrase 'built with' describes the Defold toolchain version in a Markdown table. It is not a JavaScript with statement.","verdict":"false_positive","confidence":0.99},{"id":"scripts:references/routing-table.md:91:with-statement-deprecated-scope-confusion","reason":"The table heading 'Pairs with (engine API skill)' describes skill composition. There is no executable with statement.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/routing-table.md:87:system-reconnaissance","reason":"This row lists Roblox economy topics, including offline earnings and paid item odds. It requests no host inventory or system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/routing-table.md:95:system-reconnaissance","reason":"Selector, sequence, and parallel describe behavior-tree nodes for game AI. They are routing keywords, not host reconnaissance commands.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/routing-table.md:114:system-reconnaissance","reason":"The row maps roguelike features such as turn-based grids to game-development skills. It does not inspect system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/routing-table.md:121:system-reconnaissance","reason":"Grid logic and tile-matching identify puzzle-game requests. No host enumeration or reconnaissance operation is specified.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/routing-table.md:29:network-reconnaissance","reason":"The Godot headless command is a keyword example for local script testing and CI routing. It does not probe hosts or networks.","verdict":"false_positive","confidence":0.99},{"id":"scripts:SKILL.md:126:with-statement-deprecated-scope-confusion","reason":"The Markdown heading 'Pairs with (engine API)' labels compatible skill bindings. It contains no executable with statement.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"Backticks format skill and reference paths in the read protocol. They are Markdown delimiters, not shell or Ruby command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","reason":"Backticks mark the Godot project fingerprint and skill directory in a table. No shell evaluation is requested.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"Backticks mark an Unreal project glob and skill directory. These are detection references, not executed commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"The Unity row uses Markdown code spans for project paths and a skill directory. There is no shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","reason":"The Ebitengine row formats a module file, dependency identifier, and skill path. It does not invoke a shell or fetch that dependency.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"Backticks label the Bevy manifest, dependency, and skill directory for detection. They do not execute Ruby or shell code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The Phaser row presents a package manifest, dependency name, and skill glob as Markdown. No process execution is specified.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"The PixiJS row uses code spans for package metadata and its skill directory. This is a lookup table, not executable shell syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"Backticks format the three.js dependency and associated skill paths. They are not command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","reason":"The Defold row identifies its project file and core skill directory. Markdown formatting does not create shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"Backticks format Lua filenames, a LÖVE API pattern, and the skill path. These are engine-detection signals, not shell commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"The pygame row describes a Python file glob and import fingerprint in Markdown. It does not execute the import or a shell.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The Roblox row formats place-file patterns and skill paths. These detection strings are not shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","reason":"The code span names the engine-detection reference to read. It is a document path, not an executable command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"Backticks mark the source repository's version-support document path. The sentence neither executes a command nor downloads content.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"Backticks format discipline skill names for task classification. These identifiers are not Ruby or shell expressions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The line continues a Markdown list of discipline skill identifiers. No command execution is requested.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"Input, camera, UI, and performance skill names appear in code spans. This is documentation formatting rather than shell evaluation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"Backticks label genre skill names in a classification list. There is no executable shell or Ruby context.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","reason":"The genre list uses Markdown code spans for skill identifiers. They do not represent commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"Workflow names identify game-jam, prototype, and publishing routing targets. Backticks provide formatting, not execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","reason":"The itch publishing identifier is a workflow routing target in prose. It is not a shell invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","reason":"Code spans show dialogue file patterns, skill identifiers, and a Steam metadata filename. These sharpen classification without executing commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","reason":"Backticks format publishing and input-system routing identifiers. The line maps file evidence to skills, not shell expressions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","reason":"The Godot skill directory and language skill names are Markdown code spans. There is no process execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"This line lists Godot structure and 2D skill identifiers. Backticks are documentation delimiters, not command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","reason":"Godot 3D, physics, UI, and animation skill names appear as inline code. None is executed.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","reason":"The line enumerates Godot animation, shader, resource, and audio skills. It contains no shell invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"Multiplayer and headless-testing skill identifiers are formatted with Markdown backticks. The row does not execute tests or shell substitutions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The export skill name completes the Godot routing list. It is a Markdown identifier, not a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","reason":"The Unity directory and scripting/input skill names are lookup labels. No shell or Ruby execution is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"Physics, animation, and data skill identifiers are inline Markdown code. These are routing choices rather than commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"Unity tilemap, navigation, and build skill names complete a documentation list. Backticks do not execute those identifiers.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","reason":"The Unreal skill path and Blueprint skill name are formatted as inline code. They are not executable shell expressions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","reason":"Gameplay, input, and behavior-tree skill names are Markdown routing labels. No external command is run.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"Unreal VFX and packaging skills are listed as identifiers. This does not invoke a packaging process or command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The Ebitengine directory and game skill name identify the routing destination. Their backticks are Markdown formatting.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"Web-engine paths and Phaser/PixiJS skill names appear in a documentation list. There is no shell evaluation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The three.js skill identifiers are inline code labels for routing. They do not execute external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"The other-engine directory and Bevy, pygame, and LÖVE skill names are Markdown references. No command substitution occurs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"The Defold core skill identifier introduces its topic coverage. It is not a shell command or Ruby expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"Roblox language, persistence, and UI skill names are formatted as code spans. The line only identifies routing targets.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","reason":"Networking and character skill names are documentation labels. They neither execute commands nor initiate network activity.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","reason":"Roblox physics and Studio workflow skill names continue the engine skill list. Backticks are not command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","reason":"The simulator economy skill identifier closes a topic list. It is Markdown text rather than an external command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The code span 'says:' labels request keywords in a table heading. It is not shell or Ruby execution syntax here.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The asset creation and optional image-generation names are routing references in a table. No shell command is specified.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"AI and engine navigation skill identifiers describe compatible pairings. The backticks are Markdown formatting, not command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","reason":"Behavior-tree routing maps concept keywords to named skills. Its inline code identifiers are not executable commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The procedural generation skill identifier is a table lookup target. Backticks do not execute a generator or shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"The dialogue-system identifier maps conversation keywords to a skill. It is a Markdown label, not executable syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"Save-system and Roblox persistence identifiers name compatible skills. The row does not perform filesystem writes or execute commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"Audio design and Godot audio skill names appear as routing labels. No external command execution is requested.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","reason":"Shader discipline and engine skill identifiers are formatted as inline code. The table does not evaluate them as commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","reason":"Physics skill names identify how to route stability requests. They are Markdown identifiers, not shell substitutions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","reason":"Level-design and tilemap skill names are lookup entries. The line contains no process invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"Input-related skill identifiers connect concepts to engine APIs. Backticks only format those names.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"Game-feel and camera skill names describe routing for animation feedback. There is no shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","reason":"Camera and movement skill identifiers specify concept-to-engine pairings. These Markdown labels are not executable commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","reason":"UI discipline and Godot UI skill names appear in a routing row. Backticks do not invoke external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","reason":"Performance and physics skill identifiers route optimization requests. They are documentation text, not shell expressions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","reason":"Roblox UI, cross-engine UI, and input identifiers specify skill composition. The code spans have no execution context.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","reason":"Roblox networking and language skill names route replication requests. They do not execute commands or send network traffic.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","reason":"Character and physics identifiers name focused Roblox skills. Backticks are Markdown rather than shell evaluation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","reason":"The physics-tuning skill name is part of routing guidance for simulation stability. It is not an executed command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","reason":"Economy, networking, and persistence names identify skills to compose. The line does not perform shell execution or data access.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The Studio workflow skill name is a Markdown routing reference. It does not directly launch Studio or execute a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","reason":"The Ebitengine game skill identifier specifies an engine binding. Backticks provide inline formatting only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","reason":"The Defold core skill name anchors a movement-routing example. There is no shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","reason":"Defold, input, and platformer skill names demonstrate a minimal composition. These are Markdown identifiers, not commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"The Defold core identifier names a fallback skill for missing specialized coverage. The code span does not execute anything.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","reason":"The backticked asterisk is a placeholder for engine-specific bindings in a heading. It is not a shell expansion or command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","reason":"The code span 'says:' is a table heading for genre trigger words. It has no executable context.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","reason":"The platformer row lists movement, tilemap, camera, and feedback skills. Markdown backticks do not run those identifiers.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","reason":"The roguelike row composes procedural generation, tilemap, AI, saving, and feedback skills. It contains no executable shell expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"The RPG row names data, dialogue, persistence, and UI skill dependencies. They are formatted documentation labels, not commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"The FPS row lists engine, input, AI, camera, and feedback skills. It does not invoke a shell.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","reason":"Tower-defense routing references AI, level-design, and UI skills. Backticks only format their names.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","reason":"Card-game routing lists data and UI skill identifiers. These are not shell or Ruby commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","reason":"Visual-novel routing composes dialogue, saving, and UI skills. The inline code spans have no command execution semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","reason":"Survival-game routing names persistence, data, procedural generation, and UI skills. Nothing here executes shell code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","reason":"Puzzle routing lists tilemap, level-design, and feedback skill names. Backticks are Markdown formatting rather than command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","reason":"Game-jam and prototype skill identifiers label workflow options in prose. They are not external commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","reason":"Steam and itch workflow names and a metadata filename are documentation examples. The line does not invoke publishing tools.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","reason":"The itch configuration filename is a file signal in a Markdown code span. It is not an executable command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","reason":"The code span points to the routing-table reference document. Reading a named document is not shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:189:ruby-shell-backtick-execution","reason":"The name and description labels identify preloaded skill metadata. Their backticks are inline Markdown formatting.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","reason":"The templated skill path tells the agent which selected document to read. It is not a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","reason":"The reference directory name describes on-demand document reading. The backticks do not execute Ruby or shell code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:198:ruby-shell-backtick-execution","reason":"The project filename appears in an example announcement explaining engine evidence. It is not a command invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:199:ruby-shell-backtick-execution","reason":"Movement and platformer identifiers appear in a sample skill-loading announcement. Markdown formatting does not execute them.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:200:ruby-shell-backtick-execution","reason":"The filename names an optional movement-tuning reference in an announcement example. There is no shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:213:ruby-shell-backtick-execution","reason":"The composes label and wildcard movement slot describe skill metadata binding. They are documentation tokens rather than executed expressions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:214:ruby-shell-backtick-execution","reason":"The routing-table reference path directs readers to documented binding gaps. It does not perform command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","reason":"The save-systems identifier illustrates an engine-independent concept route. It is not a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","reason":"The custom-engine reference path identifies documentation for project API integration. Its backticks only format a filename.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:236:ruby-shell-backtick-execution","reason":"Unity scripting and physics identifiers exemplify honest fallback skill selection. They are not executable commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","reason":"The double-jump example formats a project fingerprint and selected movement/genre skills. No shell invocation is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:246:ruby-shell-backtick-execution","reason":"The inventory example uses code spans for Unity folders and routing targets. These are documentation references, not shell substitutions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:247:ruby-shell-backtick-execution","reason":"The custom-engine inventory example identifies RPG and save-system concepts. Its inline skill names are not executed.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","reason":"The Go puzzle example formats a module filename and Ebitengine/puzzle skill names. This is a routing example, not command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:249:ruby-shell-backtick-execution","reason":"The stale-HUD example names module evidence and focused engine/UI skills. Backticks do not invoke a shell or create a scaffold.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:250:ruby-shell-backtick-execution","reason":"The Defold movement example formats its project filename and selected skills. No external command is specified.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:251:ruby-shell-backtick-execution","reason":"The Roblox economy example uses code spans for a project-file pattern and skill names. These are routing references, not commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:252:ruby-shell-backtick-execution","reason":"The dungeon example lists tilemap, procedural generation, and roguelike skill names in order. It contains no shell evaluation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:253:ruby-shell-backtick-execution","reason":"The dialogue example formats a Yarn extension and dialogue skill identifier. They are documentation labels, not executed commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:254:ruby-shell-backtick-execution","reason":"The save-slot example selects one named skill without requiring an engine. Its backticks provide Markdown formatting only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:255:ruby-shell-backtick-execution","reason":"The publishing example names the itch workflow skill as a routing result. It does not execute butler or upload any files.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:256:ruby-shell-backtick-execution","reason":"The unknown-engine example names a possible Godot skill after clarification. It is not a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","reason":"The feedback example formats a Godot fingerprint and game-feel/camera routing targets. No command execution occurs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:258:ruby-shell-backtick-execution","reason":"The camera-follow example names the camera-systems skill. It is an inline documentation identifier, not executable code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:259:ruby-shell-backtick-execution","reason":"The optimization example formats Unity project evidence and a performance skill name. It does not invoke a profiler or shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","reason":"The visual asset example routes to an asset-creation skill and engine import guidance. The identifier is not shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","reason":"The code span names the engine-detection reference document. It is a Markdown path, not a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:265:ruby-shell-backtick-execution","reason":"The routing-table document path appears in the reference list. Backticks do not execute its contents.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:266:ruby-shell-backtick-execution","reason":"The custom-engine document path appears in a reference list. It is not an external command or Ruby expression.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:49:system-reconnaissance","reason":"The sentence recognizes custom or proprietary game engines as valid detection results. It requests no host inventory or system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:131:system-reconnaissance","reason":"Noise, seeds, dungeon generation, and grids are game-level generation topics. This routing row does not enumerate system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:149:system-reconnaissance","reason":"Offline earnings and item odds describe Roblox simulator economy requests. The text does not inspect the operating system or collect host data.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:176:system-reconnaissance","reason":"Grid logic and match-3 identify puzzle-game mechanics and related skills. They are not system reconnaissance operations.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"c993c6abcbffafea2683d7748b53b3dfaf438415","subject_content_hash":"69c1167073530655dac859e33c4b8893903b94f13326ef1c85f152b8008418ba","subject_tree_hash":"3d5e9f5592566e28fc7e7d0423799ae83a3afa1584f5c1ea4a2e7f99d99b420f","subject_plugin_path":"skills/gamedev-skills/router","audit_payload_hash":"702f3eed5d96e1616e9887cbac0aa124","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"c993c6abcbffafea2683d7748b53b3dfaf438415","contentHash":"69c1167073530655dac859e33c4b8893903b94f13326ef1c85f152b8008418ba","treeHash":"3d5e9f5592566e28fc7e7d0423799ae83a3afa1584f5c1ea4a2e7f99d99b420f","pluginPath":"skills/gamedev-skills/router","auditPayloadHash":"702f3eed5d96e1616e9887cbac0aa124"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/gamedev-skills-router/audits/1/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}