Git Workflow and Versioning
addyosmani/agent-skills
Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.
Plans commits and PRs as reviewable work units, keeping tests and docs with the code they cover and splitting large changes into chained PRs.
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commits --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/work-unit-commits .claude/skills/work-unit-commits && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .claude/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commitsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commits --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/work-unit-commits .agents/skills/work-unit-commits && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .agents/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commits --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/work-unit-commits .cursor/skills/work-unit-commits && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .cursor/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Gentleman-Programming/gentle-ai.git --path skills/work-unit-commits--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commits --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/work-unit-commits .gemini/skills/work-unit-commits && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .gemini/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commitsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/work-unit-commits .github/skills/work-unit-commits && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .github/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Gentleman-Programming/gentle-ai work-unit-commits --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/work-unit-commits .opencode/skills/work-unit-commits && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "work-unit-commits" agent skill from https://github.com/Gentleman-Programming/gentle-ai/tree/main/skills/work-unit-commits into .opencode/skills/work-unit-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "work-unit-commits", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
work-unit-commitsPlans commits and PRs as reviewable work units, keeping tests and docs with the code they cover and splitting large changes into chained PRs.
This skill guides what goes into each commit or PR. A commit should be one deliverable behavior, fix, migration or docs unit, not a layer such as models, then services, then tests. Tests stay in the same commit as the behavior they verify, docs travel with the user-visible change, and each commit should tell a story and could become a chained PR if the change grows.
A pre-commit checklist asks that the commit has one purpose, that the repo still makes sense with only that commit applied, that rollback is reasonable, that the focused test command and its exact result are recorded along with any runtime scenario, and that the message explains the outcome instead of listing files. When spec-driven tasks forecast a change over 400 lines, commits are grouped into chained PR slices before implementation starts. Messages follow the Conventional Commit style, and a table contrasts weak splits with better ones.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 81d2225. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Work-Unit Commits loads about 1.1k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 589 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Gentleman-Programming/gentle-ai at commit 81d2225, republished under its Apache-2.0 licence (© Gentleman-Programming). 589 words, ~1,137 tokens.
.claude/skills/work-unit-commits/SKILL.md (or your agent's skills folder).Load this skill when deciding what belongs in each commit or PR.
Use it for:
| Rule | Requirement |
|---|---|
| Commit by work unit | A commit represents a deliverable behavior, fix, migration, or docs unit. |
| Do not commit by file type | Avoid models, then services, then tests if none works alone. |
| Keep tests with code | Tests belong in the same commit as the behavior they verify. |
| Keep docs with the user-visible change | Docs belong with the feature or workflow they explain. |
| Tell a story | A reviewer should understand why each commit exists from its diff and message. |
| Future PR-ready | Each commit should be a candidate chained PR when the change grows. |
| SDD workload guard | If SDD tasks forecast a >400-line change, group commits into chained PR slices before implementation. |
Before committing, confirm:
N/A explains why no runtime boundary exists.| Weak split | Better work-unit split |
|---|---|
add models | feat(auth): add token validation domain model and tests |
add services | feat(auth): wire token validation into login flow |
add tests | Tests included with each behavior commit |
update docs | Docs included with the user-facing change they explain |
Use work-unit commits as the foundation for chained PRs:
Organic Driven Development (ODD) closes every substantial task with a work-unit commit on the feature branch:
ask-on-risk, auto-chain, single-pr, exception-ok.>400 threshold. Exclude generated goldens from that authored count, but include every generated file in complete snapshot identity and receipt validation.Each ODD work unit should map cleanly to a commit or PR with:
Its implementation evidence MUST include:
N/A with reason.# Review the story before committing
git diff --stat
git diff --cached --stat
# Check recent commit style
git log --oneline -5© Gentleman-Programming, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/work-unit-commits of Gentleman-Programming/gentle-ai.
Open the folder on GitHubat commit 81d2225
Work-Unit Commits next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Work-Unit Commits this skillGentleman-Programming/gentle-ai | 7.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Git Workflow and Versioningaddyosmani/agent-skills | 102k | 2 repos | ~3.5k | Automated safety check: Notes | MIT | |
| React Router Pull Request Creatorremix-run/react-router | 57k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Emoji Commit ConventionsbaptisteArno/typebot.io | 11k | — | ~424 | Automated safety check: Pass | Custom licence | |
| Commit And PR Messagessuperplanehq/superplane | 7.7k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Draft Pull Request Creatorwordpress-mobile/WordPress-Android | 3.2k | — | ~881 | Automated safety check: Notes | GPL-2.0 |
addyosmani/agent-skills
Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.
remix-run/react-router
Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.
baptisteArno/typebot.io
Sets the repository's convention for commit messages and pull request titles: one emoji prefix for the main intent, a concise title and clean follow-up commits.
superplanehq/superplane
Write Git commit messages and pull request titles/descriptions using the Chris Beams / Tim Pope conventions (subject/body split, ~50-char subject, imperative mood, why-not-how body) plus ASD-STE100…
wordpress-mobile/WordPress-Android
Commits and pushes current changes, writes a pull request title and body from the branch history and template, and opens a draft PR on GitHub after you approve it.
codewhale-hq/Codewhale
Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.
Gentleman-Programming/gentle-ai
Drafts, creates, comments on and approves GitHub issues under strict rules: YAML Issue Forms, a duplicate search first, and guarded protected labels.
Gentleman-Programming/gentle-ai
Guides writing a new agent skill: when one is warranted, the required folder layout and frontmatter, section order and size limits, with a bundled style guide.
Gentleman-Programming/gentle-ai
Prepares pull requests for the Gentle AI project under an issue-first rule: a linked approved issue, one type label, a valid branch name and confirmed required CI.
Gentleman-Programming/gentle-ai
Trigger: Go tests, go test coverage, Bubbletea teatest, golden files.
Gentleman-Programming/gentle-ai
Trigger: a mapping need, parallel units, context backstop, high-risk verify, fresh review, or multi-step debug.
Gentleman-Programming/gentle-ai
Trigger: judgment day, dual review, adversarial review, juzgar.
Categories
Plans commits and PRs as reviewable work units, keeping tests and docs with the code they cover and splitting large changes into chained PRs. This skill guides what goes into each commit or PR. A commit should be one deliverable behavior, fix, migration or docs unit, not a layer such as models, then services, then tests.
Work-Unit Commits fits situations like: splitting a large feature into reviewable commits; preparing commits before opening a PR; turning a big change into chained or stacked PRs; keeping tests and docs in the same commit as the code they cover.
Run `npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a claude-code`. Or copy the skill folder (skills/work-unit-commits in Gentleman-Programming/gentle-ai) into .claude/skills/work-unit-commits in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a codex`. Or copy the skill folder (skills/work-unit-commits in Gentleman-Programming/gentle-ai) into .agents/skills/work-unit-commits in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Gentleman-Programming/gentle-ai --skill work-unit-commits -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/work-unit-commits, .gemini/skills/work-unit-commits, .github/skills/work-unit-commits and .opencode/skills/work-unit-commits in your project.
Going by SKILL.md and its folder, Work-Unit Commits needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Work-Unit Commits is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Work-Unit Commits: Git Workflow and Versioning (addyosmani/agent-skills, 102k stars), React Router Pull Request Creator (remix-run/react-router, 57k stars), Emoji Commit Conventions (baptisteArno/typebot.io, 11k stars) and Commit And PR Messages (superplanehq/superplane, 7.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Gentleman-Programming (a GitHub organization) maintains it in Gentleman-Programming/gentle-ai, which has 7,583 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.
Source: Gentleman-Programming/gentle-ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.