{"id":"029da707-8e12-47e8-bdb8-4a85383118af","shortId":"MxAwKg","kind":"skill","title":"git-workflow","tagline":"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,","description":"# Git Workflow Skill\n\nExpert patterns for Git version control: branching, commits, collaboration, and CI/CD.\n\n## Critical Rules (Non-Negotiable)\n\n1. **No direct push to main** — always open a PR.\n2. **No merge before all review threads are resolved** — run the merge gate in `references/pull-request-workflow.md`.\n3. **No squash unless user asked** — atomic commits preserved; keeps GPG signatures and bisection.\n4. **No \"tested/verified/working\" without pasted command output** — if you cannot run the check, say so.\n5. **No edits to installed skill/plugin cache paths** (`~/.claude/skills/`, `~/.claude/plugins/cache/`, `**/.bare/**`) — always the repo worktree. Verify `pwd` first.\n6. **Force-push only with `--force-with-lease`** — never plain `--force`.\n\nSee `references/pull-request-workflow.md` for the merge-gate command, atomic-commit guidance, and review-thread SHA-citation pattern.\n\n## Reference Files\n\nLoad references on demand based on the task at hand:\n\n| Reference | Content Triggers |\n|-----------|-----------------|\n| `references/branching-strategies.md` | Branching model, Git Flow, GitHub Flow, trunk-based, branch protection |\n| `references/commit-conventions.md` | Commit messages, conventional commits, semantic versioning, commitlint |\n| `references/pull-request-workflow.md` | PR create/review/merge, thread resolution, merge strategies, CODEOWNERS, signed commits + rebase |\n| `references/ci-cd-integration.md` | GitHub Actions, GitLab CI, semantic release, deployment |\n| `references/advanced-git.md` | Rebase, cherry-pick, bisect, stash, worktrees, reflog, submodules, recovery |\n| `references/github-releases.md` | Release management, immutable releases, `--latest=false`, multi-branch |\n| `references/git-hooks-setup.md` | Hook frameworks, detection, recommended hooks per stage |\n| `references/claude-code-hooks.md` | Claude Code `settings.json` hooks — merge gate, cache-path rejection, auto-lint |\n| `references/code-quality-tools.md` | shellcheck, shfmt, git-absorb, difftastic |\n\n## Conventional Commits\n\n```\n<type>[scope]: <description>\n```\n\n**Types**: `feat` (MINOR), `fix` (PATCH), `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`\n\n**Breaking change**: Add `!` after type or `BREAKING CHANGE:` in footer.\n\n## Branch Naming\n\n```\nfeature/TICKET-123-description\nfix/TICKET-456-bug-name\nrelease/1.2.0\nhotfix/1.2.1-security-patch\n```\n\n## Hook Detection\n\nBefore first commit, detect and install hooks:\n\n```bash\nls lefthook.yml .lefthook.yml captainhook.json .pre-commit-config.yaml .husky/pre-commit 2>/dev/null || echo \"No hooks\"\n```\n\nInstall: lefthook.yml -> `lefthook install` | captainhook.json -> `composer install` | .husky/ -> `npm install` | .pre-commit-config.yaml -> `pre-commit install`\n\n## Critical Release Rules\n\n1. **Immutable releases**: Deleted releases permanently block tag reuse; bump version instead.\n2. **Multi-branch releases**: Use `--latest=false` from non-default branches.\n3. **Pre-release**: Version bumped, CI green, CHANGELOG updated, `git pull` BEFORE `gh release create`.\n\n## PR Merge Requirements\n\nBefore merging: all threads resolved, CI checks green (including annotations), branch rebased, commits signed (if required). For signed commits + rebase-only repos, use local `git merge --ff-only`.\n\n## Verification\n\n```bash\n./scripts/verify-git-workflow.sh /path/to/repository\n```\n\n---\n\n> **Contributing:** https://github.com/netresearch/git-workflow-skill","tags":["git","workflow","skill","netresearch","agent-skills","ai-agent","open-standard"],"capabilities":["skill","source-netresearch","skill-git-workflow","topic-agent-skills","topic-ai-agent","topic-open-standard"],"categories":["git-workflow-skill"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/netresearch/git-workflow-skill/git-workflow","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add netresearch/git-workflow-skill","source_repo":"https://github.com/netresearch/git-workflow-skill","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 13 github stars · SKILL.md body (3,447 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T13:03:29.876Z","embedding":null,"createdAt":"2026-04-19T00:41:19.863Z","updatedAt":"2026-04-22T13:03:29.876Z","lastSeenAt":"2026-04-22T13:03:29.876Z","tsv":"'/.bare':126 '/.claude/plugins/cache':125 '/.claude/skills':124 '/dev/null':321 '/netresearch/git-workflow-skill':424 '/path/to/repository':420 '/scripts/verify-git-workflow.sh':419 '1':62,343 '2':72,320,355 '3':87,368 '4':101 '5':116 '6':134 'absorb':269 'action':215 'add':290 'alway':68,127 'annot':396 'ask':92 'atom':93,156 'atomic-commit':155 'auto':26,262 'auto-lint':261 'auto-merg':25 'base':173,191 'bash':313,418 'bisect':100,226 'block':349 'branch':7,52,183,192,241,298,358,367,397 'break':288,294 'build':284 'bump':352,373 'cach':122,258 'cache-path':257 'cannot':110 'captainhook.json':317,329 'chang':289,295 'changelog':376 'check':113,393 'cherri':224 'cherry-pick':223 'chore':286 'ci':23,217,285,374,392 'ci/cd':56 'citat':165 'claud':251 'cleanup':33 'code':252 'codeown':209 'collabor':54 'command':106,154 'comment':19 'commit':11,42,53,94,157,195,198,211,272,308,338,399,405 'commitlint':201 'compos':330 'content':180 'contribut':421 'control':51 'convent':10,197,271 'creat':12,383 'create/review/merge':204 'critic':57,340 'default':366 'delet':346 'demand':172 'deploy':220 'detect':245,305,309 'difftast':270 'direct':64 'doc':279 'echo':322 'edit':118 'establish':6 'expert':46 'fals':238,362 'feat':275 'feature/ticket-123-description':300 'ff':415 'ff-on':414 'file':168 'first':133,307 'fix':277 'fix/ticket-456-bug-name':301 'flow':186,188 'footer':297 'forc':136,141,146 'force-push':135 'force-with-leas':140 'framework':244 'gate':84,153,256 'gh':381 'git':2,43,49,185,268,378,412 'git-absorb':267 'git-workflow':1 'github':187,214 'github.com':423 'github.com/netresearch/git-workflow-skill':422 'gitlab':216 'gpg':97 'green':375,394 'guidanc':158 'hand':178 'hook':243,247,254,304,312,324 'hotfix/1.2.1-security-patch':303 'huski':332 'husky/pre-commit':319 'immut':235,344 'implement':9 'includ':22,395 'instal':120,311,325,328,331,334,339 'instead':354 'keep':96 'latest':237,361 'leas':143 'lefthook':327 'lefthook.yml':315,316,326 'lint':263 'load':169 'local':411 'ls':314 'main':67 'manag':34,234 'merg':20,27,32,38,74,83,152,207,255,385,388,413 'merge-g':151 'messag':196 'minor':276 'model':184 'multi':240,357 'multi-branch':239,356 'name':299 'negoti':61 'never':144 'non':60,365 'non-default':364 'non-negoti':59 'npm':333 'open':69 'output':107 'past':105 'patch':278 'path':123,259 'pattern':47,166 'per':248 'perf':282 'perman':348 'pick':225 'plain':145 'post':31 'post-merg':30 'pr':17,35,71,203,384 'pre':337,370 'pre-commit':336 'pre-commit-config.yaml':318,335 'pre-releas':369 'preserv':95 'protect':193 'prs':15,21,39 'pull':379 'push':65,137 'pwd':132 'queue':28 'rebas':212,222,398,407 'rebase-on':406 'recommend':246 'recoveri':231 'refactor':281 'refer':167,170,179 'references/advanced-git.md':221 'references/branching-strategies.md':182 'references/ci-cd-integration.md':213 'references/claude-code-hooks.md':250 'references/code-quality-tools.md':264 'references/commit-conventions.md':194 'references/git-hooks-setup.md':242 'references/github-releases.md':232 'references/pull-request-workflow.md':86,148,202 'reflog':229 'reject':260 'releas':219,233,236,341,345,347,359,371,382 'release/1.2.0':302 'repo':129,409 'requir':386,402 'resolut':206 'resolv':16,80,391 'reus':351 'revert':287 'review':14,18,36,77,161 'review-thread':160 'rule':58,342 'run':81,111 'say':114 'scope':273 'see':147 'semant':199,218 'settings.json':253 'sha':164 'sha-cit':163 'shellcheck':265 'shfmt':266 'sign':41,210,400,404 'signatur':98 'skill':45 'skill-git-workflow' 'skill/plugin':121 'source-netresearch' 'squash':89 'stage':249 'stash':227 'strategi':8,208 'style':280 'submodul':230 'tag':350 'task':176 'test':283 'tested/verified/working':103 'thread':37,78,162,205,390 'topic-agent-skills' 'topic-ai-agent' 'topic-open-standard' 'trigger':181 'trunk':190 'trunk-bas':189 'type':274,292 'unless':90 'updat':377 'use':4,360,410 'user':91 'verif':24,417 'verifi':131 'version':50,200,353,372 'without':104 'workflow':3,44 'worktre':130,228","prices":[{"id":"71dacafb-a5d0-4cb5-a37e-dc36c11e2fed","listingId":"029da707-8e12-47e8-bdb8-4a85383118af","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"netresearch","category":"git-workflow-skill","install_from":"skills.sh"},"createdAt":"2026-04-19T00:41:19.863Z"}],"sources":[{"listingId":"029da707-8e12-47e8-bdb8-4a85383118af","source":"github","sourceId":"netresearch/git-workflow-skill/git-workflow","sourceUrl":"https://github.com/netresearch/git-workflow-skill/tree/main/skills/git-workflow","isPrimary":false,"firstSeenAt":"2026-04-19T00:41:19.863Z","lastSeenAt":"2026-04-22T13:03:29.876Z"}],"details":{"listingId":"029da707-8e12-47e8-bdb8-4a85383118af","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"netresearch","slug":"git-workflow","github":{"repo":"netresearch/git-workflow-skill","stars":13,"topics":["agent-skills","ai-agent","open-standard"],"license":"other","html_url":"https://github.com/netresearch/git-workflow-skill","pushed_at":"2026-04-22T10:53:25Z","description":"Agent Skill for Git workflow best practices - branching, commits, PR workflows | Claude Code compatible","skill_md_sha":"b65096c82c906b25e9760cf77ead1d7d698ac49c","skill_md_path":"skills/git-workflow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/netresearch/git-workflow-skill/tree/main/skills/git-workflow"},"layout":"multi","source":"github","category":"git-workflow-skill","frontmatter":{"name":"git-workflow","license":"(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0","description":"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, creating releases, integrating Git with CI/CD, setting up git hooks (lefthook, captainhook, husky, pre-commit), or debugging hook-install failures in git worktrees.","compatibility":"Requires git, gh CLI."},"skills_sh_url":"https://skills.sh/netresearch/git-workflow-skill/git-workflow"},"updatedAt":"2026-04-22T13:03:29.876Z"}}