agentleFS
mabykomabyko/AgentSkills/skills/git-workflow/SKILL.md

git-workflow

Skill0 starsChanged 33 days agoMITView on GitHub

Use when choosing or executing Git-only workflows: branching, staging, commits, signed commits, DCO sign-off, local merge/rebase/squash, conflicts, tags, stashes, reflog recovery, branch cleanup, Git safety checks, or Git-history release prep.

  • Deletes or force-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

Show its rules and text

We split this skill into the rules it gives an agent

26 rules. 0 are common, 18 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 165 edited versions we read keep these.

  • 18

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

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

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

    Use for Git operations that affect history, branches, tags, commits, or conflict recovery.

    line 8
  2. Distinctive:

    Never claim a check passed unless you ran it and can report the command.

    line 13
  3. Distinctive:

    Avoid direct pushes to protected or shared base branches unless repo guidance and the user explicitly allow it.

    line 14
  4. Very specific:

    Keep commits atomic: one logical change per commit, no final WIP, fixup, or mixed-change commits.

    line 15
  5. Very specific:

    Never bypass hooks, signing, or DCO checks (--no-verify, --no-gpg-sign) unless the user explicitly asks.

    line 17
  6. Very specific:

    Use --force-with-lease, never plain --force, and only after confirming the branch is safe to rewrite.

    line 18
  7. Distinctive:

    Ask before any command that may discard work, delete local or remote refs, or rewrite public/shared history: git reset --hard, branch or …

    line 19
  8. Distinctive:

    Before running a commit, amend, or destructive command, construct the exact command and verify it keeps the safeguards above.

    line 20
  9. Distinctive:

    Run git status --short before staging, committing, rebasing, merging, or deleting anything.

    line 24
  10. Distinctive:

    When inspecting diffs, use raw unified diffs.

    line 26
  11. Very specific:

    If a wrapper filters or hides diff output you need, rerun the same safe command through the wrapper's raw passthrough mode (for example rtk …

    line 34
  12. Distinctive:

    Check whether the branch is shared before rebasing or force-pushing.

    line 37
  13. Very specific:

    When creating or renaming local task branches, default to feature/, fix/, hotfix/, docs/, test/, refactor/, release/, or chore/ based on …

    line 40
  14. Distinctive:

    Before any user-requested commit or amend:

    line 44
  15. Distinctive:

    If the tree has multiple changed files or unclear scope, inspect git --no-pager diff --no-color --no-ext-diff --stat, git --no-pager diff …

    line 46
  16. Distinctive:

    Leave unrelated or unverified groups dirty and report them as follow-up commit candidates.

    line 49
  17. Distinctive:

    Use git add -A only when the intended commit scope is the whole tree and that scope has been verified.

    line 50
  18. Distinctive:

    Check staged files or staged diff before committing.

    line 51
  19. Distinctive:

    Use Conventional Commits unless the repository documents another convention.

    line 52
  20. Very specific:

    Verify the exact commit command against Core Rule 5 (-S --signoff) before executing, and against the body decision above.

    line 55
  21. Distinctive:

    Before creating, switching, rebasing, merging, force-pushing, or deleting branches:

    line 59
  22. Distinctive:

    Check for uncommitted or staged changes that could be carried across branches.

    line 63
  23. Distinctive:

    Read repo-specific Git guidance.

    line 82
  24. Distinctive:

    If the user asked you to commit, follow the Commit Safety Checklist.

    line 87
  25. Distinctive:

    If the user asked you to push, push with upstream tracking on first push.

    line 88
  26. Very specific:

    If the user asked for GitHub PRs, checks, releases, or gh CLI workflows, use github-workflow.

    line 89

“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

Git Workflow

Use for Git operations that affect history, branches, tags, commits, or conflict recovery. Use github-workflow for GitHub PRs, stacked PRs and gh-stack, reviews, Actions, Releases, and gh CLI workflows.

Core Rules

  1. Inspect repository-specific Git guidance first: AGENTS.md, CLAUDE.md, docs/git-workflow.md, CONTRIBUTING.md, README.md, release docs.
  2. Never claim a check passed unless you ran it and can report the command.
  3. Avoid direct pushes to protected or shared base branches unless repo guidance and the user explicitly allow it.
  4. Keep commits atomic: one logical change per commit, no final WIP, fixup, or mixed-change commits.
  5. Use signed commits with DCO sign-off by default: git commit -S --signoff. Plain git commit -m ... or git commit --amend -m ... is forbidden unless the user explicitly overrides signing or DCO. If signing is unavailable — a key probe finds no usable key, or a -S commit just failed with a signing error, regardless of commit.gpgsign — do not retry; follow the signing fallback table in references/commits.md.
  6. Never bypass hooks, signing, or DCO checks (--no-verify, --no-gpg-sign) unless the user explicitly asks.
  7. Use --force-with-lease, never plain --force, and only after confirming the branch is safe to rewrite.
  8. Ask before any command that may discard work, delete local or remote refs, or rewrite public/shared history: git reset --hard, branch or tag deletion, force pushes, or discarding local changes.
  9. Before running a commit, amend, or destructive command, construct the exact command and verify it keeps the safeguards above.

