commit-push

Installation
SKILL.md

Commit and Push

Commit all local changes following Conventional Commits format and push to remote.

Step 1: Gather Context

Run these commands in parallel to understand the changes:

# See all untracked and modified files
git status

# See staged and unstaged changes
git diff
git diff --cached

# See recent commit messages for style reference
git log --oneline -10

Step 2: Analyze Changes

Review the changes and determine:

  • Type: What kind of change is this?

    • feat - New feature or capability
    • fix - Bug fix
    • docs - Documentation only
    • refactor - Code restructure without behavior change
    • test - Adding or updating tests
    • chore - Maintenance, dependency updates
    • perf - Performance improvement
    • ci - CI/CD changes
  • Scope: Which component is affected?

    • Examine the changed files and determine the appropriate scope
    • Use consistent scope names within the project (check git log for patterns)
    • (omit scope for cross-cutting changes)
  • Breaking: Does this break backward compatibility? If yes, add ! after scope.

Step 3: Write Commit Message

Format:

type(scope): description

[optional body explaining why, not what]

[optional footer with issue references]

Rules:

  • Use imperative mood: "add feature" not "added feature"
  • Keep first line under 72 characters
  • Focus on why in the body, the diff shows what
  • Reference issues: Closes #123 or Fixes #456

Step 4: Stage, Commit, and Push

# Stage all changes (or selectively stage)
git add -A

# Commit with message (use HEREDOC for multi-line)
git commit -m "$(cat <<'EOF'
type(scope): description

Optional body explaining the motivation.

Closes #123

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

# Push to remote
git push

Examples

# Simple feature
git commit -m "feat(api): add pagination support to list endpoints"

# Bug fix with body
git commit -m "$(cat <<'EOF'
fix(auth): handle token expiration during long requests

The previous implementation did not account for tokens expiring
during the processing of long-running requests.

Fixes #42

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

# Breaking change
git commit -m "$(cat <<'EOF'
feat!(api): change response format for user endpoints

BREAKING CHANGE: The `status` field is now an object with `state` and
`message` properties instead of a plain string.

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"

Step 5: Verify

After pushing, run git status to confirm the working tree is clean and the branch is up to date with remote.

Weekly Installs
16
GitHub Stars
56
First Seen
10 days ago