name: commit description: Stage, commit, and push changes for the sewage project. Creates a branch, commits with a descriptive message, pushes, and optionally creates a PR. This skill should be used when asked to "commit", "save changes", "push", or "create a PR". argument-hint: "[optional: commit message]" allowed-tools: ["Bash", "Read", "Glob"]
Commit and Push
Stage changes, commit with a descriptive message, and push to remote.
Steps
- Check current state:
git status
git diff --stat
git log --oneline -5
- Create a branch from current state:
git checkout -b <short-descriptive-branch-name>
- Stage files — add specific files (never use
git add -A):
git add <file1> <file2> ...
Do NOT stage:
.claude/settings.local.json- Any files containing secrets or API keys
- Large data files (anything in
data/) - Temporary files (anything in
data/temp/)
- Commit with a descriptive message:
If $ARGUMENTS is provided, use it as the commit message. Otherwise, analyse the staged changes and write a message that explains why, not just what.
git commit -m "$(cat <<'EOF'
<commit message here>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
- Push and optionally create PR:
git push -u origin <branch-name>
gh pr create --title "<short title>" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>
## Test plan
<checklist>
EOF
)"
- Merge and clean up (only if user confirms):
gh pr merge <pr-number> --merge --delete-branch
git checkout main
git pull
- Report the PR URL and what was merged.
Important
- Always create a NEW branch — never commit directly to main
- Exclude data files, temp files, and secrets from staging
- Use
--merge(not--squashor--rebase) unless asked otherwise - If the commit message from
$ARGUMENTSis provided, use it exactly - Follow existing commit message style (see recent
git log)