一键导入
branching
Gitflow branching model — develop/main strategy, branch naming, PR rules, and post-merge cleanup.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Gitflow branching model — develop/main strategy, branch naming, PR rules, and post-merge cleanup.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Copy processed MP3s and WAVs to NAS storage. Use after Apple Music import or when re-archiving corrected files.
Move processed ZIPs to archive and clean up extraction folders. Use after album processing is complete.
Copy finished MP3s into Apple Music via the auto-import folder and verify the album lands correctly. Use once metadata is finalized and the user wants tracks added to their library — e.g. "add this to Apple Music" or "import these tracks" — even if they don't say "auto-import" explicitly. Also use to diagnose a bad import, e.g. "it showed up as separate tracks instead of one album."
Inspect and update MP3 tags: genre, artist, album, track count, compilation flag. Use when checking or fixing music file metadata — including diagnostic questions like "why do these show up as separate tracks" or "is this folder's metadata consistent," not just explicit tag-editing requests.
End-to-end processing of downloaded music purchases: extract ZIPs, verify metadata, import to Apple Music, archive to NAS, clean up. Use when processing new music downloads.
Reclaim local disk by offloading cloud-backed Apple Music downloads. Audit iCloud status, build an offload playlist that protects your DJ crates and lossless files, then Remove Download. Use when the Mac is low on disk.
| name | branching |
| description | Gitflow branching model — develop/main strategy, branch naming, PR rules, and post-merge cleanup. |
Every change goes through a branch and PR — no exceptions, no matter how small or urgent.
develop, PR back into developdevelop → main (open at release time)main never receives the commit directly; fix reaches develop via a forward-port PR after shippingIf the user has not yet created a branch, create one before touching any files:
git checkout -b <type>-<description>
Only the user can authorise a direct push to main or develop, and only for a specific stated technical reason. Never decide this unilaterally.
Use hyphens (not slashes) — keeps directories flat and scannable:
feat-<description>
fix-<description>
refactor-<description>
docs-<description>
ci-<description>
test-<description>
Examples: feat-user-auth, fix-login-redirect, ci-add-lint-check
Ask: what is the minimum number of commits that meaningfully separates this work?
Feature/fix branch PRs use squash-merge (gh pr merge --squash), so branch commits are ephemeral — they become one commit on develop regardless. Their only job is to help a reviewer understand the PR. That means:
git log origin/develop..HEAD --oneline # read it — if you'd be embarrassed showing it, squash
git rebase -i origin/develop # fixup/reword until only meaningful separations remain
Note: for the
develop → mainrelease promotion PR, these becomeorigin/main.
Ensure the branch is up-to-date with the base branch (develop for feature branches):
git fetch origin develop
git log HEAD..origin/develop --oneline # if output, merge first
git merge origin/develop
git push
NEVER use gh pr merge --admin — this bypasses CI and is strictly forbidden.
Only merge when:
gh pr checks # verify all pass
gh pr view --comments # verify no unresolved comments
gh pr merge --squash # feature/fix branches → develop
Exception — release promotion PR (develop → main): always use --merge (true merge), never --squash. Squash loses ancestry and makes git log v{VERSION}..develop show the entire history as if nothing was released.
gh pr merge --merge # develop → main only
# Verify merged into develop (for feature branches)
git branch -r --merged origin/develop | grep <branch-name>
# For release promotion PRs, verify merged into main:
git branch -r --merged origin/main | grep <branch-name>
# Clean up local branch
git branch -d <branch-name>
git push origin --delete <branch-name>