agentleFS
kennguyen887kennguyen887/agent-foundation/skills/git-flow/SKILL.md

git-flow

Skill1 starsChanged 5 months agoMITView on GitHub

Use when branching, opening an MR, cutting a release, or shipping a hotfix — the develop→staging→master branching & release flow, tagging, semantic versioning, hotfix path. Tool-agnostic (plain git).

  • Commits and pushes

8 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Not every feature in develop ships at once.

    line 46

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

When to use

Reach for this when you start a feature branch, open a merge request, promote code between environments, tag a release, or ship an urgent production fix. It is the branching & release workflow; for commit-message rules and the "never target main for feature work" guard see the global Git Commit Rules / Branch & PR Target Rules in CLAUDE.md.

Branch names vary by project — some teams use staging, others RC, for the pre-production branch. What matters is the role each branch plays, not its literal name. Map the names below to your project's. This is plain git, so it applies to a repo in any language.

Branch roles

BranchRole
master (or main)Production. Only thoroughly tested code. Tagged per production release.
staging (or RC) (optional)Pre-production / demo. Tagged per staging release. Optional if you have strong feature flags.
developIntegration branch for active development; deploys to the Dev environment.
feature/*One per task/feature. Branches from develop.
hotfix/*Critical production-bug fixes. Branches from master.

Steps

1. Feature development

git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name      # always branch from fresh develop
# ...commit focused work...

Open a merge request into develop. After review, merge (--no-ff) — this triggers the Dev deployment. Keep one feature branch to one concern (see SRP per MR in code-conventions §5).

2. Promote to staging (selective)

Not every feature in develop ships at once. When the selected changes are ready:

git checkout staging
git merge --no-ff develop                       # or cherry-pick specific feature merges:
# git cherry-pick -m 1 <feature-merge-commit>   # for selective promotion
git push origin staging

git tag -a v1.0.0-staging -m "Staging release v1.0.0"
git push origin v1.0.0-staging                  # tag → deploys to staging; test there

Any bug fix found on staging is committed on staging, then merged back into develop.

3. Production release

Promote the exact code that was tagged for staging — don't re-merge a moving develop.

git checkout v1.0.0-staging
git checkout -b release/v1.0.0
# MR release/v1.0.0 → master, get approval, then:
git checkout master
git merge --no-ff release/v1.0.0

git tag -a v1.0.0 -m "Production release v1.0.0"
git push origin master
git push origin v1.0.0                           # tag → deploys to production
git branch -d release/v1.0.0                      # clean up

4. Hotfix (urgent production fix) — default path

git checkout master
git checkout -b hotfix/critical-fix
# ...fix + test thoroughly...

# verify in staging FIRST
git checkout staging && git merge --no-ff hotfix/critical-fix && git push origin staging
git tag -a v1.0.1-staging -m "Hotfix staging v1.0.1" && git push origin v1.0.1-staging

# then release to production
git checkout master && git merge --no-ff hotfix/critical-fix && git push origin master
git tag -a v1.0.1 -m "Hotfix v1.0.1" && git push origin v1.0.1

# propagate back so develop doesn't regress the fix
git checkout develop && git merge --no-ff hotfix/critical-fix && git push origin develop

Merging a hotfix straight to master (skipping staging) is allowed only for critical/blocker cases with high confidence: production is broken (login down, payments failing), no time for a full UAT round (still test locally / on an emergency env), the fix is very small and low-risk (revert a bad commit, fix a config typo), and only trusted engineers deploy. Even then, propagate the fix back to develop (and staging) afterward.

Versioning & CI/CD

  • Semantic versioning vMAJOR.MINOR.PATCH: MAJOR = incompatible API change, MINOR = new backward-compatible functionality, PATCH = backward-compatible bug fix.
  • Staging tags mirror their production counterpart except for the -staging suffix: v1.2.3-staging → v1.2.3.
  • CI/CD by trigger: Dev deploys automatically when changes merge to develop; Staging deploys from tags on staging (v1.0.0-staging); Production deploys from tags on master (v1.0.0).

Verification

A release/hotfix followed the flow when:

  • The feature was branched from a freshly pulled develop and merged via MR (not committed to master/develop directly).
  • Production shipped the same commit that was tagged on staging (staging tag ↔ prod tag differ only by -staging).
  • A hotfix that touched master was also merged back into develop (and staging) — verify with git branch --contains <hotfix-commit>.
  • The deploy you expected fired (Dev on develop merge; Staging/Prod on the new tag).

Related

  • CLAUDE.md — Git Commit Rules (no AI attribution), Branch & PR Target Rules, Release Safety Rules (backward compat, rollback plan, post-release verification).
  • code-conventions — one responsibility per MR.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.