[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHS5XPG0EDWAMA8ECF8RQY":3,"skill-same:01M6CHS5XPG0EDWAMA8ECF8RQY":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":22,"linkOnly":23,"markdownContent":24,"markdownBody":25,"frontMatter":26,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":14,"repositoryHtmlUrl":30,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M6CHS5XPG0EDWAMA8ECF8RQY","bevy-query",null,"Query running Bevy app ECS state via the remote protocol","dynnamitt\u002Fhex-terrain","dynnamitt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43120?v=4","01M6CHS40TW5TNFBYCAP234JRJ","Kjetil Midtlie","01M6CHS45M0SHE089HPZSBVKJ1",0,"GPL-3.0","https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbevy-query\u002FSKILL.md",[],[19,20,21],"bevy query","state","protocol","2026-11-10 10:12:30",false,"---\nname: bevy-query\ndescription: Query running Bevy app ECS state via the remote protocol\n---\n\nConnect to the Bevy remote inspector at http:\u002F\u002F127.0.0.1:15702 via JSON-RPC.\n\n## Methods (Bevy 0.18)\n\n| Method | Purpose |\n|---|---|\n| `rpc.discover` | List available methods |\n| `world.query` | Query entities by components, with optional filter |\n| `world.get` | Get components from a specific entity by ID |\n| `world.list` | List all registered component types |\n| `world.spawn` | Spawn a new entity |\n| `world.despawn` | Despawn an entity |\n| `world.insert` | Insert components on an entity |\n| `world.remove` | Remove components from an entity |\n| `world.reparent` | Change entity parent |\n\n## Type path conventions\n\nComponent types use their full Rust module path (where defined, not re-exported):\n\n- Crate types: `hex_terrain::terrain::entities::HexSunDisc`\n- Bevy Transform: `bevy_transform::components::transform::Transform`\n- Marker components: `hex_terrain::drone::entities::Player`\n\n## Query examples\n\n### Count entities with a component\n\n```json\n{\n  \"jsonrpc\": \"2.0\", \"method\": \"world.query\", \"id\": 0,\n  \"params\": {\n    \"data\": {\n      \"components\": [\"hex_terrain::terrain::entities::HexSunDisc\"]\n    }\n  }\n}\n```\n\nResponse: `.result` is an array — use `jq '.result | length'` to count.\n\n### Query component data with a filter\n\nFetch Transform on entities that have a Player marker:\n\n```json\n{\n  \"jsonrpc\": \"2.0\", \"method\": \"world.query\", \"id\": 0,\n  \"params\": {\n    \"data\": {\n      \"components\": [\"bevy_transform::components::transform::Transform\"]\n    },\n    \"filter\": {\n      \"with\": [\"hex_terrain::drone::entities::Player\"]\n    }\n  }\n}\n```\n\nResponse structure:\n```json\n{\n  \"result\": [\n    {\n      \"entity\": \"4294967298v1\",\n      \"components\": {\n        \"bevy_transform::components::transform::Transform\": {\n          \"translation\": { \"x\": 0.0, \"y\": 12.0, \"z\": 0.0 },\n          \"rotation\": [0.0, 0.0, 0.0, 1.0],\n          \"scale\": { \"x\": 1.0, \"y\": 1.0, \"z\": 1.0 }\n        }\n      }\n    }\n  ]\n}\n```\n\nExtract a field: `jq '.result[0].components[\"...Transform\"].translation.y'`\n\n### Query params reference\n\n```json\n{\n  \"data\": {\n    \"components\": [\"...\"],  \u002F\u002F components to return data for (required)\n    \"option\": [\"...\"],      \u002F\u002F optional components (may be absent)\n    \"has\": [\"...\"]          \u002F\u002F boolean presence check (no data returned)\n  },\n  \"filter\": {\n    \"with\": [\"...\"],        \u002F\u002F required components (not returned in data)\n    \"without\": [\"...\"]      \u002F\u002F excluded components\n  }\n}\n```\n\n## curl one-liner\n\n```bash\ncurl -sf -X POST http:\u002F\u002F127.0.0.1:15702 \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"world.query\",\"id\":0,\"params\":{\"data\":{\"components\":[\"COMPONENT_PATH\"]}}}' \\\n  | jq '.result | length'\n```\n","Connect to the Bevy remote inspector at http:\u002F\u002F127.0.0.1:15702 via JSON-RPC.\n\n## Methods (Bevy 0.18)\n\n| Method | Purpose |\n|---|---|\n| `rpc.discover` | List available methods |\n| `world.query` | Query entities by components, with optional filter |\n| `world.get` | Get components from a specific entity by ID |\n| `world.list` | List all registered component types |\n| `world.spawn` | Spawn a new entity |\n| `world.despawn` | Despawn an entity |\n| `world.insert` | Insert components on an entity |\n| `world.remove` | Remove components from an entity |\n| `world.reparent` | Change entity parent |\n\n## Type path conventions\n\nComponent types use their full Rust module path (where defined, not re-exported):\n\n- Crate types: `hex_terrain::terrain::entities::HexSunDisc`\n- Bevy Transform: `bevy_transform::components::transform::Transform`\n- Marker components: `hex_terrain::drone::entities::Player`\n\n## Query examples\n\n### Count entities with a component\n\n```json\n{\n  \"jsonrpc\": \"2.0\", \"method\": \"world.query\", \"id\": 0,\n  \"params\": {\n    \"data\": {\n      \"components\": [\"hex_terrain::terrain::entities::HexSunDisc\"]\n    }\n  }\n}\n```\n\nResponse: `.result` is an array — use `jq '.result | length'` to count.\n\n### Query component data with a filter\n\nFetch Transform on entities that have a Player marker:\n\n```json\n{\n  \"jsonrpc\": \"2.0\", \"method\": \"world.query\", \"id\": 0,\n  \"params\": {\n    \"data\": {\n      \"components\": [\"bevy_transform::components::transform::Transform\"]\n    },\n    \"filter\": {\n      \"with\": [\"hex_terrain::drone::entities::Player\"]\n    }\n  }\n}\n```\n\nResponse structure:\n```json\n{\n  \"result\": [\n    {\n      \"entity\": \"4294967298v1\",\n      \"components\": {\n        \"bevy_transform::components::transform::Transform\": {\n          \"translation\": { \"x\": 0.0, \"y\": 12.0, \"z\": 0.0 },\n          \"rotation\": [0.0, 0.0, 0.0, 1.0],\n          \"scale\": { \"x\": 1.0, \"y\": 1.0, \"z\": 1.0 }\n        }\n      }\n    }\n  ]\n}\n```\n\nExtract a field: `jq '.result[0].components[\"...Transform\"].translation.y'`\n\n### Query params reference\n\n```json\n{\n  \"data\": {\n    \"components\": [\"...\"],  \u002F\u002F components to return data for (required)\n    \"option\": [\"...\"],      \u002F\u002F optional components (may be absent)\n    \"has\": [\"...\"]          \u002F\u002F boolean presence check (no data returned)\n  },\n  \"filter\": {\n    \"with\": [\"...\"],        \u002F\u002F required components (not returned in data)\n    \"without\": [\"...\"]      \u002F\u002F excluded components\n  }\n}\n```\n\n## curl one-liner\n\n```bash\ncurl -sf -X POST http:\u002F\u002F127.0.0.1:15702 \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"world.query\",\"id\":0,\"params\":{\"data\":{\"components\":[\"COMPONENT_PATH\"]}}}' \\\n  | jq '.result | length'\n```\n",{"name":5,"description":7},"main","72545581a394ca7cd987444db191ec8e6e9bbfd6",".claude\u002Fskills\u002Fbevy-query","https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain","https:\u002F\u002Fdynnamitt.github.io\u002Fhex-terrain\u002F","https:\u002F\u002Fgithub.com\u002Fdynnamitt","Love FP and it makes the head spinn","2026-04-28 01:06:11",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add dynnamitt\u002Fhex-terrain --skill bevy-query",{"tool":41,"command":42},"bunx","bunx skills add dynnamitt\u002Fhex-terrain --skill bevy-query",{"tool":44,"command":45},"pnpm","pnpm dlx skills add dynnamitt\u002Fhex-terrain --skill bevy-query","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbevy-query\u002FSKILL.md",true,[49,55,59],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"references\u002Frecipes.md","REFERENCE","参考文档",3124,"https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbevy-query\u002Freferences\u002Frecipes.md",{"path":56,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Fresponse-format.md",2325,"https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbevy-query\u002Freferences\u002Fresponse-format.md",{"path":60,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Ftype-paths.md",3530,"https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbevy-query\u002Freferences\u002Ftype-paths.md",[64,76],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":22},"01M6CHS9Y24TW2A931F5H1JVT5","release","Prepare a new version release — bump Cargo.toml, scaffold UPDATES.md section, commit, and tag","https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Frelease\u002FSKILL.md",[],[66,71,72,73,74,75],"commit","prepare","scaffold","version","bump",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":22},"01M6CHS88Q45CHQYYJ5XQ0K64Z","cargo-check","Run cargo check and clippy to validate the build","https:\u002F\u002Fgithub.com\u002Fdynnamitt\u002Fhex-terrain\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcargo-check\u002FSKILL.md",[],[83,84,85,86,87,88],"cargo check","check","validate","run","build","clippy"]