From vthink-agent-toolkit
Stage, commit, and push changes. Analyzes the diff, generates a Conventional Commits message, confirms with the user, then pushes. Use when the user says "commit and push", "push my changes", or invokes /commit-push.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vthink-agent-toolkit:commit-pushThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill handles the full commit-and-push workflow: stage changes, generate a meaningful commit message, get user approval on the message, commit, and push to the remote.
This skill handles the full commit-and-push workflow: stage changes, generate a meaningful commit message, get user approval on the message, commit, and push to the remote.
Run these commands in parallel to understand what needs to be committed:
git status — see staged, unstaged, and untracked files (never use -uall)git diff — see unstaged changesgit diff --cached — see already-staged changesgit log --oneline -5 — see recent commit style for message consistencygit branch --show-current — identify the current branchIf there are no changes (nothing staged, no modifications, no untracked files), inform the user and stop.
git add with specific file paths..env, credentials.json, *.key, *.pem). If such files appear, warn the user and skip them.git add -A or git add . — always add specific files by name.Analyze the staged diff (git diff --cached) and draft a commit message following the Conventional Commits specification (https://www.conventionalcommits.org/en/v1.0.0/).
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Choose the correct type based on the nature of the change:
| Type | When to use |
|---|---|
feat | A new feature (correlates with SemVer MINOR) |
fix | A bug fix (correlates with SemVer PATCH) |
docs | Documentation-only changes |
style | Formatting, whitespace, semicolons — no logic change |
refactor | Code restructuring without fixing a bug or adding a feature |
perf | Performance improvement |
test | Adding or updating tests |
build | Build system or external dependency changes |
ci | CI configuration changes |
chore | Maintenance tasks that don't modify src or tests |
If the change introduces a breaking change, indicate it with:
feat(api):, fix(auth):).token: value). Use - instead of spaces in multi-word tokens (e.g., Reviewed-By:).feat(api): add search endpoint for notes
Supports full-text search across note title and content.
Returns results sorted by relevance.
fix(db): prevent duplicate IDs on concurrent inserts
refactor: extract database queries into separate module
feat!: change API response format to envelope pattern
BREAKING CHANGE: all API responses now wrapped in { data, meta } envelope.
Clients using the flat response format must update their parsers.
docs: update README with new build instructions
Co-Authored-By: Claude <[email protected]>
This step is mandatory. Use the AskUserQuestion tool to present the proposed commit message and ask the user to approve or edit it.
Present it like this:
Do NOT proceed to commit without explicit user approval of the message.
Once the user approves (or provides an edited message):
git commit -m "$(cat <<'EOF'
<approved message here>
Co-Authored-By: Claude <[email protected]>
EOF
)"
--no-verify. Fix the issue if possible, re-stage, and create a NEW commit (never amend).After a successful commit:
git rev-parse --abbrev-ref @{upstream}git push -u origin <branch-name>git pushIf the push fails (e.g., rejected due to remote changes), inform the user and suggest next steps (pull + rebase, force push, etc.). Do NOT force-push without explicit user approval.
After a successful push, give a brief summary:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub vthinkdeveloper/vthink-agent-toolkit --plugin vthink-toolkit