Git workflow
Agent Skill for Git workflow best practices - branching, commits, PR workflows | Claude Code compatible
npx -y skills add netresearch/git-workflow-skill --skill git-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Use when establishing branching strategies, implementing Conventional Commits, creating or reviewing PRs, resolving PR review comments, merging PRs (including CI verification, auto-merge queues, and post-merge cleanup), managing PR review threads, merging PRs with signed commits, handling merge conflicts, integrating Git with CI/CD, setting up git hooks (lefthook, captainhook, husky, pre-commit), or debugging hook-install failures in git worktrees. Not for creating releases (use github-release) or diagnosing BLOCKED/won't-merge PRs (use github-project).
The file declares its own license as (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.2 KB, as published. Nobody here has run it
Git Workflow Skill
Critical Rules (Non-Negotiable)
- No direct push to main — always open a PR.
- No merge before all threads resolved — see
references/pull-request-workflow.md. - No squash unless asked — preserves atomic commits, signatures, bisection.
- No "tested/verified/working" without pasted command output — else say so.
- No edits to installed skill/plugin cache paths (
~/.claude/skills/,~/.claude/plugins/cache/,**/.bare/**) — always the repo worktree, verified bypwd. - Force-push only with
--force-with-lease— never plain--force. - Commit before rebase —
add → commit → fetch → rebase → push. Dirty tree aborts rebase. - No editorializing — state what changed, not how good it is; no narrating expected results or self-praise. See
references/no-editorializing.md.
See references/pull-request-workflow.md for merge-gate and atomic-commit patterns.
Reference Files
Load on demand:
| Reference | Content Triggers |
|---|---|
references/commit-conventions.md | Conventional commits, DCO sign-off |
references/pull-request-workflow.md | Default-branch check, PR merge, merge gate, signed rebase |
references/ci-cd-integration.md | Watching CI from the CLI, git mirror repositories |
references/advanced-git.md | Rebase, cherry-pick, bisect, stash, worktrees, reflog, recovery |
references/github-releases.md | Pointer to the github-release skill |
references/git-hooks-setup.md | Hook frameworks, detection, hooks per stage |
references/claude-code-hooks.md | Claude Code settings.json hooks — merge gate, cache-path rejection, auto-lint |
references/code-quality-tools.md | shellcheck, shfmt, git-absorb, difftastic |
references/merge-gate-watcher.md | Merge-driver loop, check taxonomy, stale-SHA rerun, review-bot rounds |
references/spec-cleanup.md | Keep planning artifacts off the base branch; guard + capture-to-ADR |
references/no-editorializing.md | Writing without self-praise or narrating the expected |
Conventional Commits
<type>[scope]: <description>
Types: feat (MINOR), fix (PATCH), docs, style, refactor, perf, test, build, ci, chore, revert
Breaking change: Add ! after type or BREAKING CHANGE: in footer.
Branch Naming
feature/TICKET-123-description
fix/TICKET-456-bug-name
release/1.2.0
hotfix/1.2.1-security-patch
Hook Detection
Detect hooks first:
ls lefthook.yml .lefthook.yml captainhook.json .pre-commit-config.yaml .husky/pre-commit 2>/dev/null || echo "No hooks"
Install: lefthook install | composer install | npm install | pre-commit install
Critical Release Rules
- Immutable releases: deleted releases block tag reuse; bump version.
- Multi-branch releases: Use
--latest=falsefrom non-default branches. - Pre-release: Version bumped, CI green, CHANGELOG updated,
git pullBEFOREgh release create.
PR Merge Requirements
Before merging: threads resolved, CI green (incl. annotations), rebased, signed. Rebase-only + signed: git merge --ff-only.
Verification
./scripts/verify-git-workflow.sh /path/to/repository
Contributing: https://github.com/netresearch/git-workflow-skill