[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74ESJS0FNKN62WBX0KER3T4":3,"skill-same:01M74ESJS0FNKN62WBX0KER3T4":46},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M74ESJS0FNKN62WBX0KER3T4","gsd-do",null,"Route freeform text to the right GSD command automatically","tamarillo-ai\u002Ftheta","tamarillo-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F264659913?v=4","01M732W8TW61PS979NJ2W4Z6XZ","tamarillo.ai","01M732W8VRBBGT4F0Q3B2HNGTQ",15,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcodex-cli\u002Fregression\u002Fnunti-backend\u002F.codex\u002Fgsd-local-patches\u002Fskills\u002Fgsd-do\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: \"gsd-do\"\ndescription: \"Route freeform text to the right GSD command automatically\"\nmetadata:\n  short-description: \"Route freeform text to the right GSD command automatically\"\n---\n\n\u003Ccodex_skill_adapter>\n## A. Skill Invocation\n- This skill is invoked by mentioning `$gsd-do`.\n- Treat all user text after `$gsd-do` as `{{GSD_ARGS}}`.\n- If no arguments are present, treat `{{GSD_ARGS}}` as empty.\n\n## B. AskUserQuestion → request_user_input Mapping\nGSD workflows use `AskUserQuestion` (Claude Code syntax). Translate to Codex `request_user_input`:\n\nParameter mapping:\n- `header` → `header`\n- `question` → `question`\n- Options formatted as `\"Label\" — description` → `{label: \"Label\", description: \"description\"}`\n- Generate `id` from header: lowercase, replace spaces with underscores\n\nBatched calls:\n- `AskUserQuestion([q1, q2])` → single `request_user_input` with multiple entries in `questions[]`\n\nMulti-select workaround:\n- Codex has no `multiSelect`. Use sequential single-selects, or present a numbered freeform list asking the user to enter comma-separated numbers.\n\nExecute mode fallback:\n- When `request_user_input` is rejected (Execute mode), present a plain-text numbered list and pick a reasonable default.\n\n## C. Task() → spawn_agent Mapping\nGSD workflows use `Task(...)` (Claude Code syntax). Translate to Codex collaboration tools:\n\nDirect mapping:\n- `Task(subagent_type=\"X\", prompt=\"Y\")` → `spawn_agent(agent_type=\"X\", message=\"Y\")`\n- `Task(model=\"...\")` → omit (Codex uses per-role config, not inline model selection)\n- `fork_context: false` by default — GSD agents load their own context via `\u003Cfiles_to_read>` blocks\n\nParallel fan-out:\n- Spawn multiple agents → collect agent IDs → `wait(ids)` for all to complete\n\nResult parsing:\n- Look for structured markers in agent output: `CHECKPOINT`, `PLAN COMPLETE`, `SUMMARY`, etc.\n- `close_agent(id)` after collecting results from each agent\n\u003C\u002Fcodex_skill_adapter>\n\n\u003Cobjective>\nAnalyze freeform natural language input and dispatch to the most appropriate GSD command.\n\nActs as a smart dispatcher — never does the work itself. Matches intent to the best GSD command using routing rules, confirms the match, then hands off.\n\nUse when you know what you want but don't know which `\u002Fgsd:*` command to run.\n\u003C\u002Fobjective>\n\n\u003Cexecution_context>\n@.\u002F.codex\u002Fget-shit-done\u002Fworkflows\u002Fdo.md\n@.\u002F.codex\u002Fget-shit-done\u002Freferences\u002Fui-brand.md\n\u003C\u002Fexecution_context>\n\n\u003Ccontext>\n{{GSD_ARGS}}\n\u003C\u002Fcontext>\n\n\u003Cprocess>\nExecute the do workflow from @.\u002F.codex\u002Fget-shit-done\u002Fworkflows\u002Fdo.md end-to-end.\nRoute user intent to the best GSD command and invoke it.\n\u003C\u002Fprocess>\n","\u003Ccodex_skill_adapter>\n## A. Skill Invocation\n- This skill is invoked by mentioning `$gsd-do`.\n- Treat all user text after `$gsd-do` as `{{GSD_ARGS}}`.\n- If no arguments are present, treat `{{GSD_ARGS}}` as empty.\n\n## B. AskUserQuestion → request_user_input Mapping\nGSD workflows use `AskUserQuestion` (Claude Code syntax). Translate to Codex `request_user_input`:\n\nParameter mapping:\n- `header` → `header`\n- `question` → `question`\n- Options formatted as `\"Label\" — description` → `{label: \"Label\", description: \"description\"}`\n- Generate `id` from header: lowercase, replace spaces with underscores\n\nBatched calls:\n- `AskUserQuestion([q1, q2])` → single `request_user_input` with multiple entries in `questions[]`\n\nMulti-select workaround:\n- Codex has no `multiSelect`. Use sequential single-selects, or present a numbered freeform list asking the user to enter comma-separated numbers.\n\nExecute mode fallback:\n- When `request_user_input` is rejected (Execute mode), present a plain-text numbered list and pick a reasonable default.\n\n## C. Task() → spawn_agent Mapping\nGSD workflows use `Task(...)` (Claude Code syntax). Translate to Codex collaboration tools:\n\nDirect mapping:\n- `Task(subagent_type=\"X\", prompt=\"Y\")` → `spawn_agent(agent_type=\"X\", message=\"Y\")`\n- `Task(model=\"...\")` → omit (Codex uses per-role config, not inline model selection)\n- `fork_context: false` by default — GSD agents load their own context via `\u003Cfiles_to_read>` blocks\n\nParallel fan-out:\n- Spawn multiple agents → collect agent IDs → `wait(ids)` for all to complete\n\nResult parsing:\n- Look for structured markers in agent output: `CHECKPOINT`, `PLAN COMPLETE`, `SUMMARY`, etc.\n- `close_agent(id)` after collecting results from each agent\n\u003C\u002Fcodex_skill_adapter>\n\n\u003Cobjective>\nAnalyze freeform natural language input and dispatch to the most appropriate GSD command.\n\nActs as a smart dispatcher — never does the work itself. Matches intent to the best GSD command using routing rules, confirms the match, then hands off.\n\nUse when you know what you want but don't know which `\u002Fgsd:*` command to run.\n\u003C\u002Fobjective>\n\n\u003Cexecution_context>\n@.\u002F.codex\u002Fget-shit-done\u002Fworkflows\u002Fdo.md\n@.\u002F.codex\u002Fget-shit-done\u002Freferences\u002Fui-brand.md\n\u003C\u002Fexecution_context>\n\n\u003Ccontext>\n{{GSD_ARGS}}\n\u003C\u002Fcontext>\n\n\u003Cprocess>\nExecute the do workflow from @.\u002F.codex\u002Fget-shit-done\u002Fworkflows\u002Fdo.md end-to-end.\nRoute user intent to the best GSD command and invoke it.\n\u003C\u002Fprocess>\n",{"name":5,"metadata":24,"description":7},{"short-description":7},"main","08c084f718b2b842cd53622ce0b1a1fb2888ccef","test\u002Fcast-fixtures\u002Fcodex-cli\u002Fregression\u002Fnunti-backend\u002F.codex\u002Fgsd-local-patches\u002Fskills\u002Fgsd-do",1,"https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai","2026-07-15 23:48:12",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add tamarillo-ai\u002Ftheta --skill gsd-do",{"tool":38,"command":39},"bunx","bunx skills add tamarillo-ai\u002Ftheta --skill gsd-do",{"tool":41,"command":42},"pnpm","pnpm dlx skills add tamarillo-ai\u002Ftheta --skill gsd-do","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcodex-cli\u002Fregression\u002Fnunti-backend\u002F.codex\u002Fgsd-local-patches\u002Fskills\u002Fgsd-do\u002FSKILL.md",true,[],[47,54,61,69,76,83],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":19},"01M74FCAJ0RRFRJRQES26329E7","deploy-app","Deploy the application to staging or production environments.","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcursor\u002Fskills\u002Fbasic\u002F.cursor\u002Fskills\u002Fdeploy-app\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M74FC8GPJGCS0KTGKS1CJZZS","deploy","Deploy the application to environments.","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcursor\u002Fcombined\u002Ffull-config\u002F.cursor\u002Fskills\u002Fdeploy\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":65,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M74FC5RT3VTNZEK1F7NX5380","building-native-ui","Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.","MIT","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcopilot\u002Fskills\u002Fwith-references\u002F.github\u002Fskills\u002Fbuilding-native-ui\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M74FC1ZGP5R44HPGWWSW6P3B","create-section","Use when creating a new section for the AI Workshop presentation. Guides through title slide setup, layout choices, and content gathering. Activates when user wants to add a new topic section to the slideshow.","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcopilot\u002Fskills\u002Fbasic\u002F.github\u002Fskills\u002Fcreate-section\u002FSKILL.md",[],[],{"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":19},"01M74FBZXSZ7GVP0HCGNR1BVNH","ship-checker","Run a full pre-ship review for this repo. Use when asked if a change is ready to deploy, publish, or ship.","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcopilot\u002Fcombined\u002Feverything\u002F.github\u002Fskills\u002Fship-checker\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M74FBY4N2E3ZERWBRM4S3DE6","lint-check","Run repository linters and report failures.","https:\u002F\u002Fgithub.com\u002Ftamarillo-ai\u002Ftheta\u002Fblob\u002Fmain\u002Ftest\u002Fcast-fixtures\u002Fcodex-cli\u002Fskills\u002Fagents-path\u002F.agents\u002Fskills\u002Flint-check\u002FSKILL.md",[],[]]