[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RNXG0R2WCEGX4JDPPJC76":3,"skill-same:01M71RNXG0R2WCEGX4JDPPJC76":51},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":21,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":34,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M71RNXG0R2WCEGX4JDPPJC76","duty-image",null,"gongiskhan\u002Fagent-garrison","gongiskhan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1997392?v=4","01M71RKMFR53TKXE308C22QTNZ","01M71RKMJA57KZHNDCBNKTWZRR",1,"MIT","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fduty-image\u002F.apm\u002Fskills\u002Fduty-image\u002FSKILL.md",[16],{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[22,23],"image","duty image","2026-11-10 13:02:02",false,"---\nname: duty-image\ndescription: Produce an image from a text prompt. The image-production duty — no image path existed in the composition before, so this is the simplest HONEST working path: invoke an image-capable model the session can already reach (the gemini runtime, or an image MCP tool) with the prompt and save the result to the artifact store. Use when a change or task needs a generated image (a diagram, an illustration, a mockup asset) from a description.\n---\n\n# Image duty\n\nFulfil the **image** duty: turn a text prompt into an image file and hand back its\npath. Keep this simple and honest — it is a documented working path, not an\nautomated generation service.\n\n## The path\n\n1. **Pick an image-capable model the session can reach.**\n   - **Default: the gemini runtime.** The `gemini` CLI ships with the\n     gemini-runtime fitting. Use an image-generation model (e.g. an Imagen model) —\n     the general text model (`gemini-2.5-flash`) does not generate images, so name\n     an image model explicitly.\n   - **Alternative: an image MCP tool.** If the running composition exposes an\n     image-generation MCP tool, call that instead.\n2. **Send the prompt.** Pass the user's description through to the chosen model.\n   Example shape (adjust the model\u002Fflags to the installed CLI version):\n\n   ```\n   gemini generate-image --model \u003Cimage-model> \\\n     --prompt \"\u003Cthe image description>\" \\\n     --out ~\u002F.garrison\u002Ffiles\u002F\u003Cslug>.png\n   ```\n\n3. **Save to the artifact store.** Write the image under `~\u002F.garrison\u002Ffiles`\n   with a descriptive name. The user opens it in Projects, under Garrison files.\n   Return the saved path as the duty's output.\n\n## Honesty\n\n- This duty depends on an image-capable model being configured and reachable. If\n  none is (only text models are available), **say so plainly and stop** — do not\n  fabricate a file or claim an image was produced.\n- Do not build a heavy generation pipeline here. One prompt in, one saved image\n  out, through whatever image-capable model the composition already provides.\n","# Image duty\n\nFulfil the **image** duty: turn a text prompt into an image file and hand back its\npath. Keep this simple and honest — it is a documented working path, not an\nautomated generation service.\n\n## The path\n\n1. **Pick an image-capable model the session can reach.**\n   - **Default: the gemini runtime.** The `gemini` CLI ships with the\n     gemini-runtime fitting. Use an image-generation model (e.g. an Imagen model) —\n     the general text model (`gemini-2.5-flash`) does not generate images, so name\n     an image model explicitly.\n   - **Alternative: an image MCP tool.** If the running composition exposes an\n     image-generation MCP tool, call that instead.\n2. **Send the prompt.** Pass the user's description through to the chosen model.\n   Example shape (adjust the model\u002Fflags to the installed CLI version):\n\n   ```\n   gemini generate-image --model \u003Cimage-model> \\\n     --prompt \"\u003Cthe image description>\" \\\n     --out ~\u002F.garrison\u002Ffiles\u002F\u003Cslug>.png\n   ```\n\n3. **Save to the artifact store.** Write the image under `~\u002F.garrison\u002Ffiles`\n   with a descriptive name. The user opens it in Projects, under Garrison files.\n   Return the saved path as the duty's output.\n\n## Honesty\n\n- This duty depends on an image-capable model being configured and reachable. If\n  none is (only text models are available), **say so plainly and stop** — do not\n  fabricate a file or claim an image was produced.\n- Do not build a heavy generation pipeline here. One prompt in, one saved image\n  out, through whatever image-capable model the composition already provides.\n",{},"main","31458d7e0e08a7b3494c27bf2b912ed41c87a138","fittings\u002Fseed\u002Fduty-image\u002F.apm\u002Fskills\u002Fduty-image",0,"https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison","https:\u002F\u002Fgongiskhan.github.io\u002Fagent-garrison\u002F","https:\u002F\u002Fgithub.com\u002Fgongiskhan","2026-11-07 05:27:23",{"source":7,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add gongiskhan\u002Fagent-garrison --skill duty-image",{"tool":43,"command":44},"bunx","bunx skills add gongiskhan\u002Fagent-garrison --skill duty-image",{"tool":46,"command":47},"pnpm","pnpm dlx skills add gongiskhan\u002Fagent-garrison --skill duty-image","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fduty-image\u002F.apm\u002Fskills\u002Fduty-image\u002FSKILL.md",true,[],[52,64,74,85,97,124],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":24},"01M71RTFA0HD83YBE1TE7DCE6B","pinned-helper","An owned skill the human has pinned so the Improver must not touch it.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fpinned-helper\u002FSKILL.md",[],[59,60,61,62,63],"pinned helper","helper","human","touch","it",{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":24},"01M71RTDKBG0WQHPHKFZKFWDHF","legacy-helper","A rarely used helper kept around from an earlier workflow.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Flegacy-helper\u002FSKILL.md",[],[71,60,72,73],"Legacy","legacy helper","workflow",{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":24},"01M71RTCC6ZVVJ9MHHESXPHWA6","human-notes","A human-authored skill not deployed by APM (loose, not in the lock).","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fhuman-notes\u002FSKILL.md",[],[81,61,82,83,84],"notes","human notes","lock","apm",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":24},"01M71RTB83ZP6VK6XH19Z93FAC","garrison-helper","Helps compose and station Garrison Fittings into Faculty role slots.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fgarrison-helper\u002FSKILL.md",[],[60,92,93,94,95,96],"garrison","garrison helper","slots","role","compose",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":104,"publishedAt":24},"01M71RT6MBGJC4QQZBGHF4H1M8","walkthrough","Record a short, narrated, captioned video walkthrough that proves a finished coding task and shows how it behaves, then self-verify the video via vision on extracted frames and publish it as one scrubbable Tailscale link. Use after completing a change\u002Ffix\u002Ffeature on a web project (Next.js\u002FReact etc.) when the user wants visual proof of work, a demo of a user flow, or to avoid manually retesting and watching a long raw screen recording. Triggers on requests like \"record a walkthrough\", \"show me it working\", \"make a demo video of this\", \"prove the feature\", or finishing a UI\u002Froute\u002Fform\u002FAPI change worth demonstrating. Not for walking through a full from-scratch project build.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fwalkthrough\u002F.apm\u002Fskills\u002Fwalkthrough\u002FSKILL.md",[103],{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},[99,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123],"when","project","project build","api","react","change","demo video","publish","recording","Video","show me","work","short","fix","show","route","me","next","self",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":24},"01M71RT54T0SQS42XEP5FVQ28K","Trello","Manage tasks via Trello REST API.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Ftrello\u002F.apm\u002Fskills\u002Ftrello\u002FSKILL.md",[],[131,132,133,108,134,135,136],"trello","tasks","REST","manage","rest api","via"]