/meridian:ship — Commit + Push + PR
Ship completed work: commit staged changes, push to remote, create PR.
Arguments
--commit-only— Just commit, don't push or create PR--push-only— Push existing commits, create PR--no-pr— Push without creating PR--branch <name>— Override branch name
Procedure
Step 1: Check Git State
git status
git diff --stat
git log --oneline -5
Step 2: Verify Tests Pass
Run the project's test suite before shipping:
# Detect and run appropriate test command
uv run pytest tests/ # Python
# or: bun test # TypeScript
# or: cargo test # Rust
If tests fail, do NOT ship. Show failures and suggest /meridian:debug.
Step 3: Commit
Stage relevant files and commit with Meridian prefix:
git add <files>
git commit -m "[meridian] <descriptive message>"
Step 4: Push
git push -u origin <branch>
Step 5: Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<bullet points from completed plans>
## Changes
<files changed summary>
## Testing
<test results>
## Meridian Context
- Milestone: <milestone>
- Phase: <phase>
- Plans completed: <count>
---
Generated by Meridian
EOF
)"
Step 6: Record in State
Update plan commit SHAs and create checkpoint:
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
from scripts.db import connect, get_db_path
from scripts.state import create_checkpoint
conn = connect(get_db_path('.'))
create_checkpoint(conn, trigger='phase_complete', notes='Shipped to PR')
conn.close()
"
Step 7: Export State
PYTHONPATH=$MERIDIAN_HOME uv run --project $MERIDIAN_HOME -- python -c "
from scripts.export import export_state
export_state('.')
"