Agent skill
vc-ship
Automates git commit organization and history cleanup. Use when staging and organizing uncommitted changes into atomic commits, cleaning messy commit history, or formatting commit messages. Not for deciding what to do with a completed branch (use superpowers:finishing-a-development-branch for merge/PR/discard decisions).
Install this agent skill to your Project
npx add-skill https://github.com/philoserf/claude-code-setup/tree/main/skills/vc-ship
SKILL.md
Reference Files
- workflow-phases.md - Step-by-step phase instructions
- commit-format.md - Commit message formatting rules
- branch-protection.md - Protected branch detection (Phase 0 + Phase 6)
- phase-5-protocol.md - Pre-push quality review checklist
- rebase-guide.md - History cleanup with
git reset --soft - examples.md - Workflow examples (simple feature, bug fix, refactor, cleanup, PR)
Git Workflow Skill
Analyzes repository changes, organizes them into atomic commits with well-formatted messages, manages branches, cleans up commit history, and helps create pull requests.
Workflow Overview
| Phase | Goal | Key Actions | Reference |
|---|---|---|---|
| 0 | Branch Management | Block protected branches, suggest feature branch | branch-protection.md |
| 1 | Repo Analysis | Check status, diffs, detect conflicts, check branch freshness | workflow-phases.md |
| 2 | Organize Commits | Group related changes, create commit plan | workflow-phases.md |
| 3 | Create Commits | Stage files, format messages, execute commits | commit-format.md |
| 4 | History Cleanup | Squash/reword commits (optional, use git reset --soft) |
rebase-guide.md |
| 5 | Quality Review | Check message quality, offer tests (mandatory) | phase-5-protocol.md |
| 6 | Push | Block protected branches, confirm, push with -u |
branch-protection.md |
| 7 | Pull Request | Generate PR title/description, create via gh |
workflow-phases.md |
Key rules:
- Never use
git rebase -i(requires interactive input) — usegit reset --softinstead - Always block pushes to protected branches (main/master/develop/production/staging)
- Commit messages: imperative mood, ≤72 chars, explain WHY not WHAT
Edge Case Quick Reference
| Situation | Action |
|---|---|
| No changes | Inform user, exit gracefully |
| Untracked files | List, ask about inclusion, suggest .gitignore for secrets |
| Large changeset (10+ files) | Suggest splitting into multiple PRs |
| Detached HEAD | Alert user, offer to create branch |
| Merge conflicts | STOP, show files, guide resolution |
| No remote | Complete through Phase 5, skip push/PR |
| Protected branch | BLOCK, require feature branch |
| Rebase in progress | Alert, offer continue or abort |
| Symlinked files | Detect in Phase 1, exclude from commit plan, inform user |
| Stale branch base | Fetch origin, rebase onto origin/main if diverged |
| Bare git repo | Not supported — use the repo's wrapper command (e.g., dot) |
User Interaction Patterns
Use AskUserQuestion for: branch creation, commit plan approval, push confirmation, PR creation, force push warnings, protected branch warnings.
Use TaskCreate for: tracking multiple commits (3+), long workflows.
Use Bash for: all git and gh commands.
Key Workflow Patterns
- One logical change = one commit; don't mix unrelated changes
- Commits should build on each other (add new, migrate, remove old)
- Clean up messy history before pushing
- Include tests with the code they test
- Keep config changes separate unless tightly coupled
- Always branch per feature; never commit directly to main
When NOT to Use
- Simple single-file commits — direct
git add && git commitis faster - Amending the last commit — use
git commit --amenddirectly - Cherry-picking or reverting — use standard git workflows
- Resolving merge conflicts — user must resolve manually first
- Submodule operations — needs manual handling
For syncing your local repo, use vc-sync instead.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pre-release
Validates a project is ready to tag and ship. Use when tagging a release, cutting a version, shipping a package, or asking "are we ready to release?" Checks repo hygiene, CI status, docs, version sync, and build verification. Optimized for Obsidian plugins with fallback detection for other project types.
local-issues
Reviews a codebase for bugs, design issues, and code cleanliness problems with specific file paths and line numbers. Use when auditing code quality, finding bugs, doing a code review, finding problems, or reviewing a project for issues. Creates issue files in `.issues/` directory.
skill-improve
Generates prioritized improvement recommendations for Claude Code skills. Use when improving skills, enhancing customizations, or wanting actionable feedback on how to make a skill better. Provides impact/effort prioritization with specific fix suggestions.
release
Executes the final release workflow for Obsidian plugins after pre-release checks pass. Use when tagging a release, publishing a version, or shipping an Obsidian plugin. Bumps version via bun run script, creates git tag, pushes to trigger GitHub Actions, and updates GitHub release notes from CHANGELOG.md.
skill-quality
Scores Claude Code skills (1-5) across 6 weighted quality dimensions aligned with official Anthropic docs. Use when evaluating skill quality, rating skills, scoring customizations, comparing skill effectiveness, or checking if a skill follows best practices. Produces per-dimension scores with evidence, weighted totals, quality tier classification, and actionable improvement recommendations.
obsidian-cli
Interacts with Obsidian vaults using the Obsidian CLI to read, create, and manage notes, tasks, properties, tags, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, add to daily note, find notes about a topic, check tasks, append to a note, query the vault, list tags, list files, manage bookmarks, check sync status, view file history, use templates, query bases, run QuickAdd, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Didn't find tool you were looking for?