[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P7G86JMHA9JBXVQT38YAS4":3,"skill-same:01M6P7G86JMHA9JBXVQT38YAS4":117},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6P7G86JMHA9JBXVQT38YAS4","delegate-to-cli",null,"Delegates bounded subtasks (text-in\u002Ftext-out, large-token, no harness MCPs needed)\nto a local CLI agent (claude\u002Fcodex\u002Fgemini) via scripts\u002Fdelegate.sh. Use when the\ntask is large enough to warrant a subprocess but doesn't need the harness's own\nprimitives. Returns the subagent's final text plus structured error info.","Phoenixrr2113\u002Fagent-harness","Phoenixrr2113","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F32098841?v=4","01M6P7CRMBR55TFZBTAFT1WK4Y","Randy Wilson","01M6P7CRRWGEZFSH6JW1VGS8Q0",1,"MIT","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"delegate to cli","delegate","cli","use","delegates","mcps","error","via","local","human","info","task","ask","text","subagent","harness","delegation","research","codex","gemini","2026-11-10 10:12:30",false,"---\nname: delegate-to-cli\ndescription: |\n  Delegates bounded subtasks (text-in\u002Ftext-out, large-token, no harness MCPs needed)\n  to a local CLI agent (claude\u002Fcodex\u002Fgemini) via scripts\u002Fdelegate.sh. Use when the\n  task is large enough to warrant a subprocess but doesn't need the harness's own\n  primitives. Returns the subagent's final text plus structured error info.\nmetadata:\n  harness-tags: skill,delegation,cli\n  harness-status: active\n  harness-author: human\n  harness-related: ask-claude,ask-codex,ask-gemini,research\n---\n# delegate-to-cli\n\n## When to use\n\nReach for this skill when **all four** are true:\n\n1. **Bounded** — clear start, clear end, output is text or a verifiable file change\n2. **Text-in\u002Ftext-out** — no need for tool-call structure back to the parent\n3. **Large in tokens** — would burn the parent's context if done inline\n4. **Doesn't need this harness's own primitives or MCP servers**\n\n## Available scripts\n\n- `scripts\u002Fdelegate.sh \u003Ccli> \u003Cmode> \u003Cprompt>` — Run a bounded subtask via a local CLI agent and return its result. CLI: `claude` | `codex` | `gemini`. Mode: `read` | `edit`.\n- `scripts\u002Fverify-cli.sh \u003Ccli>` — Check the CLI binary is on PATH and meets the minimum version. Run once if delegate fails with `CLI_NOT_FOUND` or `CLI_VERSION_TOO_OLD`.\n\n## Workflow\n\n1. Verify the CLI is available (first use): `scripts\u002Fverify-cli.sh claude`\n2. Delegate: `scripts\u002Fdelegate.sh claude read \"Summarize the README\"`\n3. Read the JSON result. On `status: ok`, the subagent's output is in `result.output`.\n4. On `status: error`, follow `next_steps`. Common cases listed in `references\u002Ffailure-modes.md`.\n\n## Gotchas\n\n- **Permission mode is the #1 source of silent hangs.** `scripts\u002Fdelegate.sh` requires `\u003Cmode>` to be `read` (analysis-only) or `edit` (file modification). The script maps these to the correct CLI permission flags. If you bypass the script and call the CLI directly without the right flag for an edit task, the subprocess hangs forever — see `references\u002Fpermission-flags.md`.\n- **CLI invocation may fall outside the CLI's subscription TOS.** The user opted in during `harness init` if delegation is enabled.\n- **Do not fall back silently on CLI_NOT_FOUND.** Tell the user what is missing so they can install it.\n\n## Failure modes\n\nIf `scripts\u002Fdelegate.sh` returns `status: error`, read `error.code`:\n\n- `CLI_NOT_FOUND` — binary missing; tell the user to install it.\n- `CLI_VERSION_TOO_OLD` — see `references\u002Ffailure-modes.md` for minimum versions and upgrade paths.\n- `INVALID_INPUT` — bad `\u003Ccli>` or `\u003Cmode>` argument; re-invoke with correct values.\n- `PERMISSION_FLAG_MISSING` — subprocess hung; re-invoke with `edit` mode instead of `read`.\n- `RATE_LIMITED` — provider returned 429; back off and retry after a delay.\n- `SUBPROCESS_TIMEOUT` — run exceeded the wall-clock limit; increase or split the task.\n- `SUBPROCESS_FAILED` — non-zero exit not matching the above; check `error.evidence` for raw output.\n\nFor detailed recovery hints on each code, load `references\u002Ffailure-modes.md`.\n","# delegate-to-cli\n\n## When to use\n\nReach for this skill when **all four** are true:\n\n1. **Bounded** — clear start, clear end, output is text or a verifiable file change\n2. **Text-in\u002Ftext-out** — no need for tool-call structure back to the parent\n3. **Large in tokens** — would burn the parent's context if done inline\n4. **Doesn't need this harness's own primitives or MCP servers**\n\n## Available scripts\n\n- `scripts\u002Fdelegate.sh \u003Ccli> \u003Cmode> \u003Cprompt>` — Run a bounded subtask via a local CLI agent and return its result. CLI: `claude` | `codex` | `gemini`. Mode: `read` | `edit`.\n- `scripts\u002Fverify-cli.sh \u003Ccli>` — Check the CLI binary is on PATH and meets the minimum version. Run once if delegate fails with `CLI_NOT_FOUND` or `CLI_VERSION_TOO_OLD`.\n\n## Workflow\n\n1. Verify the CLI is available (first use): `scripts\u002Fverify-cli.sh claude`\n2. Delegate: `scripts\u002Fdelegate.sh claude read \"Summarize the README\"`\n3. Read the JSON result. On `status: ok`, the subagent's output is in `result.output`.\n4. On `status: error`, follow `next_steps`. Common cases listed in `references\u002Ffailure-modes.md`.\n\n## Gotchas\n\n- **Permission mode is the #1 source of silent hangs.** `scripts\u002Fdelegate.sh` requires `\u003Cmode>` to be `read` (analysis-only) or `edit` (file modification). The script maps these to the correct CLI permission flags. If you bypass the script and call the CLI directly without the right flag for an edit task, the subprocess hangs forever — see `references\u002Fpermission-flags.md`.\n- **CLI invocation may fall outside the CLI's subscription TOS.** The user opted in during `harness init` if delegation is enabled.\n- **Do not fall back silently on CLI_NOT_FOUND.** Tell the user what is missing so they can install it.\n\n## Failure modes\n\nIf `scripts\u002Fdelegate.sh` returns `status: error`, read `error.code`:\n\n- `CLI_NOT_FOUND` — binary missing; tell the user to install it.\n- `CLI_VERSION_TOO_OLD` — see `references\u002Ffailure-modes.md` for minimum versions and upgrade paths.\n- `INVALID_INPUT` — bad `\u003Ccli>` or `\u003Cmode>` argument; re-invoke with correct values.\n- `PERMISSION_FLAG_MISSING` — subprocess hung; re-invoke with `edit` mode instead of `read`.\n- `RATE_LIMITED` — provider returned 429; back off and retry after a delay.\n- `SUBPROCESS_TIMEOUT` — run exceeded the wall-clock limit; increase or split the task.\n- `SUBPROCESS_FAILED` — non-zero exit not matching the above; check `error.evidence` for raw output.\n\nFor detailed recovery hints on each code, load `references\u002Ffailure-modes.md`.\n",{"name":5,"metadata":49,"description":53},{"harness-tags":50,"harness-author":33,"harness-status":51,"harness-related":52},"skill,delegation,cli","active","ask-claude,ask-codex,ask-gemini,research","Delegates bounded subtasks (text-in\u002Ftext-out, large-token, no harness MCPs needed)\nto a local CLI agent (claude\u002Fcodex\u002Fgemini) via scripts\u002Fdelegate.sh. Use when the\ntask is large enough to warrant a subprocess but doesn't need the harness's own\nprimitives. Returns the subagent's final text plus structured error info.\n","main","0f67103affd30a3c778874b890dbd5801cdbd94f","defaults\u002Fskills\u002Fdelegate-to-cli",2,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@agntk\u002Fagent-harness","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113","Full-stack engineer building AI agents, RAG pipelines, and knowledge graphs. \r\nTypeScript · Node.js · Vercel AI SDK · 8+ years shipping production systems.","2026-04-30 21:56:42",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add Phoenixrr2113\u002Fagent-harness --skill delegate-to-cli",{"tool":69,"command":70},"bunx","bunx skills add Phoenixrr2113\u002Fagent-harness --skill delegate-to-cli",{"tool":72,"command":73},"pnpm","pnpm dlx skills add Phoenixrr2113\u002Fagent-harness --skill delegate-to-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002FSKILL.md",true,[77,83,87,91,97,101,105,109,113],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"evals\u002Fevals.json","REFERENCE","参考文档",1434,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fevals\u002Fevals.json",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"evals\u002Ffiles\u002Fdesign.md",451,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fevals\u002Ffiles\u002Fdesign.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"evals\u002Ffiles\u002FREADME.md",409,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fevals\u002Ffiles\u002FREADME.md",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"evals\u002Ffiles\u002Fsample.py","SCRIPT","脚本",378,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fevals\u002Ffiles\u002Fsample.py",{"path":98,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":99,"sourceHtmlUrl":100},"evals\u002Ftriggers.json",3223,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fevals\u002Ftriggers.json",{"path":102,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Ffailure-modes.md",6077,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Freferences\u002Ffailure-modes.md",{"path":106,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fpermission-flags.md",3645,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Freferences\u002Fpermission-flags.md",{"path":110,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fdelegate.sh",12122,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fscripts\u002Fdelegate.sh",{"path":114,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Fverify-cli.sh",5920,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fdelegate-to-cli\u002Fscripts\u002Fverify-cli.sh",[118,128,148,174,197,216],{"skillNo":119,"name":41,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":44},"01M6P7MR06WFMWS1BZYK4BNR6W","Conduct research.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fold-harness-7-primitives\u002Fskills\u002Fresearch\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[41,127],"conduct",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":135,"publishedAt":44},"01M6P7M15ZPZ79PT5S8ZQABGGB","{{NAME=null}=null}","Briefly describe what this skill does AND when to use it. Use imperative\nphrasing (\"Use this skill when...\"). Aim for 80-500 chars. Include keywords\nthe model can pattern-match against the user's prompt.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fskill-bundle\u002FSKILL.md",[134],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[136,137,138,139,140,141,142,143,33,144,145,27,146,147],"name","{{name=null}=null}","user","when to use","for","can","match","it","pattern","draft","prompt","model",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":44},"01M6P7KTVE8E9A9M5116XQ80Z2","working-in-a-git-repo","Operating manual for dev work: worktree discipline, build\u002Ftest\u002Flint commands, file ownership zones, commit style, and a verification checklist before reporting done. Use when starting any feature\u002Ffix work in this repo.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Fworking-in-a-git-repo\u002FSKILL.md",[154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[156,157,158,159,160,161,162,163,164,165,166,167,168,140,169,170,171,172,27,173],"repo","git","working in a git repo","commit","Bash","file","verification","dev","lint","test","workflow","done","work","manual","operating","style","feature","fix",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":184,"publishedAt":44},"01M6P7K87FD7EHXJJ81F9SFC7J","test-runner","Runs the project's test suite (or a targeted subset), parses the output, and reports pass\u002Ffail with failing-test details. Use when you need to know test status; call with the test command to run, or leave blank for the project default.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Ftest-runner\u002FSKILL.md",[180,183],{"categoryNo":181,"categoryName":182,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[165,185,186,187,188,189,140,190,51,33,191,192,193,27,194,38,160,163,195,196],"test runner","runner","output","with","you","call","project","test suite","reports","command","testing","default",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":204,"publishedAt":44},"01M6P7K3QMV9Z7DRA720HBYTS9","reviewer","Reviews a diff or change set for bugs, security issues, test gaps, and style. Use when evaluating a code change, reviewing a pull request, or running a structured review pass before merge.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Freviewer\u002FSKILL.md",[203],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[199,205,206,207,165,208,163,140,209,210,211,171,33,212,27,38,160,213,214,215],"code","pull request","change","review","gaps","bugs","reviews","diff","SET","pull","issues",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":223,"publishedAt":44},"01M6P7JZA19PYZE9XKEWXMQBZ6","fix-failing-tests","Seven-step flow for diagnosing and fixing failing tests. Use when the user asks to fix failing tests, green the suite, or says 'tests are red' — works through reproduce → read → root-cause → propose → apply → verify → commit.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Ffix-failing-tests\u002FSKILL.md",[222],{"categoryNo":181,"categoryName":182,"taxonomyType":21,"taxonomyTypeDesc":22},[224,225,173,176,226,140,33,51,227,186,228,27,156,199,160,229,163,159,165,195],"fix failing tests","tests","apply","green","root-cause","verify"]