You are helping the user ship their changes: validate, commit (if needed), push, and create a pull request.
Automates the complete ship workflow: validates, commits, pushes, and creates pull requests.
/plugin marketplace add pietgk/vivief/plugin install devac@viviefYou are helping the user ship their changes: validate, commit (if needed), push, and create a pull request.
This workflow uses deterministic CLI commands for validation and structured data, while you handle reasoning and drafting.
devac workflow prepare-ship --json
This returns:
ready: Whether ready to ship (no blockers)blockers: Any blocking issuessuggestions: Non-blocking recommendationsbranch: Current branch namedefaultBranch: Target branch (main/master)isDefaultBranch: Whether on default branch (blocker if true)hasUncommittedChanges: Whether there are uncommitted changesvalidation.typecheck.passed: Typecheck statusvalidation.lint.passed: Lint statusvalidation.test.passed: Test statusvalidation.build.passed: Build statuschangeset.needed: Whether changeset is requiredchangeset.exists: Whether changeset existsIf not ready: Present blockers to user and help resolve them.
If on default branch: User needs to create a feature branch first.
If hasUncommittedChanges is true:
Run the commit flow first:
devac workflow pre-commit --json
Then get diff context:
devac workflow diff-summary --staged --include-content --json
Draft and execute commit as in /devac:commit.
After handling any uncommitted changes, run documentation validation:
devac workflow check-docs --json
This returns:
ready: Whether documentation is in good stateissues: Array of documentation issues foundsuggestions: Non-blocking recommendationsadr.indexInSync: Whether ADR index matches files on diskadr.missingFromIndex: ADR files not listed in READMEadr.missingFromDisk: Index entries with no fileadr.formatIssues: ADRs missing required sectionspackageReadmes.packagesMissingReadme: Packages with src/ changes but no READMEchangedFiles, docsChanged, sourceChanged: Context for reasoningIf issues found:
Present issues clearly to user:
## Documentation Check
I found [N] documentation issues:
1. **[Issue Type]**
- [Details]
2. **[Issue Type]**
- [Details]
Then reason about documentation needs:
Based on the changes (from changedFiles and sourceChanged), analyze:
Present as suggestions:
**Suggestions based on your changes:**
- Consider updating docs/implementation/[relevant-doc].md
- The changes to [area] might warrant an ADR
Would you like to **fix** these first, or **proceed** anyway?
Soft block handling:
git push -u origin HEAD
devac workflow diff-summary --include-content --json
This returns all changes since the base branch, which you'll use to draft the PR description.
Using gh pr create:
gh pr create --title "type(scope): description" --body "$(cat <<'EOF'
## Summary
[1-3 bullet points summarizing changes]
## Changes
[List key changes by package/file]
## Test Plan
- [ ] Tests pass
- [ ] Manual testing completed
- [ ] Changeset included (if applicable)
---
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Provide:
User: /devac:ship
Claude: Let me run pre-ship validation...
[Runs: devac workflow prepare-ship --json]
✓ All validations passed
- Branch: feat/add-workflow-commands
- Typecheck: pass
- Lint: pass
- Tests: pass
- Build: pass
- Changeset: exists
⚠️ You have uncommitted changes. Let me commit them first...
[Runs commit flow]
Committed: feat(cli): add workflow commands
[Runs: devac workflow check-docs --json]
✓ Documentation check passed
- ADR index: in sync (22 ADRs)
- Package READMEs: all present
[Runs: git push -u origin HEAD]
Pushed to origin/feat/add-workflow-commands
[Runs: devac workflow diff-summary --include-content --json]
Creating PR...
[Runs: gh pr create]
✅ PR created: https://github.com/org/repo/pull/123
## Summary
- Branch: feat/add-workflow-commands
- Commits: 3
- Changeset: @pietgk/devac-cli (minor)
- PR: #123
Use /devac:ship when:
gh CLI for PR creation - ensure you're authenticated