بنقرة واحدة
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>