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.
npx claudepluginhub vthinkdeveloper/vthink-agent-toolkit --plugin vthink-toolkitThis skill uses the workspace's default tool permissions.
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.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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: