[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESAHJ3WKPASN3R788Z1XB6":3,"skill-same:01M6ESAHJ3WKPASN3R788Z1XB6":91},{"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},"01M6ESAHJ3WKPASN3R788Z1XB6","unreal-build-async-systems",null,"Implement Unreal background computation and asynchronous callbacks with explicit thread ownership, cancellation and stale-result rejection.","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\u002Funreal-build-async-systems\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"async","build","unreal","systems","unreal build async systems","implement","asynchronous","stale","Callbacks","ownership","with","thread","background","result","computation","2026-11-10 10:12:30",false,"---\nname: unreal-build-async-systems\ndescription: Implement Unreal background computation and asynchronous callbacks with explicit thread ownership, cancellation and stale-result rejection.\nengines: [UNREAL]\n---\n\n# Unreal Build Async Systems\n\n## When to use\n\nImplement background computation, task scheduling or delayed callback application in Unreal. Asset identity\u002Floading belongs to asset integration; ability and AI tasks retain their feature-specific rules.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unreal-build-async-systems` before edits or tool launches. Require effective engine `UNREAL` and `compatible: true`; revalidate any task override and permitted output scope. A skill never selects its engine.\n\nRead the actual engine version, task APIs, owner lifetime, throughput\u002Flatency budget and shutdown behavior. CPU jobs, asset loads, gameplay tasks and network requests do not share one cancellation API. Record observed context under the resolved `.hephaera\u002F.cache\u002Ftasks\u002F\u003Ctask>\u002F`; `ENGINE.md` remains the selector.\n\n## Workflow\n\n1. Define a bounded work item: immutable input, owner\u002Frequest generation, cancellation state, deadline and output-size limit. Snapshot actor\u002Fcomponent data on its owning thread before scheduling.\n2. Choose UE::Tasks, Async, an engine subsystem or an existing project queue against the installed release. Bound concurrent work; avoid blocking the game thread on a continuation that needs that thread.\n3. Compute on captured values and synchronized non-UObject shared state. Strong\u002Fweak object pointers and `FGCScopeGuard` address lifetime concerns, not synchronization of game-thread-owned fields. Use only APIs documented for the worker context.\n4. Give cancellation an owner and synchronization protocol. Observe it at bounded checkpoints; retiring a request does not necessarily preempt the underlying operation or free its input immediately.\n5. Marshal application to the owning thread. Revalidate weak owner, world, cancellation, request generation and current authority before mutation. A valid owner with a newer request still rejects an old completion.\n6. Pair delegates\u002Ftimers with cleanup and define EndPlay, travel, unload and shutdown order. Non-UObject job data may safely outlive the actor; a captured raw `this` may not.\n7. Measure queue delay, work time, cancellation latency and discarded results. Keep permission to compute separate from permission to mutate world state or write artifacts.\n\nRead [task ownership and cancellation](references\u002Ftask-ownership-cancellation.md) when implementing handoffs or teardown.\n\n## Verification\n\nExercise valid completion, superseding requests, queued\u002Frunning cancellation, owner destruction, travel and shutdown under load. Check both accepted and discarded results, bounded queues and absence of dangling callbacks\u002Fdeadlock. A stress pass does not by itself prove thread safety.\n\n## Output\n\nThread\u002Fownership diagram, bounded task implementation, cancellation\u002Fresult-application protocol and scoped evidence. Record environment, expected\u002Fobserved outcomes and blocked\u002Fnot-run checks separately. Compilation and structural checks are not runtime evidence.\n\n## Boundaries\n\nDo not install plugins, invent preemptive cancellation or change the project engine. Match host headers and target platforms. Preserve budgets, provenance and existing approval\u002Fpublication gates.\n","# Unreal Build Async Systems\n\n## When to use\n\nImplement background computation, task scheduling or delayed callback application in Unreal. Asset identity\u002Floading belongs to asset integration; ability and AI tasks retain their feature-specific rules.\n\n## Activation and prerequisites\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unreal-build-async-systems` before edits or tool launches. Require effective engine `UNREAL` and `compatible: true`; revalidate any task override and permitted output scope. A skill never selects its engine.\n\nRead the actual engine version, task APIs, owner lifetime, throughput\u002Flatency budget and shutdown behavior. CPU jobs, asset loads, gameplay tasks and network requests do not share one cancellation API. Record observed context under the resolved `.hephaera\u002F.cache\u002Ftasks\u002F\u003Ctask>\u002F`; `ENGINE.md` remains the selector.\n\n## Workflow\n\n1. Define a bounded work item: immutable input, owner\u002Frequest generation, cancellation state, deadline and output-size limit. Snapshot actor\u002Fcomponent data on its owning thread before scheduling.\n2. Choose UE::Tasks, Async, an engine subsystem or an existing project queue against the installed release. Bound concurrent work; avoid blocking the game thread on a continuation that needs that thread.\n3. Compute on captured values and synchronized non-UObject shared state. Strong\u002Fweak object pointers and `FGCScopeGuard` address lifetime concerns, not synchronization of game-thread-owned fields. Use only APIs documented for the worker context.\n4. Give cancellation an owner and synchronization protocol. Observe it at bounded checkpoints; retiring a request does not necessarily preempt the underlying operation or free its input immediately.\n5. Marshal application to the owning thread. Revalidate weak owner, world, cancellation, request generation and current authority before mutation. A valid owner with a newer request still rejects an old completion.\n6. Pair delegates\u002Ftimers with cleanup and define EndPlay, travel, unload and shutdown order. Non-UObject job data may safely outlive the actor; a captured raw `this` may not.\n7. Measure queue delay, work time, cancellation latency and discarded results. Keep permission to compute separate from permission to mutate world state or write artifacts.\n\nRead [task ownership and cancellation](references\u002Ftask-ownership-cancellation.md) when implementing handoffs or teardown.\n\n## Verification\n\nExercise valid completion, superseding requests, queued\u002Frunning cancellation, owner destruction, travel and shutdown under load. Check both accepted and discarded results, bounded queues and absence of dangling callbacks\u002Fdeadlock. A stress pass does not by itself prove thread safety.\n\n## Output\n\nThread\u002Fownership diagram, bounded task implementation, cancellation\u002Fresult-application protocol and scoped evidence. Record environment, expected\u002Fobserved outcomes and blocked\u002Fnot-run checks separately. Compilation and structural checks are not runtime evidence.\n\n## Boundaries\n\nDo not install plugins, invent preemptive cancellation or change the project engine. Match host headers and target platforms. Preserve budgets, provenance and existing approval\u002Fpublication gates.\n",{"name":5,"engines":39,"description":7},[40],"UNREAL","main","f819d9a9c7d641d8c7e14b59560a4fd358ec4630","skills\u002Funreal-build-async-systems",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 unreal-build-async-systems",{"tool":57,"command":58},"bunx","bunx skills add TimothyMeadows\u002FHephaera --skill unreal-build-async-systems",{"tool":60,"command":61},"pnpm","pnpm dlx skills add TimothyMeadows\u002FHephaera --skill unreal-build-async-systems","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-async-systems\u002FSKILL.md",true,[65,71,75,79,83,87],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"agents\u002Fopenai.yaml","REFERENCE","参考文档",288,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-async-systems\u002Fagents\u002Fopenai.yaml",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fai-gateway.md",2211,"https:\u002F\u002Fgithub.com\u002FAkaraChen\u002Fangel-engine\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fai-sdk\u002Freferences\u002Fai-gateway.md",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fcommon-errors.md",11034,"https:\u002F\u002Fgithub.com\u002FAkaraChen\u002Fangel-engine\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fai-sdk\u002Freferences\u002Fcommon-errors.md",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fdevtools.md",1199,"https:\u002F\u002Fgithub.com\u002FAkaraChen\u002Fangel-engine\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fai-sdk\u002Freferences\u002Fdevtools.md",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Ftask-ownership-cancellation.md",2569,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funreal-build-async-systems\u002Freferences\u002Ftask-ownership-cancellation.md",{"path":88,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Ftype-safe-agents.md",5323,"https:\u002F\u002Fgithub.com\u002FAkaraChen\u002Fangel-engine\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fai-sdk\u002Freferences\u002Ftype-safe-agents.md",[92,115,139,158,177,196],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"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",[],[99,100,101,102,103,29,104,105,106,107,108,109,110,111,112,113,28,114],"game","verify","lifecycle","verify web3 game lifecycle","web3","evidence","readiness","release readiness","Wallet","recovery","properties","release","contract","canonical","asset","trading",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"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",[],[99,122,100,123,124,125,126,127,128,129,130,131,132,133,134,135,108,136,137,138],"onchain","game assets","assets","verify onchain game assets","chain","for","inventory","reservations","design","erc721","use","Rules","collection","on-chain","at","blocks","reconcile",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"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",[],[99,146,123,124,147,103,148,149,150,151,126,152,101,153,154,155,156,113,157],"plan","plan web3 game assets","supply","opt","immutable","rights","dependencies","token","base","define","ethereum","identity",{"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},"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",[],[99,165,166,167,168,107,169,170,171,172,173,174,175,176],"integrate game wallets","integrate","wallets","siwe","keys","authentication","player","scoped","connection","authority","application","handoff",{"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},"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",[],[99,184,166,113,114,185,186,127,172,187,132,188,189,29,190,191,192,193,194,195],"integrate game asset trading","reconciliation","idempotent operations","retries","listing","idempotent","nft","approvals","operations","marketplace","integration","intents",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"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",[],[99,203,20,204,205,127,206,171,207,111,208,132,133,209,29,210,211,100,212,213],"evm","build evm game contracts","contracts","deployment","collections","host","author","admin","signing","mint","tooling"]