[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDJ4DJGZWRQ8XAV04S67AB":3,"skill-same:01M6CDJ4DJGZWRQ8XAV04S67AB":99},{"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":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6CDJ4DJGZWRQ8XAV04S67AB","cw-handoff",null,"Use when writing a Codewhale takeover prompt, continuation note, or end-of-session summary for another agent or a later session: a paste-ready handoff grounded in live state, with done\u002Fsuspected\u002Fblocked kept separate.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41175,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-handoff\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],"handoff","cw handoff","when","writing","continuation","for","paste","with","end","live","done","codewhale","later","ready","use","session","prompt","takeover","state","session summary","2026-11-10 10:12:30",false,"---\nname: cw-handoff\ndescription: \"Use when writing a Codewhale takeover prompt, continuation note, or end-of-session summary for another agent or a later session: a paste-ready handoff grounded in live state, with done\u002Fsuspected\u002Fblocked kept separate.\"\n---\n\n# cw-handoff\n\nA handoff is read by an agent with none of your context and every incentive to\nbelieve you. That makes an optimistic handoff worse than no handoff: it converts\nyour guesses into the next session's premises. Write it so the reader can\nre-derive the state instead of trusting the prose.\n\nStage 6 of the loop, and the one that makes the loop a loop: the next session\nstarts at [cw-orient](..\u002Fcw-orient\u002FSKILL.md) with what you leave here.\n\n## When to use\n\n- Ending a session with work in flight.\n- Asked for \"a prompt for another agent\", takeover instructions, a\n  continuation note, or a summary of current state for async work.\n- Handing work to a different model, a fleet worker, or a remote session.\n\n## Workflow\n\n1. **Write it as a prompt the next agent can paste directly.** Not a report\n   about the work — instructions for continuing it.\n\n2. **Open with the refresh block, not with your summary.** The first thing the\n   reader should do is verify you:\n   ```bash\n   cd \u003Crepo path>\n   git status --short --branch && git branch --show-current\n   git log --oneline --decorate -20\n   git log --oneline origin\u002Fmain..HEAD\n   .\u002Fscripts\u002Frelease\u002Fcheck-versions.sh\n   ```\n   Tell them to trust that output over anything below it.\n\n3. **Cover these, in whatever order fits; drop sections that are empty:**\n   - Repository path; it should be on `main`.\n   - The authority line: what they may do without asking. The default for\n     maintainers is that verified slices commit and push to `main`\n     (`AGENTS.md`). Tag, GitHub Release, publish, deploy, PR merge and\n     destructive cleanup need explicit approval. A task scoped local-only says\n     so.\n   - Durable files to read, ordered by importance: the scoped `AGENTS.md` for\n     the area, then the specific docs (`docs\u002FCACHE.md`,\n     `docs\u002FMOTION_CONTRACT.md`, `docs\u002FARCHITECTURE.md`, `crates\u002Ftui\u002FAGENTS.md`)\n     the task actually touches.\n   - Commits already landed, with SHAs.\n   - **Dirty-checkout caveats, naming uncommitted files explicitly**, and\n     whether a live writer is mid-edit on them. This is the single most useful line in most handoffs.\n   - The next slices, in priority order, each bounded the way\n     [cw-slice](..\u002Fcw-slice\u002FSKILL.md) bounds one.\n   - The verification gate for those slices — the smallest correct one from\n     [cw-gates](..\u002Fcw-gates\u002FSKILL.md), plus any known-flaky names.\n   - Open decisions that genuinely belong to Hunter.\n\n4. **Separate three states, and never blur them:** *done and verified* (with the\n   command output that proves it), *suspected* (a hypothesis, labeled), and\n   *blocked* (with what unblocks it). If you did not run it, it is not done.\n\n5. **Say what is unpushed and why.** A commit ahead of `origin\u002Fmain` is either\n   waiting on a check (name it) or blocked (name the blocker).\n\n6. **Record missing external receipts.** If the task was local-only, say which\n   evidence you could not gather (CI state, registry state, review threads)\n   rather than inferring it. A named gap is useful; a confident guess is not.\n\n   Before writing the handoff, run the record backstop and list anything it\n   shows as owed:\n   ```bash\n   git log --format='%h %s' \"$(git log -1 --format=%H -- CHANGELOG.md)\"..origin\u002Fmain | grep -E '^[0-9a-f]+ (feat|fix)'\n   python3 scripts\u002Fcheck-contributor-credit.py\n   ```\n\n## Red flags \u002F don't\n\n- Don't imply publication happened unless you verified registry, tag, or release\n  state live.\n- Don't hand off a narrative. Prefer concrete paths, commands, and SHAs.\n- Don't summarize away the dirt. Unnamed uncommitted files get destroyed.\n- Don't hand the next agent decisions you could have made. Reserve Hunter-facing\n  choices for product direction, irreversible actions, and visual judgments that\n  need eyes.\n- Don't copy a previous handoff's state forward. Re-derive it; that is what\n  step 2 is for.\n- Don't include secrets, tokens, or provider credentials in a handoff file.\n\n## Output\n\nA single paste-ready block with the default shape — refresh commands,\nauthority line, files to read, landed SHAs, named dirty files, prioritized\nnext slices, the verification gate, and the open decisions — with done \u002F\nsuspected \u002F blocked visibly separated. Compress when trivial, but never\ncompress away the state separation: that is what keeps guesses from\nbecoming the next session's premises.\n","# cw-handoff\n\nA handoff is read by an agent with none of your context and every incentive to\nbelieve you. That makes an optimistic handoff worse than no handoff: it converts\nyour guesses into the next session's premises. Write it so the reader can\nre-derive the state instead of trusting the prose.\n\nStage 6 of the loop, and the one that makes the loop a loop: the next session\nstarts at [cw-orient](..\u002Fcw-orient\u002FSKILL.md) with what you leave here.\n\n## When to use\n\n- Ending a session with work in flight.\n- Asked for \"a prompt for another agent\", takeover instructions, a\n  continuation note, or a summary of current state for async work.\n- Handing work to a different model, a fleet worker, or a remote session.\n\n## Workflow\n\n1. **Write it as a prompt the next agent can paste directly.** Not a report\n   about the work — instructions for continuing it.\n\n2. **Open with the refresh block, not with your summary.** The first thing the\n   reader should do is verify you:\n   ```bash\n   cd \u003Crepo path>\n   git status --short --branch && git branch --show-current\n   git log --oneline --decorate -20\n   git log --oneline origin\u002Fmain..HEAD\n   .\u002Fscripts\u002Frelease\u002Fcheck-versions.sh\n   ```\n   Tell them to trust that output over anything below it.\n\n3. **Cover these, in whatever order fits; drop sections that are empty:**\n   - Repository path; it should be on `main`.\n   - The authority line: what they may do without asking. The default for\n     maintainers is that verified slices commit and push to `main`\n     (`AGENTS.md`). Tag, GitHub Release, publish, deploy, PR merge and\n     destructive cleanup need explicit approval. A task scoped local-only says\n     so.\n   - Durable files to read, ordered by importance: the scoped `AGENTS.md` for\n     the area, then the specific docs (`docs\u002FCACHE.md`,\n     `docs\u002FMOTION_CONTRACT.md`, `docs\u002FARCHITECTURE.md`, `crates\u002Ftui\u002FAGENTS.md`)\n     the task actually touches.\n   - Commits already landed, with SHAs.\n   - **Dirty-checkout caveats, naming uncommitted files explicitly**, and\n     whether a live writer is mid-edit on them. This is the single most useful line in most handoffs.\n   - The next slices, in priority order, each bounded the way\n     [cw-slice](..\u002Fcw-slice\u002FSKILL.md) bounds one.\n   - The verification gate for those slices — the smallest correct one from\n     [cw-gates](..\u002Fcw-gates\u002FSKILL.md), plus any known-flaky names.\n   - Open decisions that genuinely belong to Hunter.\n\n4. **Separate three states, and never blur them:** *done and verified* (with the\n   command output that proves it), *suspected* (a hypothesis, labeled), and\n   *blocked* (with what unblocks it). If you did not run it, it is not done.\n\n5. **Say what is unpushed and why.** A commit ahead of `origin\u002Fmain` is either\n   waiting on a check (name it) or blocked (name the blocker).\n\n6. **Record missing external receipts.** If the task was local-only, say which\n   evidence you could not gather (CI state, registry state, review threads)\n   rather than inferring it. A named gap is useful; a confident guess is not.\n\n   Before writing the handoff, run the record backstop and list anything it\n   shows as owed:\n   ```bash\n   git log --format='%h %s' \"$(git log -1 --format=%H -- CHANGELOG.md)\"..origin\u002Fmain | grep -E '^[0-9a-f]+ (feat|fix)'\n   python3 scripts\u002Fcheck-contributor-credit.py\n   ```\n\n## Red flags \u002F don't\n\n- Don't imply publication happened unless you verified registry, tag, or release\n  state live.\n- Don't hand off a narrative. Prefer concrete paths, commands, and SHAs.\n- Don't summarize away the dirt. Unnamed uncommitted files get destroyed.\n- Don't hand the next agent decisions you could have made. Reserve Hunter-facing\n  choices for product direction, irreversible actions, and visual judgments that\n  need eyes.\n- Don't copy a previous handoff's state forward. Re-derive it; that is what\n  step 2 is for.\n- Don't include secrets, tokens, or provider credentials in a handoff file.\n\n## Output\n\nA single paste-ready block with the default shape — refresh commands,\nauthority line, files to read, landed SHAs, named dirty files, prioritized\nnext slices, the verification gate, and the open decisions — with done \u002F\nsuspected \u002F blocked visibly separated. Compress when trivial, but never\ncompress away the state separation: that is what keeps guesses from\nbecoming the next session's premises.\n",{"name":5,"description":7},"main","654aa776d6bcb98292d4c7c5841fed871e1ba5bd","docs\u002Fskills\u002Fcw-handoff",3570,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-11 08:59:54",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add codewhale-hq\u002FCodewhale --skill cw-handoff",{"tool":65,"command":66},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill cw-handoff",{"tool":68,"command":69},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill cw-handoff","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-handoff\u002FSKILL.md",true,[73,79,83,87,91,95],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"gate-contract.json","REFERENCE","参考文档",7619,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Fgate-contract.json",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fartifact-context.md",2370,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Freferences\u002Fartifact-context.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fdebate-round.md",1729,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Freferences\u002Fdebate-round.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Finput-acquisition.md",4511,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Freferences\u002Finput-acquisition.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fsynthesis-and-capture.md",1049,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Freferences\u002Fsynthesis-and-capture.md",{"path":96,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fworktree-preflight.md",3413,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fbrainstorm\u002Freferences\u002Fworktree-preflight.md",[100,126,149,169,182,189],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":44},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[107,108,109,110,111,31,112,113,35,114,115,116,117,118,119,120,121,122,123,124,125],"find","gh find prs","gh","prs","produce","read-only","matrix","queue","issue","read","check","code","only","open","survey","pr","evidence","fetch","coverage",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":44},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[132],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[134,109,135,136,115,137,138,139,26,140,141,142,143,35,144,145,146,31,147,148,38],"file issue","file","gh file issue","milestone","idea","filing","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":44},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[155],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[157,158,159,109,160,161,162,163,31,26,164,165,35,166,167,119,168],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":176,"publishedAt":44},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[175],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[177,109,159,178,38,146,137,179,180,181],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":183,"name":184,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":44},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[187],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[184],{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":44},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[195],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[197,198,199,200,201,202,203,29,204,35,205,166,107,206,118,38,27,207,123],"slice","cw slice","start","bar","you","Existing","upgrade","feature","refactor","change","fix"]