brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.…
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
Claude Code
$ npx -y skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch --agent claude-code
Codex
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a codex -y
Cursor
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a cursor -y
Gemini CLI
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a gemini-cli -y
GitHub Copilot
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a github-copilot -y
OpenCode
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a opencode -y
Windsurf
$ npx skills add Cmochance/codex-app-transfer --skill finishing-a-development-branch -a windsurf -y
name: finishing-a-development-branch description: 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
Guide completion of development work by presenting clear options and handling chosen workflow.
**Core principle:** Verify tests → Detect environment → Present options → Execute choice → Clean up.
**Announce at start:** "I'm using the finishing-a-development-branch skill to complete this work."
**Before presenting options, verify tests pass:**
# Run project's test suite npm test / cargo test / pytest / go test ./...
**If tests fail:**
Tests failing (<N> failures). Must fix before completing: [Show failures] Cannot proceed with merge/PR until tests pass.
Stop. Don't proceed to Step 2.
**If tests pass:** Continue to Step 2.
**Determine workspace state before presenting options:**
GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P) GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
This determines which menu to show and how cleanup works:
| State | Menu | Cleanup | |-------|------|---------| | `GIT_DIR == GIT_COMMON` (normal repo) | Standard 4 options | No worktree to clean up | | `GIT_DIR != GIT_COMMON`, named branch | Standard 4 options | Provenance-based (see Step 6) | | `GIT_DIR != GIT_COMMON`, detached HEAD | Reduced 3 options (no merge) | No cleanup (externally managed) |
# Try common base branches git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
Or ask: "This branch split from main - is that correct?"
**Normal repo and named-branch worktree — present exactly these 4 options:**
Implementation complete. What would you like to do? 1. Merge back to <base-branch> locally 2. Push and create a Pull Request 3. Keep the branch as-is (I'll handle it later) 4. Discard this work Which option?
**Detached HEAD — present exactly these 3 options:**
Implementation complete. You're on a detached HEAD (externally managed workspace). 1. Push as new branch and create a Pull Request 2. Keep as-is (I'll handle it later) 3. Discard this work Which option?
**Don't add explanation** - keep options concise.
# Get main repo root for CWD safety MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel) cd "$MAIN_ROOT" # Merge first — verify success before removing anything git checkout <base-branch> git pull git merge <feature-branch> # Verify tests on merged result <test command> # Only after merge succeeds: cleanup worktree (Step 6), then delete branch
Then: Cleanup worktree (Step 6), then delete branch:
git branch -d <feature-branch>
# Push branch git push -u origin <feature-branch>
**Do NOT clean up worktree** — user needs it alive to iterate on PR feedback.
Report: "Keeping branch <name>. Worktree preserved at <path>."
**Don't cleanup worktree.**
**Confirm first:**
This will permanently delete: - Branch <name> - All commits: <commit-list> - Worktree at <path> Type 'discard' to confirm.
Wait for exact confirmation.
If confirmed:
MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel) cd "$MAIN_ROOT"
Then: Cleanup worktree (Step 6), then force-delete branch:
git branch -D <feature-branch>
**Only runs for Options 1 and 4.** Options 2 and 3 always preserve the worktree.
GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P) GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P) WORKTREE_PATH=$(git rev-parse --show-toplevel)
**If `GIT_DIR == GIT_COMMON`:** Normal repo, no worktree to clean up. Done.
**If worktree path is under `.worktrees/` or `worktrees/`:** Superpowers created this worktree — we own cleanup.
MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel) cd "$MAIN_ROOT" git worktree remove "$WORKTREE_PATH" git worktree prune # Self-healing: clean up any stale registrations
**Otherwise:** The host environment (harness) owns this workspace. Do NOT remove it. If your platform provides a workspace-exit tool, use it. Otherwise, leave the workspace in place.
| Option | Merge | Push | Keep Worktree | Cleanup Branch | |--------|-------|------|---------------|----------------| | 1. Merge locally | yes | - | - | yes | | 2. Create PR | - | yes | yes | - | | 3. Keep as-is | - | - | yes | - | | 4. Discard | - | - | - | yes (force) |
**Skipping test verification**
**Open-ended questions**
**Cleaning up worktree for Option 2**
**Deleting branch before removing worktree**
**Running git worktree remove from inside the worktree**
**Cleaning up harness-owned worktrees**
简体中文 | English | Changelog | Code Graph Codex App Transfer 是一个面向 OpenAI Codex APP 的轻量桌面配置 + 转发工具。它在本机起一个网关,把 Codex APP 发出的 Responses API 请求(HTTP 流式 / 非流式 + /responses )翻译成 Chat Completions 等格式,转发到你选择的供应商,用桌面 UI 管理供应商、模型映射、转发端口、日志面板,让 Codex APP 无缝使用第三方
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.…
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically…
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
Use when executing implementation plans with independent tasks in the current session
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.