Skip to content
Back to skills

Git Ship

ASecurity

Use this skill whenever the user wants to commit, push, or ship changes in a git repository. Triggers include: "commit changes", "push my changes", "ship it", "commit and push", "create a branch and commit", "make a PR", "open a pull request", "create draft PR", or any variation of committing/pushing work. Always use this skill when the user mentions committing — even casually — as it handles the full cycle: branch → add → commit → push → (optionally) PR, with Conventional Commits format and ...

  • 504 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsbashgit

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add epam/ai-dial-chat --skill git-ship --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Git Ship?

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

Security grade badge for Git Ship
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/epam-git-ship/badge)](https://www.skillsdirectory.com/skills/epam-git-ship)

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: git-ship
disable-model-invocation: true
model: claude-haiku-4-5-20251001
context: fork
effort: low
allowed-tools: Bash(git:*), Bash(gh:*), Bash(grep:*), Read, Edit(.agents/skills/git-ship/areas.md)
arguments: ticket area
argument-hint: '[ticket] [area]'
description: >
  Use this skill whenever the user wants to commit, push, or ship changes in a git repository.
  Triggers include: "commit changes", "push my changes", "ship it", "commit and push", "create a branch and commit",
  "make a PR", "open a pull request", "create draft PR", or any variation of committing/pushing work.
  Always use this skill when the user mentions committing — even casually — as it handles the full cycle:
  branch → add → commit → push → (optionally) PR, with Conventional Commits format and automatic area detection.
---

# Git Ship Skill

Full cycle for **ai-dial-chat**: checkout new branch from `development` → stage → commit
(Conventional Commits) → push → optional PR. Base branch is **`development`**.

Supporting files (read them when the step says so — don't inline everything up front):

- `.agents/skills/git-ship/areas.md` — how to resolve the commit `area` (scope) for this repo.
- `.agents/skills/git-ship/examples/commit-messages.md` — type table, message + branch examples.
- `.agents/skills/git-ship/examples/pr-body.md` — PR body template, rules, and `gh pr create` usage.

---

## Step 0 — Detect mode (new branch vs. update existing)

```bash
git rev-parse --abbrev-ref HEAD                 # current branch
gh pr view --json number,url,state 2>/dev/null  # open PR for current branch (if any)
```

- **New-branch mode** — current branch is `development` (or another base branch), or there's no
  PR for it. Run the full cycle: Steps 1–6.
- **Update-existing mode** — you're already on a feature branch **and** it has an open PR (or the
  user says "push to the existing PR" / "update my PR"). **Do not** create a new branch and **do
  not** run `gh pr create`. Stay on the current branch, then:
  1. Step 2 — review the changes.
  2. Step 4 — generate the commit message (reuse the existing PR's ticket; keep the same area/type).
  3. Step 5 — **skip the `git checkout` lines**; just `git add` → `git commit` → `git push`.
  4. Skip Step 6's `gh pr create`. Pushing updates the open PR automatically. Only refresh the body
     (`gh pr edit --body`) if the user asks or the description is stale/missing.
  5. Step 7 — report the existing PR link, not a new one.

---

## Step 1 — Gather required context

- **Ticket number** — use the `ticket` argument if passed. Else look in conversation context. If
  still not found, ask: _"What is the ticket number?"_
- **Area** — if the `area` argument is passed, use it directly in Step 3.
- **Draft PR?** — if the user said "draft", note it for Step 6.

> This skill runs in a forked context (`context: fork`), so it does **not** see the main
> conversation. Prefer passing arguments: `/git-ship 7432 catalog`.

---

## Step 2 — Understand the changes

```bash
git status
git diff HEAD
```

If there are no changes at all — report and stop.

---

## Step 3 — Determine `area`

If the `area` argument was given, use it. Otherwise **read
`.agents/skills/git-ship/areas.md`** and map the changed files to an area using its resolution
rules. If the resolved area is new, follow that file's append-only self-extend rules so the
taxonomy grows (the edit is staged in Step 5 and ships in the same commit).

---

## Step 4 — Generate commit message

Format: `<type>(<area>): <short description> (Issue #<ticket>)`.

**Read `.agents/skills/git-ship/examples/commit-messages.md`** for the type table, message
examples, and the branch-name rule. Analyze the diff to pick the most accurate type and write a
concise, imperative description. Breaking change → add `!` before the colon.

---

## Step 5 — Execute

```bash
# 1. Create branch from base (skip in update-existing mode)
git checkout development
git checkout -b <type>/<short-slug>

# 2. Stage all changes (includes any areas.md self-extend edit)
git add .

# 3. Commit
git commit -m "<type>(<area>): <description> (Issue #<ticket>)"

# 4. Push
git push origin <type>/<short-slug>
```

If push fails (no permissions, rejected, conflict) — **report the full output and stop**. Do not
force push or rebase automatically.

---

## Step 6 — Pull Request (if requested)

If the user requested a PR or draft PR, **read `.agents/skills/git-ship/examples/pr-body.md`** and
follow the repo PR template (`.github/pull_request_template.md`) — fill every placeholder, then run
the `gh pr create` command shown there with `--base development`.

---

## Step 7 — Summary

Always finish with a concise confirmation:

```
Branch:  <type>/<short-slug>
Commit:  <type>(<area>): <description> (Issue #<ticket>)
Push:    ✅ succeeded  /  ❌ failed — <reason>
PR:      <link> (created)  /  <link> (updated existing)  /  skipped
Area:    <area>  (note "added to taxonomy" if Step 3 self-extended areas.md)
```

Files in this skill

  • SKILL.md5 KB
  • areas.md5.8 KB
  • examples/commit-messages.md2.1 KB
  • examples/pr-body.md2.9 KB

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…