agentleFS
MindrallyMindrally/skills/gitflow/SKILL.md

gitflow

Skill275 starsChanged 34 days agoApache-2.0View on GitHub

Branching, merging, versioning, and release conventions for the Gitflow workflow, covering main/develop branches, feature/release/hotfix branches, semantic versioning, and pull request rules. Use when creating a branch, naming a branch, planning a release or hotfix, writing a commit message, or setting up branch protection for a repository that follows Gitflow.

  • Commits and pushes

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 6 are distinctive, and 9 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 9

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never commit directly to main.

    line 27
  2. Very specific:

    Only accepts merges from hotfix/* branches or release/* branches.

    line 28
  3. Very specific:

    Must be tagged with a version number after every merge (e.g.

    line 29
  4. Very specific:

    Never commit directly to develop — all changes land through pull requests.

    line 35
  5. Very specific:

    Must be up to date with develop before opening a PR.

    line 44
  6. Very specific:

    Use Conventional Commits format: type(scope): description.

    line 65
  7. Very specific:

    All changes must go through pull requests — no exceptions for main or develop.

    line 97
  8. Distinctive:

    All CI checks must pass.

    line 99
  9. Very specific:

    No direct commits to protected branches (main, develop).

    line 100
  10. Distinctive:

    Delete the branch after merge (both local and remote copies).

    line 102
  11. Very specific:

    Create a release branch from develop: git checkout -b release/v1.2.0 develop.

    line 117
  12. Distinctive:

    After merge to main:

    line 121
  13. Distinctive:

    Delete the release branch.

    line 124
  14. Very specific:

    Create a hotfix branch from main: git checkout -b hotfix/v1.2.1 main.

    line 128
  15. Distinctive:

    Delete the hotfix branch.

    line 135

“Common” is measured: kept by at least 6 in 10 of the 6 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

Gitflow

This skill covers the Gitflow branching model: the two long-lived branches, the three supporting branch types, commit message conventions, semantic versioning, and the release and hotfix processes.

Workflow for a Feature Change

  1. Sync develop — Run git checkout develop && git pull origin develop so the feature branches from the latest development state.
  2. Create the feature branch — Run git checkout -b feature/123-user-authentication, using the naming convention feature/[issue-id]-descriptive-name.
  3. Commit with conventional messages — Use type(scope): description for every commit (see Commit Messages below).
  4. Rebase or merge develop in — Before opening a PR, bring the branch up to date: git fetch origin && git rebase origin/develop (or merge, per team convention).
  5. Open a pull request into develop — Require at least one approval and passing CI checks; never commit directly to develop.
  6. Merge and clean up — After merge, delete the feature branch both locally and on the remote: git branch -d feature/123-user-authentication && git push origin --delete feature/123-user-authentication.

Main Branches

main (or master)

  • Contains production-ready code only.
  • Never commit directly to main.
  • Only accepts merges from hotfix/* branches or release/* branches.
  • Must be tagged with a version number after every merge (e.g. git tag -a v1.2.0 -m "Release 1.2.0").

develop

  • The main integration branch; contains the latest delivered development changes.
  • Source branch for all feature/* branches.
  • Never commit directly to develop — all changes land through pull requests.

Supporting Branches

feature/*

  • Branch from: develop.
  • Merge back into: develop.
  • Naming convention: feature/[issue-id]-descriptive-name (e.g. feature/123-user-authentication).
  • Must be up to date with develop before opening a PR.
  • Delete after merge.

release/*

  • Branch from: develop.
  • Merge back into: main and develop.
  • Naming convention: release/vX.Y.Z (e.g. release/v1.2.0).
  • Scope is limited to bug fixes, documentation, and release-oriented tasks — no new features.
  • Delete after merge.

hotfix/*

  • Branch from: main.
  • Merge back into: main and develop.
  • Naming convention: hotfix/vX.Y.Z (e.g. hotfix/v1.2.1).
  • Reserved for urgent production fixes only.
  • Delete after merge.

Commit Messages

Use Conventional Commits format: type(scope): description.

TypeMeaning
featNew feature
fixBug fix
docsDocumentation changes
styleFormatting, missing semicolons, etc. — no logic change
refactorCode restructuring without behavior change
testAdding or correcting tests
choreMaintenance tasks (build scripts, dependency bumps)

Example:

feat(auth): add refresh-token rotation

fix(orders): prevent duplicate charge on retry

chore(deps): bump lodash to 4.17.21

Semantic Versioning

Given a version MAJOR.MINOR.PATCH:

  • MAJOR — incremented for incompatible/breaking API changes.
  • MINOR — incremented for backwards-compatible new functionality.
  • PATCH — incremented for backwards-compatible bug fixes.

Pull Request Rules

  1. All changes must go through pull requests — no exceptions for main or develop.
  2. Minimum of one required approval before merge.
  3. All CI checks must pass.
  4. No direct commits to protected branches (main, develop).
  5. The branch must be up to date with its target before merging.
  6. Delete the branch after merge (both local and remote copies).

Branch Protection Rules

Apply to both main and develop:

  • Require pull request reviews before merging.
  • Require status checks to pass before merging.
  • Require branches to be up to date before merging.
  • Include administrators in the restrictions (no bypassing rules with elevated permissions).
  • No force pushes.
  • No branch deletions.

Release Process

  1. Create a release branch from develop: git checkout -b release/v1.2.0 develop.
  2. Bump version numbers in package manifests / changelogs.
  3. Fix any release-specific issues (docs, last-minute bugs) — do not add new features.
  4. Open a PR from the release branch into main.
  5. After merge to main:
    • Tag the release: git tag -a v1.2.0 -m "Release 1.2.0" and push the tag.
    • Merge main back into develop so develop has the release commit and tag.
    • Delete the release branch.

Hotfix Process

  1. Create a hotfix branch from main: git checkout -b hotfix/v1.2.1 main.
  2. Fix the production issue with the smallest possible change.
  3. Bump the patch version.
  4. Open a PR from the hotfix branch into main.
  5. After merge to main:
    • Tag the release: git tag -a v1.2.1 -m "Hotfix 1.2.1" and push the tag.
    • Merge main back into develop so the fix isn't lost in the next release.
    • Delete the hotfix branch.

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.