commit
Use when asked to commit changes, create a typed branch, format history for a changelog, or rewrite messages of HEAD or an unpushed range. Not for pushing or a PR: use commit-push-pr.
Install / Use
npx skills add OutlineDriven/outline-driven-development --skill commitInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of commit
commit scores 63/100 on our quality scale, 4015th of 4,599 Development & Engineering skills we index.
Its SKILL.md is 9.8 KB long, split into 6 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-09-04 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
commit compared with similar skills
All 4 of these similar skills score higher than commit; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| commit (this skill)by OutlineDriven | 63 | 0 | — | SKILL.md |
| Agent-Reachby Panniantong | 100 | 102.9k | 1d ago | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 102.7k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 66.0k | 5d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 45.2k | 6d ago | CLAUDE.md |
Frequently asked questions
- How do I install commit?
- Run
npx skills add OutlineDriven/outline-driven-development --skill commit. The install tabs above show the steps for each supported agent. - Which AI agents does commit work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is commit safe to use?
- It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is commit still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: commit description: 'Use when a user asks to commit or save staged or unstaged changes, create a typed branch, or format history for changelog generation. Each logical concern is committed with a conventional-commits message carrying SemVer effect and issue-closing footers. Not for rewriting existing commit messages; use commit-economy.'
Git commit
Contract
| Field | Bound contract |
|---|---|
| Trigger | User asks to commit or save staged or unstaged changes, create a typed branch, or format history for changelog generation. |
| Authority | Reversible local writes only: stage selected local files, create a local feature branch, and create local commits. Never push, publish, or mutate a remote. |
| Side effect | Local working tree, local index, local branch refs, and local commit objects. Rollback: git reset --hard <prior-HEAD> discards new commits; git branch -D <created-branch> removes a branch this skill created. |
| Done | Each logical concern is committed with a value-communicating message; git status confirms success; commit hashes and subjects are reported. History is parseable and auto-generates changelogs, SemVer bumps, and issue closes. |
Inputs
- Current working tree state (
git status,git diff HEAD): required, gathered by the skill. - Current branch and recent commit history (
git branch --show-current,git log --oneline -10): required, gathered by the skill. - Resolved remote default branch (
git rev-parse --abbrev-ref origin/HEAD): optional; falls back togh repo view --json defaultBranchRef --jq '.defaultBranchRef.name', then tomain. - Repo commit-message convention in already-loaded project instructions: optional; used directly without re-reading.
- An issue or tracker number, when one exists: optional; prefixed into the branch name and referenced in the commit footer.
- The target platform (GitHub or GitLab): required only when closing issues cross-repo or cross-project.
- User decision on creating a feature branch in detached HEAD state: required only when the repo is in detached HEAD.
Procedure
- Gather context: run
git status,git diff HEAD,git branch --show-current,git log --oneline -10, andgit rev-parse --abbrev-ref origin/HEAD 2>/dev/null || echo DEFAULT_BRANCH_UNRESOLVED. Strip theorigin/prefix from the default branch. If it returnedDEFAULT_BRANCH_UNRESOLVEDor bareHEAD, trygh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'; if that also fails, usemain. Done when: working tree state, branch, recent history, and default branch are known. - If
git statusshows a clean working tree (no staged, modified, or untracked files), report nothing to commit and stop. Done when: the working tree is confirmed clean and the skill stops, or changes are confirmed present. - If the current branch is empty, the repo is in detached HEAD. Ask whether to create a feature branch using the platform blocking question tool (
AskUserQuestionin Claude Code,request_user_inputin Codex,ask_questionin Antigravity,ask_userin Pi); fall back to chat only when no blocking tool exists or the call errors, never for an unloaded schema. If yes, derive a typed branch name (Step 5), rungit checkout -b <branch-name>, re-rungit branch --show-current, and use it for the rest of the workflow. If no, continue with the detached HEAD commit. Done when: the branch decision is made and the branch is confirmed. - Determine the commit message convention in priority order: (1) repo conventions in already-loaded project instructions, used directly; (2) a clear pattern in the recent commits from Step 1 (conventional commits, ticket prefixes, emoji); (3) the seven-rule style: capitalized imperative subject, 50 chars target and 72 hard, no trailing period, blank line, body wrapped at 72 explaining what and why, never how. If source (1) or (2) uses conventional commits, format the subject as
<type>(<scope>): <subject>(scope optional) and pick the most precise type from the allowed set with its SemVer effect:feat(MINOR),fix(PATCH),docs,test,build,ci,chore,style(formatting with no logic change),reforrefactor(refactoring with no behavior change),perf,meta(repository metadata),license,revert(none). Keep the subject ≤ 72 characters, imperative mood, no capital letter, no trailing period. Done when: the convention is determined and, if conventional, the type and SemVer effect are selected. - Name the branch
<type>/[issue-]<description>: lowercase, hyphens only, no special characters except/. Prefix the issue number when one exists (feat/42-user-authentication). Keep the description under 50 characters. Match the type to the work. Done when: the branch name is lowercase, hyphen-separated, typed, under 50 chars. - Determine logical commits. One concern per commit, where a concern is one reason the tree changed. Put two changes in the same commit only when reverting one without the other leaves the tree broken. Split by mechanism, not by file. When one file carries two mechanisms, write the filtered patch out of
git diff -- <file>, keep only the hunks for one mechanism, and stage it withgit apply --cached <patch>(confirm this headless form on the first real split, sincegit add -pneeds a TTY the agent lacks). A lint, format, or whitespace sweep is its own commit, never folded into a behavior change. Order commits so each leaves the tree building. A commit that only builds with its successor is not atomic, so merge the two or re-cut the split. Done when: commit groups are determined and ordered. - If the current branch is
main,master, or the resolved default branch, automatically create a feature branch first: derive the typed name from Step 5, rungit checkout -b <branch-name>, confirm withgit branch --show-current, and use it for the rest of the workflow. Do not ask; committing on the default branch is not an option here. Done when: a feature branch is created and confirmed, or the current branch is already a feature branch. - For each commit group, run the repo-native verification gate (type-checker and/or linter, whichever it defines) before staging that group. A failing group is not ready to commit. Skip silently if neither is configured. Done when: each group passes its gate or the failing group is named and skipped.
- Stage and commit each group in a single call. Prefer naming files over
git add -Aorgit add ., which can sweep in sensitive files (.env, credentials) or unrelated changes. Write the subject concise, imperative, why not what, per Step 4's convention; add a body only when a future reader would need motivation or trade-offs. Mark breaking changes with!after the type/scope or with aBREAKING CHANGE:footer so changelog tools detect the MAJOR bump; body-only descriptions are invisible to them. Forrevert, keep theThis reverts commit <hash>.line thatgit revertgenerates. Close issues from the commit footer using a case-insensitive keyword (close(s/d),fix(es/d),resolve(s/d)) followed by the reference. On GitHub:Closes #42,Closes owner/repo#99, orCloses #42, closes #43; triggers on merge to the default branch. On GitLab:Resolves #101,Closes group/project#42, orCloses #101, closes #102. To link an issue without closing it, useRefs #42(GitHub) orRefs #101(GitLab). Never include customer or organization names, user emails, support ticket contents, secrets, or PII. Never add a Claude signature, AI agent attribution, orCo-authored-bytrailer for Claude or any AI agent. Use a heredoc to preserve formatting:
git add file1 file2 file3 && git commit -m "$(cat <<'EOF'
feat: add first-class subject line here
Optional body explaining the change and why it was needed.
Closes #42
EOF
)"
Done when: each group is staged and committed with a value-communicating message.
10. Run git status after the commit to verify success. Report the commit hash(es) and subject line(s). Done when: git status confirms success and hashes and subjects are reported.
Failure and recovery
- Clean working tree: report nothing to commit and stop; no mutation occurs.
- Detached HEAD with no branch decision: stop and report that a branch is required to attach the work; no commit is created.
- Verification gate failure for a group: that group is not ready to commit; do not stage or commit it. Already-committed groups remain; uncommitted groups are left unstaged. Report which group failed and the gate output.
- Sensitive or unrelated file detected during staging: exclude it by naming files explicitly; never use
git add -Aorgit add .. - Non-conforming branch or commit name: do not create or amend it. Correct the name in place (rename the branch with
git branch -m, or rewrite the unpushed commit) and re-check against the format before proceeding. - Breaking change stated only in the body: add
!or aBREAKING CHANGE:footer; do not rely on body text. - Issue reference placed in the subject line: move it to the footer and re-verify the keyword and reference syntax for the target platform.
- Any mutation that has already been pushed: stop and surface the pushed ref rather than force-rewriting shared history.
- Partial result: groups already committed are real commits and remain; the blocked result names the uncommitted groups and the failure reason. Rollback for a created feature branch is
git branch -D <branch-name>; rollback for new commits isgit reset --hard <prior-HEAD>. - Never swallow a git error or report the done predicate when
git statusdoes not confirm success.
Output
Local commits (one per concern, each with a conventional-commits message carrying SemVer effect and issue-closing footers) on a typed local branch, plus a report of hash(es), subject line(s), and confirming git status. History is parseable so tooling can auto-generate changelogs, enforce SemVer bumps, and close referenced issues on merge to the default branch.
Related Skills
Agent-Reach
102.9kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
taste-skill
102.7kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
66.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
45.2kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
