Skip to content
Back to skills

Colin Commit And Push

ASecurity

Commit, push, and open/update a Github PR or GitLab MR (unless otherwise specified)

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
ai-agentsbashgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add colinmollenhour/dotfiles --skill colin-commit-and-push --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Colin Commit And Push?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Colin Commit And Push
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/colinmollenhour-colin-commit-and-push/badge)](https://www.skillsdirectory.com/skills/colinmollenhour-colin-commit-and-push)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: colin-commit-and-push
disable-model-invocation: true
description: Commit, push, and open/update a Github PR or GitLab MR (unless otherwise specified)
allowed-tools: Bash(git checkout --branch:*), Bash(git add:*), Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git branch:*), Bash(git remote:*), Bash(git push:*), Bash(git commit:*), Bash(gh pr create:*), Bash(gh pr comment:*), Bash(gh pr edit:*), Bash(glab mr create:*), Bash(glab mr note:*), Bash(glab mr update:*), Bash(gh pr view:*), Bash(glab mr view:*), Bash(head), Bash(git rev-parse:*), Bash(gh pr status:*), Bash(bun *), Bash(which *)
argument-hint: Special instructions
---

# Context

Gather the current state first. Run these in a single tool-turn batch:

```bash
git status
git diff HEAD --stat
git branch --show-current
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo None
git remote -v
git log -n 3
gh pr status 2>/dev/null || glab mr view 2>/dev/null | head -n 10 || true
```

# Your task

Based on that state and the context of this session:

1. Create a new branch if on main/master using `{task-id}_{Screaming-Kebab-Case-short-description}` when related to a task, else `{feature|bug|other}/{Screaming-Kebab-Case-short-description}`.
2. UNLESS instructed to push to main/master and IF the current remote tracking branch is main/master, then UNSET the upstream (`git branch --unset-upstream`) to avoid pushing the feature branch to main.
3. Stage files you created/modified/deleted. Do not add `PLANS-*.md`, `SPECS-*.md`, or pre-existing untracked plans unless specified.
4. Create a single commit with a message matching recent style (`git log -n 3`).
5. Push to `origin` unless a different remote is specified or already tracked. **Never push a feature branch to main.**
6. Write the PR/MR body and any commit note by loading `colin-mr-description` and following it. If the user or Special Instructions ask for a quick, fast, or simple PR/MR, skip that skill and write a short Summary and Test Plan instead.

   Open or update the hosted review item with the **ship script** (do **not** Skill-load full `glab-cli` / `gh-cli` for the happy path):

   **GitLab** (detect via `git remote`):
   ```bash
   # Write MR body and optional AI commit note to files first
   bun "${HOME}/.agents/skills/glab-cli/ship-mr.ts" \
     --title "<title>" \
     --description-file /abs/body.md \
     --note-file /abs/note.md   # omit if no note
   # If skill lives under ~/.claude/skills, use that path instead.
   ```
   Falls back: `bun "${HOME}/.claude/skills/glab-cli/ship-mr.ts" …` when agents path missing.

   **GitHub**:
   ```bash
   gh pr create --title "<title>" --body-file /abs/body.md
   # or if PR exists:
   gh pr comment --body-file /abs/note.md
   ```
   For full PR context later, use `gh-cli/pr-context.ts` — not needed for ship.

   - Unless told otherwise, create the PR/MR if none exists.
   - If one already exists, post a short commit note and refresh the description per `colin-mr-description`.
   - Load full `glab-cli` / `gh-cli` **only** if the ship script/API fails or you need inline discussions, uploads, or pagination edge cases.

7. `git status --short` after push.
8. Remind the user to request review (do **not** run these):
   - GitHub: `gh pr edit <PR_NUMBER> --add-reviewer username1,username2`
   - GitLab: `glab mr update <MR_IID> --reviewer username1,username2`

Do as much as possible in one tool-turn batch. Reply with a short list of what you did plus the review-request reminder.

# Special Instructions

$ARGUMENTS

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…