Agent skill
ship
Complete end-of-session workflow - verify work quality, organize commits, and track progress. Use at the end of a development session to ship cleanly.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/ship-cbemister-claude-code-utils
SKILL.md
Ship Skill
Complete end-of-session workflow: verify work, organize commits, and track progress.
When to Use
Invoke with /ship when you're done with a development session and want to:
- Verify code quality and security
- Create clean, organized commits from your changes
- Track progress in changelog and/or project roadmap
Instructions
Phase 0: Verify Work (Mandatory)
IMPORTANT: All code changes MUST pass verification before organizing commits.
-
Run comprehensive verification by invoking the verify-work skill:
- Security checks (secrets, SQL injection, XSS, validation, rate limits)
- Best practices (debug code, TypeScript, error handling)
- Efficiency (React hooks, re-renders, imports)
- Code standards (CSS Modules, API patterns, naming)
-
Review all findings presented by verification:
- 🔒 Security issues (BLOCKING)
- ⚠️ Best practice violations (BLOCKING)
- 💡 Efficiency issues (optimization recommendations)
- 📝 Code standard violations (BLOCKING)
-
Resolve all BLOCKING issues:
- Use 'fix all' to auto-fix available issues
- Manually fix issues that require code changes
- Re-run verification until all blocking issues are resolved
-
Cannot proceed to Phase 1 until:
- All security issues are resolved
- All best practice violations are fixed
- All code standard violations are corrected
- User has explicitly approved any remaining optimizations
-
Check if tests need updates:
- Search for existing tests related to changed files/functions
- If changing constants, limits, or config values, check test mocks and assertions
- If changing function signatures, check test function calls
- If changing API behavior, check API tests for expected responses
Common patterns to check:
tests/lib/*.test.tsfor library changes inlib/tests/config/*.test.tsfor config changes insrc/config/- Mock values (
mockResolvedValue,mockReturnValue) that simulate changed data - Assertions (
expect(x).toBe(y)) that verify changed values
Update any tests that would fail due to the code changes.
-
Run tests to ensure nothing is broken:
bashnpm test- If tests fail, fix the issues before proceeding
- All tests must pass to continue to Phase 1
This ensures code quality, security standards, and test coverage before any commit is made.
Phase 1: Organize Commits
-
Analyze Changes
bashgit status git diff --stat HEAD -
Group into Logical Commits Categorize by: feat, fix, refactor, style, docs, chore, test, perf
-
Present Commit Plan Show proposed groupings and ask for approval.
-
Execute Commits Create each commit with conventional commit messages.
Phase 2: Track Progress (Automatic)
After commits are created, automatically track progress:
Recording progress...
- Scanning commits for changelog/progress routing
- User-facing changes → changelog + progress
- Admin/test/refactor → progress only
✓ Changelog: 2026-02-01 - Feature Name (draft)
✓ Progress: Feature Name (3 items)
Done! Review changelog at /admin/changelog to publish.
How it works:
- Analyzes commit types and scopes to route automatically
feat,fix(user-facing) → changelog + progressfeat(admin),test,refactor→ progress only- Checks for duplicates before creating
- Creates changelog entries as drafts for review
- Progress entries are initiatives only (no individual action items) to keep the view focused
To skip tracking (rare): If you need to skip tracking for a specific session, say "skip tracking" when prompted. This should be rare - tracking helps maintain project visibility.
Quick Reference
| Phase | Action | Command/Tool |
|---|---|---|
| 0 | Verify work | /verify-work skill |
| 0 | Fix issues | Auto-fix or manual |
| 0 | Check test updates | Search tests/ for related tests |
| 0 | Run tests | npm test |
| 1 | Check changes | git status |
| 1 | Create commits | git add + git commit |
| 2 | Track progress | Automatic (uses commit data) |
Example Flow
User: /ship
Claude: I'll help you ship your changes. First, let me verify all code quality...
[Phase 0: Runs verification]
## Verification Results
### Best Practices [BLOCKING] - 2 found
- [ ] Debug Code - 3 console.logs in src/components/Dashboard.tsx
Auto-fix: Available
### Code Standards [BLOCKING] - 1 found
- [ ] API Pattern - Missing errorResponse helper in app/api/filters/route.ts
Auto-fix: Available
**Summary:** 3 blocking issues found
**Actions:** Type 'fix all' to auto-fix
User: fix all
Claude: Applying fixes...
- Removed 3 console.log statements
- Added errorResponse import and usage
Re-running verification... All checks passed!
Running tests...
✓ 45 tests passed
All tests passing!
[Phase 1: Analyzes changes]
I found 12 changed files across 3 categories:
1. feat(filters): Add active filter and counts (4 files)
2. fix(import): Include missing schema fields (1 file)
3. refactor(plan): Reorder tabs for workflow (1 file)
Does this grouping look right?
User: yes
Claude: Creating commits...
- Commit 1: feat(filters): add active filter and counts
- Commit 2: fix(import): include missing schema fields
- Commit 3: refactor(plan): reorder tabs for workflow
[Phase 2: Track Progress - Automatic]
Recording progress...
Analyzing commits:
★ feat(filters): add active filter and counts → changelog + progress
★ fix(import): include missing schema fields → changelog + progress
○ refactor(plan): reorder tabs for workflow → progress only
Creating entries...
✓ Changelog: 2026-01-13 - Add active filter and counts (draft)
✓ Progress: Add active filter and counts (1 item)
✓ Changelog: 2026-01-13 - Include missing schema fields (draft)
✓ Progress: Include missing schema fields (1 item)
✓ Progress: Reorder tabs for workflow (1 item)
Ship complete!
- 3 commits created
- 2 changelog entries (draft) - review at /admin/changelog
- 3 progress entries
Notes
- Phase 0 is mandatory - Cannot skip verification or tests
- Verification ensures code quality, security, and adherence to project standards
- Always check if tests need updates when changing constants, limits, config values, or function behavior
- All tests must pass before proceeding to commits
- Auto-fix available for common issues (console.logs, rate limiting, etc.)
- Manual fix required for complex issues (SQL injection, Zod schemas)
- If verification or tests fail, Phase 1 will not proceed until issues are resolved
/track-progresswrites directly to database - no manual import needed- Commits follow conventional commit format with Co-Authored-By
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?