"Create a git commit with an auto-generated conventional message from staged changes. Use for 'commit', 'save my work', or 'make a commit'. Does not push or open PRs; use `create-pr` for PR-only flow and `ship` for verify+push+merge."
Install
npx skillscat add gopherguides/gopher-ai/commit Install via the SkillsCat registry.
The commit skill creates a git commit with an automatically generated conventional commit message based on staged changes. It solves the need to quickly record work without manually writing messages, and should be used when a developer wants to save local changes as a commit, avoiding direct commits to the main branch.
Commit
Plugin Resource Resolution
<PLUGIN_ROOT> is notation. Replace it with a concrete absolute plugin root before every resource read or command:
- Codex: Start from the directory containing the absolute selected
SKILL.mdpath, then ascend two directories (skills/<name>-> plugin root). - Claude Code: Bind it to the injected
${CLAUDE_PLUGIN_ROOT}value.
Create a git commit with an auto-generated conventional commit message.
Before requesting decisions, read<PLUGIN_ROOT>/lib/driver-interaction.md and follow its
cross-platform capability-binding rules.
Usage
$go-workflow:commitSteps
Step 1: Gather Context
Run these commands to understand the current state:
git status
git diff HEAD
git branch --show-current
git remote show origin 2>/dev/null | grep 'HEAD branch' | sed 's/.*: //' || echo "main"
git log --oneline -10Step 2: Branch Protection
Check if you are on main, master, or the default branch:
DEFAULT_BRANCH=$(git remote show origin 2>/dev/null | grep 'HEAD branch' | sed 's/.*: //')
CURRENT=$(git branch --show-current)If $CURRENT is main, master, or matches the default branch:
WORKFLOW_RESULT=INCOMPLETE
WORKFLOW_REASON=default-branchStop without committing. Create or switch to a feature branch before invoking
this skill again; no driver may authorize a direct default-branch commit.
Step 3: Analyze Changes
Review the diff to understand what changed:
- What files were modified, added, or deleted
- The nature of the changes (new feature, bug fix, refactor, docs, test, etc.)
Step 4: Generate Commit Message
Follow the repository's commit style (check git log --oneline -10).
If the repo uses conventional commits:
<type>(<scope>): <subject>- Types:
feat,fix,docs,style,refactor,test,chore,perf - Subject: 50 chars max, imperative mood ("add" not "added"), no trailing period
- For complex changes, add a body explaining what and why (72-char line wrap)
Step 5: Stage and Commit
Stage only relevant files — do not stage secrets (.env, credentials, etc.):
git add <relevant-files>
git commit -m "<type>(<scope>): <subject>"If there are no changes to commit, inform the user and stop.