claude-configs/commands/commit-push.md
Cal Corum a7b5c25766 Add SSH key instructions and commit-push command
- CLAUDE.md: Add SSH section with homelab/cloud key conventions
- Add commit-push command skill
- Update session memory script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:51:46 -06:00

2.3 KiB

Commit all staged/unstaged changes, push to remote, and optionally create a PR.

This command IS explicit approval to commit and push — no need to ask for confirmation.

Arguments: $ARGUMENTS

If $ARGUMENTS contains "pr", also create a pull request after pushing.

Steps

  1. Run git status to see what has changed (never use -uall)
  2. Run git diff to see staged and unstaged changes
  3. Run git log --oneline -5 to see recent commit style
  4. If there are no changes, say "Nothing to commit" and stop
  5. Determine the remote name and current branch:
    • Remote: use git remote (if multiple, prefer origin; for ~/.claude use homelab)
    • Branch: use git branch --show-current
  6. Stage all relevant changed files (prefer specific files over git add -A — avoid secrets, .env, credentials)
  7. Draft a concise commit message following the repo's existing style (focus on "why" not "what")
  8. Create the commit with Co-Authored-By: Claude <model> <noreply@anthropic.com> where <model> is the model currently in use (check your own model identity — e.g., Opus 4.6, Sonnet 4.5, Haiku 4.5)
  9. Push to the remote with -u flag: git push -u <remote> <branch>
  10. Confirm success with the commit hash

If pr argument is present

After pushing, create a pull request:

  1. Detect the hosting platform:
    • If remote URL contains github.com → use gh pr create
    • If remote URL contains git.manticorum.com or other Gitea host → use tea pulls create
  2. Determine the default branch: git symbolic-ref refs/remotes/<remote>/HEAD | sed 's|.*/||' (fallback to main)
  3. Run git log <default-branch>..HEAD --oneline to summarize all commits in the PR
  4. Create the PR:
    • GitHub: gh pr create --base <default-branch> --title "Title" --body "..."
    • Gitea: tea pulls create --head <branch> --base <default-branch> --title "Title" --description "..."
  5. Include a summary section and test plan in the PR body
  6. Return the PR URL

Important

  • This command IS explicit approval to commit, push, and (if requested) create a PR
  • Do NOT ask for confirmation — the user invoked this command intentionally
  • If push fails, show the error and suggest remediation
  • Never force push unless the user explicitly says to
  • If on main branch and pr is requested, warn that PRs are typically from feature branches