Skip to content
Agentmart
Submit a tool

ship

변경사항을 커밋하고 remote에 push할 때 사용한다.

Skill by Jonghakseo

IndexedMIT★ 15
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jonghakseo-ship

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

변경사항을 커밋하고 remote에 push할 때 사용한다.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ship

What's inside

Skill name
ship
Description
변경사항을 커밋하고 remote에 push할 때 사용한다.
License
MIT
Instructions
314 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# /ship — 커밋 정리 + 검증 + push

핵심은 3가지다.

1. 변경사항을 **의도 단위로 분리해 커밋**한다.
2. push 전에 **typecheck / lint / test / build**를 가능한 범위에서 모두 검증한다.
3. 검증이 통과하면 **push**한다.

기본 동작은 **commit + verify + push**다.
PR 생성은 **조건부 후처리**다.

## PR 관련 기본 규칙

- 이미 열린 PR이 있으면 **생성하지 않고 스킵**한다.
- **PR 템플릿이 있으면 사용**한다.
- **PR 생성 전용 스킬이 있으면 우선 사용**한다.
- GitHub 연동은 가능하면 **`gh api`를 우선 사용**한다.
- 전용 스킬이 없을 때만 필요에 따라 `gh api` 또는 `gh pr create`를 사용한다.

---

## 멈춰야 하는 경우

- 의도 단위로 나눠도 **독립적으로 유효한 커밋**을 만들 수 없음
- merge conflict 해소 불가
- 필수 검증(typecheck / lint / test / build) 실패
- push 권한/인증 문제
- 사용자 판단이 필요한 위험한 선택이 남아 있음

## 멈추지 않는 경우

- 미커밋 변경사항
- staged + unstaged 혼재
- 파일 수가 많음
- root 명령이 없는 monorepo
- base 브랜치 위에 있음
- 이미 PR이 열려 있음 (PR 생성만 스킵)

## 확인이 필요한 경우

- 검증 명령 자동 감지 실패
- 어떤 검증이 필수인지 불명확함

---

## Step 0: Pre-flight

### 브랜치 확인

`/ship`은 **브랜치 이름 인자를 옵션으로 받을 수 있다.**

- 인자가 있으면: 그 브랜치로 checkout/switch 해서 진행한다.
  - 없으면 새 브랜치를 만든다.
  - 있으면 그 브랜치를 그대로 사용한다.
- 인자가 없으면: **현재 브랜치에서 그대로** commit + push 한다.
- 현재 브랜치가 `main`/base여도 **묻지 않는다.** 그대로 진행한다.

```bash
TARGET_BRANCH="$ARGUMENTS"
CURRENT=$(git branch --show-current 2>/dev/null)
BASE=$(git remote show origin 2>/dev/null | sed -n '/HEAD branch/s/.*: //p' | head -1)
[ -n "$BASE" ] || BASE=main

if [ -n "$TARGET_BRANCH" ]; then
  if git show-ref --verify --quiet "refs/heads/$TARGET_BRANCH"; then
    git switch "$TARGET_BRANCH"
  else
    git switch -c "$TARGET_BRANCH"
  fi
fi

CURRENT=$(git branch --show-current 2>/dev/null)
echo "BRANCH: $CURRENT"
echo "BASE: $BASE"
```

### 변경사항 / remote 확인

```bash
git status --short
git diff --stat
git diff --cached --stat
git remote -v
```

변경사항이 없거나 push 대상 remote가 불명확하면 중단한다.

---

## Step 1: 의도 분석 + 커밋 계획

```bash
git status
git diff --cached
git diff
git log --oneline -5
```

변경사항을 파일이 아니라 **의도 기준**으로 나눈다.
예: 의존성 업데이트 / 버그 수정 / 리팩터링 / 테스트 보강 / 문서 정리

### 커밋 원칙

- 각 커밋은 **독립적으로 이해 가능**해야 한다.
- 각 커밋은 **독립적으로 통과 가능**해야 한다.
- 코드와 관련 테스트는 가급적 같은 커밋에 넣는다.
- 리팩터링과 기능 변경은 가능하면 분리한다.
- 대규모 포맷 변경은 의미 있는 변경과 분리한다.

### 단일 커밋 허용

아래면 단일 커밋 허용:
- 변경이 작음
- 의도가 하나뿐임
- 분리하면 오히려 맥락이 깨짐

### 커밋 메시지

```text

From Jonghakseo/my-pi, MIT.

More from Jonghakseo/my-pi

Signals

Stars
15
Forks
5
Open issues
0
Last commit (this folder)
Sep 30, 2026 (29 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Jonghakseo

Cite this page

ship skill. Agent Mart. https://agentmart.dev/skills/jonghakseo-ship (last updated 2026-10-24)