agentleFS
MuvonMuvon/octomind-tap/skills/git-workflow/SKILL.md

git-workflow

Skill6 starsChanged 8 months agoApache-2.0View on GitHub

Git commit message conventions, branch naming and clean-history workflow. Use when committing, branching, rebasing, tagging or reviewing git history.

  • Deletes or force-pushes
  • Commits and pushes

188 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use squad-commands, ci-cd-pipelines and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Microsoft AzureSkill

    squad-commands

    Categorized catalog of common Squad operations. Coordinator reads this file and presents it as an interactive menu when the user asks for available commands or help.

    Also in 5 projects that use this

  • harrissohail6Skill

    ci-cd-pipelines

    CI/CD pipeline design and implementation. Auto-activates when discussing deployment, automation, or pipelines.

    Also in 6 projects that use this

  • Microsoft AzureSkill

    architectural-proposals

    How to write comprehensive architectural proposals that drive alignment before code is written

    Also in 4 projects that use this

  • GitHubSkill

    e2e-template-testing

    End-to-end validation of coordinator and agent template changes

    Also in 3 projects that use this

  • GitHubSkill

    notification-routing

    Route agent notifications to specific channels by type — prevent alert fatigue from single-channel flooding

    Also in 3 projects that use this

  • frostneySkill

    native-nostalgia-stack

    Applies the user's FreePascal toolchain and its build, formatting, hook, and test contracts while leaving project-specific mechanics local. Use when scaffolding or working in a FreePascal project that follows this toolchain.

    Also in 3 projects that use this

  • +5 more from Azure
  • +1 more from github

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 165 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    If the repo already enforces a type list (commitlint config, CONTRIBUTING), that list wins.

    line 44
  2. Distinctive:

    No period at end of summary

    line 50
  3. Distinctive:

    Use kebab-case. Keep it short but descriptive.

    line 65
  4. Distinctive:

    Never commit directly to main — always use a short-lived branch

    line 69
  5. Distinctive:

    Keep commits atomic — one logical change per commit

    line 70
  6. Very specific:

    Update your branch by rebasing onto the fresh remote: git fetch origin && git rebase origin/main.

    line 71
  7. Very specific:

    After rewriting a pushed branch, push with git push --force-with-lease --force-if-includes — never plain --force

    line 72

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

Overview

This skill encodes git commit conventions (Conventional Commits), branch naming rules, and workflow best practices. Activate it when you need to commit changes, name a branch, clean up history, or review git practices in a project.

Instructions

Commit Message Format

Follow Conventional Commits 1.0.0:

<type>(<scope>): <short summary>

[optional body]

[optional footer]

Types: the spec itself defines only feat (maps to a SemVer MINOR) and fix (PATCH). The common extended set comes from commitlint's config-conventional:

  • feat — new feature
  • fix — bug fix
  • refactor — code change that neither fixes a bug nor adds a feature
  • perf — performance improvement
  • test — adding or updating tests
  • docs — documentation only
  • style — formatting, no behavior change
  • build — build system or dependencies
  • ci — CI/CD changes
  • chore — other maintenance
  • revert — reverts a previous commit

If the repo already enforces a type list (commitlint config, CONTRIBUTING), that list wins.

Breaking changes (MAJOR): add ! right before the colon — feat(api)!: drop v1 endpoints — and/or a footer BREAKING CHANGE: <what breaks and how to migrate>. The footer token is uppercase; BREAKING-CHANGE is equivalent.

Rules:

  • Summary line: imperative mood ("add" not "added"), aim for ~50 characters, hard limit 72
  • No period at end of summary
  • Body: wrap at 72 characters, explain why not what
  • Footers use Token: value with hyphenated tokens (Reviewed-by:, Co-authored-by:, Signed-off-by:); reference issues as Fixes #123 / Closes #456 so the forge auto-closes them

Branch Naming

<type>/<short-description>
  • feat/user-profile-page
  • fix/login-redirect-loop
  • refactor/extract-auth-middleware
  • chore/upgrade-tokio-1.47

Use kebab-case. Keep it short but descriptive. Match the commit type.

Workflow Rules

  1. Never commit directly to main — always use a short-lived branch
  2. Keep commits atomic — one logical change per commit
  3. Update your branch by rebasing onto the fresh remote: git fetch origin && git rebase origin/main. Rebase only branches nobody else has built on
  4. After rewriting a pushed branch, push with git push --force-with-lease --force-if-includes — never plain --force
  5. Clean up before opening a PR: make corrections as git commit --fixup=<sha>, then fold them with git rebase --autosquash origin/main (Git 2.44+ applies autosquash without -i, so it runs non-interactively)
  6. Stacked branches: git rebase --update-refs moves every branch in the stack in one pass
  7. Tag releases with semantic versioning (v1.2.3), annotated (-a) or signed (-s)

Examples

Good commit message

feat(auth): add JWT refresh token rotation

Prevents token reuse after logout by invalidating the previous
refresh token on each use.

Closes #89

Bad commit message → fix it

# Bad
fixed stuff
update
WIP
# Good
fix(api): handle empty response body in error parser

The parser panicked when the server returned a 500 with no body.
Added a fallback to use the status text instead.

Common commands

# Start a feature (git switch replaces checkout for branches)
git switch -c feat/my-feature

# Stage only relevant changes (interactive; agents stage explicit paths instead)
git add -p

# Amend last commit (before push)
git commit --amend --no-edit

# Fix an earlier commit, then fold it in without an editor
git commit --fixup=<sha>
git rebase --autosquash origin/main

# Check what will be committed
git diff --staged

# Tag a release
git tag -a v1.2.3 -m "Release v1.2.3"
git push origin v1.2.3

References

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.