[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ES197V6MP3M8Y22EPE6DNP":3,"skill-same:01M6ES197V6MP3M8Y22EPE6DNP":71},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6ES197V6MP3M8Y22EPE6DNP","godot-build-controls",null,"Implement Godot action input, event propagation, player-device pairing, and bounded haptic feedback.","TimothyMeadows\u002FHephaera","TimothyMeadows","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4072037?v=4","01M6ERVE3WV9X55S1NT4W5FDGA","Timothy D Meadows II","01M6ERVE8H7CBATH6KYFDKG5CJ",4,"MIT","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fgodot-build-controls\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"build","godot","controls","godot build controls","implement","feedback","device","propagation","input","event","player","action","pairing","haptic","bounded","2026-11-10 10:12:30",false,"---\nname: godot-build-controls\ndescription: Implement Godot action input, event propagation, player-device pairing, and bounded haptic feedback.\nengines: [GODOT]\n---\n\n# Godot Build Controls\n\n## When to use\n\nImplement Godot action input, event propagation, player-device pairing, and bounded haptic feedback. Apply this feature only to Godot-owned code and content.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh godot-build-controls` before edits or tool launches. Continue only when the effective engine is `GODOT` and the skill is eligible. Skill selection never selects the engine. Honor validated task override evidence and its permitted isolated output scope.\n\nRecord Godot version, project language, target platforms, InputMap actions, local players, pointer\u002Ftouch policy, binding preferences and haptic support requirements. Match API names to GDScript or C# rather than mixing language conventions.\n\n## Workflow\n\n1. Define actions and dead zones in InputMap, preserving analog magnitude where required. Sample gameplay intent into a bounded buffer; distinguish just-pressed edges, held actions and pointer deltas.\n2. Choose _input, _gui_input and _unhandled_input by responsibility. Control.accept_event and Viewport.set_input_as_handled affect event propagation, while polling Input state still needs an explicit gameplay\u002FUI ownership gate.\n3. Handle keyboard\u002Fcontroller\u002Fpointer switching, remapping and binding-aware prompts. Touch-to-mouse emulation requires an intentional policy so a single gesture cannot produce duplicate gameplay requests.\n4. Assign connected joypad device IDs to local players explicitly and track joy_connection_changed. Device IDs are runtime handles, not durable player identities; reconnect must revalidate pairing and clear stale held actions.\n5. Coordinate focus changes, mouse capture and modal transitions. Stop gameplay actions when the UI owns input and restore valid focus\u002Fcapture without replaying the event that closed the screen.\n6. Route start_joy_vibration and stop_joy_vibration through the paired player's supported device using explicit finite duration, bounded intensity and cancellation ownership. Mobile vibrate_handheld is a separately checked platform capability.\n7. Stop effects on pause, focus loss, disconnect, scene exit or superseding events; unsupported or failed vibration remains a presentation result. Never change simulation outcomes or reassign old patterns to a newly connected device.\n\n## Verification\n\n- Exercise action edges, analog dead zones, text entry, UI propagation, touch emulation and remapping in native fixtures.\n- Test two-player pairing, disconnect\u002Freconnect during held input, focus loss during vibration, intensity zero and overlapping\u002Fcancelled patterns.\n- Record physical-device tactile checks separately from API tests and any web-build checks; simulated calls cannot prove felt feedback.\n\n## Output\n\nInputMap\u002Fpreferences and adapters, input\u002Fcontext and pairing contracts, bounded haptic routing and target-device evidence. Record environment, scope, expected and observed results, evidence paths, and blocked or not-run checks separately from passes.\n\n## Boundaries\n\nDo not assume every joypad or mobile platform supports vibration. New device mappings, native plugins and permission changes remain explicit project decisions. Independent services and tools retain their architecture contracts.\n\n## References\n\n- [Godot Input API](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Fstable\u002Fclasses\u002Fclass_input.html). Select the documentation matching the project release.\n- [Godot input event propagation](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Fstable\u002Ftutorials\u002Finputs\u002Finputevent.html). Select the documentation matching the project release.\n\n","# Godot Build Controls\n\n## When to use\n\nImplement Godot action input, event propagation, player-device pairing, and bounded haptic feedback. Apply this feature only to Godot-owned code and content.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh godot-build-controls` before edits or tool launches. Continue only when the effective engine is `GODOT` and the skill is eligible. Skill selection never selects the engine. Honor validated task override evidence and its permitted isolated output scope.\n\nRecord Godot version, project language, target platforms, InputMap actions, local players, pointer\u002Ftouch policy, binding preferences and haptic support requirements. Match API names to GDScript or C# rather than mixing language conventions.\n\n## Workflow\n\n1. Define actions and dead zones in InputMap, preserving analog magnitude where required. Sample gameplay intent into a bounded buffer; distinguish just-pressed edges, held actions and pointer deltas.\n2. Choose _input, _gui_input and _unhandled_input by responsibility. Control.accept_event and Viewport.set_input_as_handled affect event propagation, while polling Input state still needs an explicit gameplay\u002FUI ownership gate.\n3. Handle keyboard\u002Fcontroller\u002Fpointer switching, remapping and binding-aware prompts. Touch-to-mouse emulation requires an intentional policy so a single gesture cannot produce duplicate gameplay requests.\n4. Assign connected joypad device IDs to local players explicitly and track joy_connection_changed. Device IDs are runtime handles, not durable player identities; reconnect must revalidate pairing and clear stale held actions.\n5. Coordinate focus changes, mouse capture and modal transitions. Stop gameplay actions when the UI owns input and restore valid focus\u002Fcapture without replaying the event that closed the screen.\n6. Route start_joy_vibration and stop_joy_vibration through the paired player's supported device using explicit finite duration, bounded intensity and cancellation ownership. Mobile vibrate_handheld is a separately checked platform capability.\n7. Stop effects on pause, focus loss, disconnect, scene exit or superseding events; unsupported or failed vibration remains a presentation result. Never change simulation outcomes or reassign old patterns to a newly connected device.\n\n## Verification\n\n- Exercise action edges, analog dead zones, text entry, UI propagation, touch emulation and remapping in native fixtures.\n- Test two-player pairing, disconnect\u002Freconnect during held input, focus loss during vibration, intensity zero and overlapping\u002Fcancelled patterns.\n- Record physical-device tactile checks separately from API tests and any web-build checks; simulated calls cannot prove felt feedback.\n\n## Output\n\nInputMap\u002Fpreferences and adapters, input\u002Fcontext and pairing contracts, bounded haptic routing and target-device evidence. Record environment, scope, expected and observed results, evidence paths, and blocked or not-run checks separately from passes.\n\n## Boundaries\n\nDo not assume every joypad or mobile platform supports vibration. New device mappings, native plugins and permission changes remain explicit project decisions. Independent services and tools retain their architecture contracts.\n\n## References\n\n- [Godot Input API](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Fstable\u002Fclasses\u002Fclass_input.html). Select the documentation matching the project release.\n- [Godot input event propagation](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Fstable\u002Ftutorials\u002Finputs\u002Finputevent.html). Select the documentation matching the project release.\n\n",{"name":5,"engines":39,"description":7},[40],"GODOT","main","f819d9a9c7d641d8c7e14b59560a4fd358ec4630","skills\u002Fgodot-build-controls",3,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera","https:\u002F\u002Fhephaera.com\u002F","https:\u002F\u002Fgithub.com\u002FTimothyMeadows","http:\u002F\u002Fwww.timothymeadows.com","Software & AI Systems Architect | Distributed Systems & Agentic Platforms","2026-11-13 12:12:19",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add TimothyMeadows\u002FHephaera --skill godot-build-controls",{"tool":57,"command":58},"bunx","bunx skills add TimothyMeadows\u002FHephaera --skill godot-build-controls",{"tool":60,"command":61},"pnpm","pnpm dlx skills add TimothyMeadows\u002FHephaera --skill godot-build-controls","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fgodot-build-controls\u002FSKILL.md",true,[65],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"agents\u002Fopenai.yaml","REFERENCE","参考文档",279,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fgodot-build-controls\u002Fagents\u002Fopenai.yaml",[72,97,121,140,158,177],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":34},"01M70V3EJ7JDFDFJ3XTKRGKRBP","verify-web3-game-lifecycle","Verify a game's selected Web3 asset, wallet, ownership and trading lifecycle with contract properties, canonical recovery, actual target evidence and separate release readiness.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-web3-game-lifecycle\u002FSKILL.md",[],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],"game","verify","lifecycle","verify web3 game lifecycle","web3","with","evidence","readiness","release readiness","Wallet","recovery","properties","release","contract","canonical","asset","ownership","trading",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":34},"01M70V3CS767H4M1FP4C2A7K51","verify-onchain-game-assets","Verify exact on-chain game collection ownership and quantities at canonical blocks, reconcile inventory events, and design honest match admission. Use for ERC721\u002FERC1155 inventory, reorg recovery, reservations, or transfer-during-match rules.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-onchain-game-assets\u002FSKILL.md",[],[79,104,80,105,106,107,108,109,110,111,112,113,114,115,116,117,89,118,119,120],"onchain","game assets","assets","verify onchain game assets","chain","for","inventory","reservations","design","erc721","use","Rules","collection","on-chain","at","blocks","reconcile",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":34},"01M70TZYWE48MTM8CGGDMWSJDN","plan-web3-game-assets","Define an opt-in Ethereum, Base or Immutable game-asset lifecycle, including token identity, supply, rights, custody, game eligibility and chain-specific dependencies.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fplan-web3-game-assets\u002FSKILL.md",[],[79,128,105,106,129,83,130,131,132,133,108,134,81,135,136,137,138,94,139],"plan","plan web3 game assets","supply","opt","immutable","rights","dependencies","token","base","define","ethereum","identity",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":34},"01M70TYYZ7SPZ7PE6A6GQ5RXQ9","integrate-game-wallets","Integrate explicit player-wallet connection, scoped SIWE authentication, authority invalidation and reviewed target-specific handoff without application-held player keys.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-wallets\u002FSKILL.md",[],[79,147,148,149,150,88,151,152,29,153,154,155,156,157],"integrate game wallets","integrate","wallets","siwe","keys","authentication","scoped","connection","authority","application","handoff",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":34},"01M70TYX656BP1R0KWMYRX437R","integrate-game-asset-trading","Integrate explicitly selected game asset settlement with exact unsigned intents, scoped approvals, idempotent operations and canonical receipt reconciliation. Use for NFT listing, buying, cancellation, retries or marketplace integration.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-asset-trading\u002FSKILL.md",[],[79,165,148,94,96,166,167,109,153,168,114,169,170,84,171,172,173,174,175,176],"integrate game asset trading","reconciliation","idempotent operations","retries","listing","idempotent","nft","approvals","operations","marketplace","integration","intents",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":34},"01M70TWV3J83RAJMA7BC62CPAH","build-evm-game-contracts","Author and verify host-owned EVM game collections and explicit mint, burn, craft or admin rules with pinned Solidity tooling. Use for contract source and deployment candidates; deployment and player signing require separate authorization.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-evm-game-contracts\u002FSKILL.md",[],[79,184,19,185,186,109,187,29,188,92,189,114,115,190,84,191,192,80,193,194],"evm","build evm game contracts","contracts","deployment","collections","host","author","admin","signing","mint","tooling"]