Before Acting

  • Run git status --short before staging, committing, rebasing, merging, or deleting anything.
  • Document and reason about plain git commands only. Command wrappers (token-filtering proxies such as rtk) are an execution-time concern: apply a wrapper prefix only when the user's global or repository guidance says so. All rules in this skill apply to the underlying Git command whether or not a wrapper prefix is present.
  • When inspecting diffs, use raw unified diffs. Do not use aliases or wrapped diff shortcuts such as git difft; bypass pagers, colors, and external diff tools:
git --no-pager diff --no-color --no-ext-diff
git --no-pager diff --cached --no-color --no-ext-diff
git --no-pager show --no-color --no-ext-diff
  • If a wrapper filters or hides diff output you need, rerun the same safe command through the wrapper's raw passthrough mode (for example rtk proxy git --no-pager diff --no-color --no-ext-diff) or without the wrapper.
  • Identify the actual base branch from repo docs or remote metadata. Do not assume main.
  • Refresh remote-tracking refs before operations whose correctness depends on remote state: merging into a base branch, rebasing onto it, release range review, or branch cleanup.
  • Check whether the branch is shared before rebasing or force-pushing.
  • Apply these Git safeguards to the underlying operations of tools such as gh-stack, including implicit commits, rebases, and force pushes. Use github-workflow for stack orchestration and tool availability.
  • Stage only intentional changes. Prefer git add -p or explicit file paths.
  • When creating or renaming local task branches, default to feature/, fix/, hotfix/, docs/, test/, refactor/, release/, or chore/ based on the work type unless the user supplies an exact branch name.

Commit Safety Checklist

Before any user-requested commit or amend:

  • If the tree has multiple changed files or unclear scope, inspect git --no-pager diff --no-color --no-ext-diff --stat, git --no-pager diff --no-color --no-ext-diff --name-status, and targeted diffs as needed.
  • Group changes by logical intent before staging; do not infer intent from paths alone when the diff suggests otherwise.
  • Stage only the logical group directly covered by the user's current request unless the user explicitly asks to commit all remaining groups.
  • Leave unrelated or unverified groups dirty and report them as follow-up commit candidates.
  • Use git add -A only when the intended commit scope is the whole tree and that scope has been verified.
  • Check staged files or staged diff before committing.
  • Use Conventional Commits unless the repository documents another convention.
  • Write a commit body unless the title is fully self-explanatory. Decide this explicitly rather than defaulting to a title-only commit: a fix, a workaround, a rejected alternative, a behavior or interface change, or anything a future git blame reader would ask "why" about needs a body. See references/commits.md for what belongs in one.
  • Resolve the subject-description language, and the body language separately when a body is needed, using references/commits.md.
  • Verify the exact commit command against Core Rule 5 (-S --signoff) before executing, and against the body decision above. Pass a body with -F -, not by cramming it into -m.

Branch and History Safety Checklist

Before creating, switching, rebasing, merging, force-pushing, or deleting branches:

  • Confirm current branch, intended target branch, and actual base branch.
  • Fetch and compare the base branch with its upstream before integrating or judging merged state.
  • Check for uncommitted or staged changes that could be carried across branches.
  • Confirm whether the branch is shared or protected before rewriting or deleting it, then apply Core Rules 7-8.

Reference Routing

ReferenceUse For
references/branching.mdBranch flow, trunk-based, GitFlow, release branches, branch naming
references/linear-history.mdFast-forward vs rebase decisions, linear integration, conflict preflight
references/commits.mdConventional Commits, commit bodies, message language, atomic commits, signed commits, DCO sign-off, staging, interactive rebase/autosquash cleanup
references/conflicts-recovery.mdPull/merge/rebase/cherry-pick/stash conflicts, abort/continue flows, revert/reset/reflog recovery, untracking accidentally committed files
references/releases.mdGit tags, forge-neutral release notes, release branch safety
references/anti-patterns.mdCommon Git mistakes before staging, committing, pushing, or merging
references/branch-cleanup.mdExplicit branch cleanup requests, merged/stale branch checks, safe branch deletion
references/bisect.mdFinding the commit that introduced a regression via manual or automated git bisect
references/submodules.mdCloning, adding, updating, or removing Git submodules

Default Workflow

  1. Read repo-specific Git guidance.
  2. Run git status --short.
  3. Load the relevant reference file.
  4. Inspect branch, base, remote, and staged changes as needed.
  5. Choose the least surprising safe Git operation.
  6. If the user asked you to commit, follow the Commit Safety Checklist.
  7. If the user asked you to push, push with upstream tracking on first push.
  8. If the user asked for GitHub PRs, checks, releases, or gh CLI workflows, use github-workflow.

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.