[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754PDHK7QMC5B2PHJK7DCQB":3,"skill-same:01M754PDHK7QMC5B2PHJK7DCQB":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M754PDHK7QMC5B2PHJK7DCQB","codex-branch-finisher",null,"Use when implementation is complete, all tests pass, and you need to decide how to integrate the work — guides completion of development work by presenting structured options for merge, PR, or cleanup","Bang-isme\u002FAgencyCLI","Bang-isme","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F179383529?v=4","01M754NDM8K05SAX2V31R63WEE","01M754NDMV48ECFT4HY6X2CKQ0",2,"MIT","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fcodex-branch-finisher\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: codex-branch-finisher\ndescription: Use when implementation is complete, all tests pass, and you need to decide how to integrate the work — guides completion of development work by presenting structured options for merge, PR, or cleanup\nload_priority: on-demand\n---\n\n## TL;DR\nVerify tests → Present 4 options (merge, PR, keep, discard) → Execute choice → Clean up worktree. Never leave work in limbo.\n\n# Finishing a Development Branch\n\n## Activation\n\n1. Activate on `$codex-branch-finisher`, `$finish`, or `$finish-branch`.\n2. Activate when all tasks in a plan are complete.\n3. Activate after `codex-subagent-execution` completes all tasks.\n4. Activate after `codex-execution-quality-gate` passes.\n5. Activate after `codex-workflow-autopilot` reaches `ship` mode.\n\n**Announce at start:** \"I'm using codex-branch-finisher to complete this work.\"\n\n## The Iron Law\n\n```\nNO COMPLETION WITHOUT TEST VERIFICATION\nNO OPEN-ENDED \"WHAT NEXT?\" — PRESENT STRUCTURED OPTIONS\n```\n\n## The Process\n\n### Step 1: Verify Tests\n\n**Before presenting options, verify tests pass:**\n\n```bash\n# Bash\nnpm test  # or: cargo test \u002F pytest \u002F go test .\u002F...\n```\n\n```powershell\n# PowerShell\nnpm test  # or equivalent for your stack\n```\n\n**If tests fail:**\n```\nTests failing (\u003CN> failures). Must fix before completing:\n\n[Show failures]\n\nCannot proceed with merge\u002FPR until tests pass.\n```\n\nSTOP. Do not proceed to Step 2.\n\n**If tests pass:** Continue to Step 2.\n\n### Step 2: Determine Base Branch\n\n```bash\ngit merge-base HEAD main 2>\u002Fdev\u002Fnull || git merge-base HEAD master 2>\u002Fdev\u002Fnull\n```\n\n```powershell\ngit merge-base HEAD main 2>$null; if ($LASTEXITCODE -ne 0) { git merge-base HEAD master 2>$null }\n```\n\nOr ask: \"This branch split from main — is that correct?\"\n\n### Step 3: Present Options\n\nPresent **exactly these 4 options** — no more, no less, no open-ended questions:\n\n```\nImplementation complete. What would you like to do?\n\n1. Merge back to \u003Cbase-branch> locally\n2. Push and create a Pull Request\n3. Keep the branch as-is (I'll handle it later)\n4. Discard this work\n\nWhich option?\n```\n\n**Don't add explanation** — keep options concise.\n\n### Step 4: Execute Choice\n\n#### Option 1: Merge Locally\n\n```bash\ngit checkout \u003Cbase-branch>\ngit pull\ngit merge \u003Cfeature-branch>\n\u003Ctest command>                    # Verify on merged result\ngit branch -d \u003Cfeature-branch>   # Only after merge success\n```\n\nThen: Cleanup worktree (Step 5).\n\n#### Option 2: Push and Create PR\n\n```bash\ngit push -u origin \u003Cfeature-branch>\ngh pr create --title \"\u003Ctitle>\" --body \"## Summary\n- \u003Cbullet 1>\n- \u003Cbullet 2>\n\n## Test Plan\n- [ ] All tests pass\n- [ ] Manual verification complete\"\n```\n\n```powershell\ngit push -u origin \u003Cfeature-branch>\ngh pr create --title \"\u003Ctitle>\" --body \"## Summary`n- \u003Cbullet 1>`n`n## Test Plan`n- [ ] All tests pass\"\n```\n\nThen: Cleanup worktree (Step 5).\n\n#### Option 3: Keep As-Is\n\nReport: \"Keeping branch `\u003Cname>`. Worktree preserved at `\u003Cpath>`.\"\n\n**Don't cleanup worktree.**\n\n#### Option 4: Discard\n\n**Confirm first:**\n```\nThis will permanently delete:\n- Branch \u003Cname>\n- All commits: \u003Ccommit-list>\n- Worktree at \u003Cpath>\n\nType 'discard' to confirm.\n```\n\nWait for **exact confirmation**. Then:\n\n```bash\ngit checkout \u003Cbase-branch>\ngit branch -D \u003Cfeature-branch>\n```\n\nThen: Cleanup worktree (Step 5).\n\n### Step 5: Cleanup Worktree\n\n**For Options 1, 2, 4:**\n\nCheck if in worktree:\n```bash\ngit worktree list | grep $(git branch --show-current)\n```\n\n```powershell\ngit worktree list | Select-String (git branch --show-current)\n```\n\nIf yes:\n```bash\ngit worktree remove \u003Cworktree-path>\n```\n\n**For Option 3:** Keep worktree.\n\n## Quick Reference\n\n| Option | Merge | Push | Keep Worktree | Cleanup Branch |\n|--------|-------|------|---------------|----------------|\n| 1. Merge locally | ✓ | — | — | ✓ |\n| 2. Create PR | — | ✓ | ✓ | — |\n| 3. Keep as-is | — | — | ✓ | — |\n| 4. Discard | — | — | — | ✓ (force) |\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---------|-----|\n| Skipping test verification | Always verify tests before offering options |\n| Open-ended \"What should I do?\" | Present exactly 4 structured options |\n| Auto worktree cleanup | Only cleanup for Options 1 and 4 |\n| No confirmation for discard | Require typed \"discard\" confirmation |\n| Force-push without explicit request | Never force-push unless user explicitly asks |\n\n## Integration\n\n| Called By | When |\n| --- | --- |\n| `codex-subagent-execution` | After all tasks complete |\n| `codex-workflow-autopilot` | After `ship` mode completes |\n| `codex-execution-quality-gate` | After gate passes |\n| Direct invocation | `$finish` or `$finish-branch` |\n\n| Pairs With | Purpose |\n| --- | --- |\n| `codex-git-worktrees` | Cleans up worktree created by that skill |\n| `codex-verification-discipline` | Tests must PASS before presenting options |\n\n## Script Invocation Discipline\n\n1. When this workflow calls helper scripts from other skills, run `--help` first.\n2. Treat helper scripts as black-box tools and execute by contract before reading source.\n3. Read script source only when customization or bug-fixing is required.\n","## TL;DR\nVerify tests → Present 4 options (merge, PR, keep, discard) → Execute choice → Clean up worktree. Never leave work in limbo.\n\n# Finishing a Development Branch\n\n## Activation\n\n1. Activate on `$codex-branch-finisher`, `$finish`, or `$finish-branch`.\n2. Activate when all tasks in a plan are complete.\n3. Activate after `codex-subagent-execution` completes all tasks.\n4. Activate after `codex-execution-quality-gate` passes.\n5. Activate after `codex-workflow-autopilot` reaches `ship` mode.\n\n**Announce at start:** \"I'm using codex-branch-finisher to complete this work.\"\n\n## The Iron Law\n\n```\nNO COMPLETION WITHOUT TEST VERIFICATION\nNO OPEN-ENDED \"WHAT NEXT?\" — PRESENT STRUCTURED OPTIONS\n```\n\n## The Process\n\n### Step 1: Verify Tests\n\n**Before presenting options, verify tests pass:**\n\n```bash\n# Bash\nnpm test  # or: cargo test \u002F pytest \u002F go test .\u002F...\n```\n\n```powershell\n# PowerShell\nnpm test  # or equivalent for your stack\n```\n\n**If tests fail:**\n```\nTests failing (\u003CN> failures). Must fix before completing:\n\n[Show failures]\n\nCannot proceed with merge\u002FPR until tests pass.\n```\n\nSTOP. Do not proceed to Step 2.\n\n**If tests pass:** Continue to Step 2.\n\n### Step 2: Determine Base Branch\n\n```bash\ngit merge-base HEAD main 2>\u002Fdev\u002Fnull || git merge-base HEAD master 2>\u002Fdev\u002Fnull\n```\n\n```powershell\ngit merge-base HEAD main 2>$null; if ($LASTEXITCODE -ne 0) { git merge-base HEAD master 2>$null }\n```\n\nOr ask: \"This branch split from main — is that correct?\"\n\n### Step 3: Present Options\n\nPresent **exactly these 4 options** — no more, no less, no open-ended questions:\n\n```\nImplementation complete. What would you like to do?\n\n1. Merge back to \u003Cbase-branch> locally\n2. Push and create a Pull Request\n3. Keep the branch as-is (I'll handle it later)\n4. Discard this work\n\nWhich option?\n```\n\n**Don't add explanation** — keep options concise.\n\n### Step 4: Execute Choice\n\n#### Option 1: Merge Locally\n\n```bash\ngit checkout \u003Cbase-branch>\ngit pull\ngit merge \u003Cfeature-branch>\n\u003Ctest command>                    # Verify on merged result\ngit branch -d \u003Cfeature-branch>   # Only after merge success\n```\n\nThen: Cleanup worktree (Step 5).\n\n#### Option 2: Push and Create PR\n\n```bash\ngit push -u origin \u003Cfeature-branch>\ngh pr create --title \"\u003Ctitle>\" --body \"## Summary\n- \u003Cbullet 1>\n- \u003Cbullet 2>\n\n## Test Plan\n- [ ] All tests pass\n- [ ] Manual verification complete\"\n```\n\n```powershell\ngit push -u origin \u003Cfeature-branch>\ngh pr create --title \"\u003Ctitle>\" --body \"## Summary`n- \u003Cbullet 1>`n`n## Test Plan`n- [ ] All tests pass\"\n```\n\nThen: Cleanup worktree (Step 5).\n\n#### Option 3: Keep As-Is\n\nReport: \"Keeping branch `\u003Cname>`. Worktree preserved at `\u003Cpath>`.\"\n\n**Don't cleanup worktree.**\n\n#### Option 4: Discard\n\n**Confirm first:**\n```\nThis will permanently delete:\n- Branch \u003Cname>\n- All commits: \u003Ccommit-list>\n- Worktree at \u003Cpath>\n\nType 'discard' to confirm.\n```\n\nWait for **exact confirmation**. Then:\n\n```bash\ngit checkout \u003Cbase-branch>\ngit branch -D \u003Cfeature-branch>\n```\n\nThen: Cleanup worktree (Step 5).\n\n### Step 5: Cleanup Worktree\n\n**For Options 1, 2, 4:**\n\nCheck if in worktree:\n```bash\ngit worktree list | grep $(git branch --show-current)\n```\n\n```powershell\ngit worktree list | Select-String (git branch --show-current)\n```\n\nIf yes:\n```bash\ngit worktree remove \u003Cworktree-path>\n```\n\n**For Option 3:** Keep worktree.\n\n## Quick Reference\n\n| Option | Merge | Push | Keep Worktree | Cleanup Branch |\n|--------|-------|------|---------------|----------------|\n| 1. Merge locally | ✓ | — | — | ✓ |\n| 2. Create PR | — | ✓ | ✓ | — |\n| 3. Keep as-is | — | — | ✓ | — |\n| 4. Discard | — | — | — | ✓ (force) |\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---------|-----|\n| Skipping test verification | Always verify tests before offering options |\n| Open-ended \"What should I do?\" | Present exactly 4 structured options |\n| Auto worktree cleanup | Only cleanup for Options 1 and 4 |\n| No confirmation for discard | Require typed \"discard\" confirmation |\n| Force-push without explicit request | Never force-push unless user explicitly asks |\n\n## Integration\n\n| Called By | When |\n| --- | --- |\n| `codex-subagent-execution` | After all tasks complete |\n| `codex-workflow-autopilot` | After `ship` mode completes |\n| `codex-execution-quality-gate` | After gate passes |\n| Direct invocation | `$finish` or `$finish-branch` |\n\n| Pairs With | Purpose |\n| --- | --- |\n| `codex-git-worktrees` | Cleans up worktree created by that skill |\n| `codex-verification-discipline` | Tests must PASS before presenting options |\n\n## Script Invocation Discipline\n\n1. When this workflow calls helper scripts from other skills, run `--help` first.\n2. Treat helper scripts as black-box tools and execute by contract before reading source.\n3. Read script source only when customization or bug-fixing is required.\n",{"name":5,"description":7,"load_priority":23},"on-demand","main","19b976c6b4f182f06d2d2e6b030549f2f8a69cc0","packages\u002Fcli\u002Fskills\u002Fcodex-branch-finisher",0,"https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI","https:\u002F\u002Fgithub.com\u002FBang-isme","Hi my name is jeff","2026-07-15 19:58:17",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add Bang-isme\u002FAgencyCLI --skill codex-branch-finisher",{"tool":38,"command":39},"bunx","bunx skills add Bang-isme\u002FAgencyCLI --skill codex-branch-finisher",{"tool":41,"command":42},"pnpm","pnpm dlx skills add Bang-isme\u002FAgencyCLI --skill codex-branch-finisher","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Fpackages\u002Fcli\u002Fskills\u002Fcodex-branch-finisher\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":18},"01M754T5CB6WCXB2AV8N0M50AC","codex-test-driven-development","Fixture stub for TDD skill.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-test-driven-development\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":18},"01M754T41J59TG0MJYC52TES58","codex-subagent-execution","Fixture stub for subagent execution skill.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-subagent-execution\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":18},"01M754T2JDSPA3YF83FK6BMNV6","codex-runtime-hook","Fixture stub for runtime hook skill.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-runtime-hook\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":18},"01M754T1HG4JRTJVZC2PBFTXDT","codex-plan-writer","Fixture stub for plan writer skill.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-plan-writer\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":18},"01M754SZJVZKGQR5PSA6YFFY09","codex-execution-quality-gate","Fixture stub for quality gate skill.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-execution-quality-gate\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M754SXBJ1DE0JR6TK0XJ4SAK","codex-demo","Minimal fixture skill for Agency CLI skill-md parser tests.","https:\u002F\u002Fgithub.com\u002FBang-isme\u002FAgencyCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fmock-skills\u002Fcodex-demo\u002FSKILL.md",[],[]]