From vthink-agent-toolkit
Ship staged changes — runs a conventions check, generates a commit message with ticket ID from branch name, commits, and pushes. Use when the user says "ship it", "commit and push", or "send it".
npx claudepluginhub vthinkdeveloper/vthink-agent-toolkit --plugin vthink-toolkitThis skill uses the workspace's default tool permissions.
This skill is your pre-commit quality gate + shipping workflow. It checks staged files against project conventions, generates a good commit message, commits, and pushes — all in one step.
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 is your pre-commit quality gate + shipping workflow. It checks staged files against project conventions, generates a good commit message, commits, and pushes — all in one step.
git status to see the current stategit diff --cached --name-only to get the list of staged filesgit diff --name-only to check for unstaged changesgit rev-parse --abbrev-ref HEAD to get the current branch nameRun a conventions check on the staged files only. This is a lightweight version focused on the files being committed.
2a. Discover project conventions:
Read these sources (skip any that don't exist):
CLAUDE.md in the project root — explicit architecture, patterns, coding conventions.eslintrc*, .prettierrc*, checkstyle.xml, .editorconfig, pom.xml2b. Analyze staged files:
For each staged file:
git diff --cached -- <file> to see what specifically changed2c. Report findings:
Present a concise report:
## Pre-commit Conventions Check
**Files:** <count> staged files checked
**Result:** <error-count> errors, <warning-count> warnings, <info-count> info
### Findings (if any)
| File | Severity | Rule | Line(s) | Finding | Fix |
|------|----------|------|---------|---------|-----|
| ... | Error | ... | ... | ... | ... |
/ship again when ready."4a. Extract ticket ID from branch name:
Parse the branch name for a ticket ID pattern like PROJ-1234 or FEAT-567:
[A-Z]+-\d+ (e.g., FEAT-1702 from FEAT-1702-bootstrap-migration)4b. Analyze changes for message:
git diff --cached to see the full staged diffgit log --oneline -5 to see recent commit message style4c. Draft the commit message:
$ARGUMENTS was provided, use that as the commit message (still prepend ticket ID)FEAT-1702: )Co-Authored-By: Claude <noreply@anthropic.com>4d. Show the commit message to the user and ask for approval using AskUserQuestion with options:
Run the commit using heredoc format:
git commit -m "$(cat <<'EOF'
TICKET-ID: Summary message here.
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
git rev-parse --abbrev-ref @{upstream} 2>/dev/null-u: git push -u origin <branch-name>git pushDisplay a final summary:
Shipped!
- Branch: <branch>
- Commit: <short-hash> <message>
- Pushed to: origin/<branch>
--no-verify.$ARGUMENTS as a commit message, still run the conventions check — the message override only skips message generation, not the quality gate.