ワンクリックで
ship
변경사항을 remote에 올리기 전 의도 단위 커밋, 검증, push를 수행할 때 사용한다.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
변경사항을 remote에 올리기 전 의도 단위 커밋, 검증, push를 수행할 때 사용한다.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
기존 user/project 메모리의 중복·노후 항목을 검토, 통합, 정리할 때 사용한다. 사용자 확인 없이 메모리를 삭제하지 않는다.
서브에이전트·스킬 사용 통계와 미사용 항목을 분석해 인사이트를 도출할 때 사용한다.
코딩·조사 작업을 별도 Picky Pickle에 위임할 때 사용한다. worktree 준비, 지침 작성, Pickle 생성·후속 관리를 수행한다.
Context7 CLI(`ctx7`)로 라이브러리·프레임워크 공식 문서와 API 예시를 조회할 때 사용한다.
새 기능, 큰 변경, 아키텍처 결정 전에 구현보다 설계를 먼저 확정할 때 사용한다.
장기·병렬·대규모 작업을 서브에이전트로 분해·실행·검증하거나 동적 workflow를 설계할 때 사용한다.
| name | ship |
| description | 변경사항을 remote에 올리기 전 의도 단위 커밋, 검증, push를 수행할 때 사용한다. |
| disable-model-invocation | false |
핵심은 3가지다.
기본 동작은 commit + verify + push다. PR 생성은 조건부 후처리다.
gh api를 우선 사용한다.gh api 또는 gh pr create를 사용한다./ship은 브랜치 이름 인자를 옵션으로 받을 수 있다.
main/base여도 묻지 않는다. 그대로 진행한다.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"
git status --short
git diff --stat
git diff --cached --stat
git remote -v
변경사항이 없거나 push 대상 remote가 불명확하면 중단한다.
git status
git diff --cached
git diff
git log --oneline -5
변경사항을 파일이 아니라 의도 기준으로 나눈다. 예: 의존성 업데이트 / 버그 수정 / 리팩터링 / 테스트 보강 / 문서 정리
아래면 단일 커밋 허용:
<type>: <한 줄 요약>
<선택: 1-2줄 설명>
feat / fix / chore / refactor / docs / test / style
push 전에는 가능하면 아래를 모두 실행한다.
package.json의 scripts.typecheckpackage.json의 scripts.checktsc --noEmitCargo.toml → cargo checkpackage.json의 scripts.lintMakefile의 lintCargo.toml → cargo clippy -- -D warningspackage.json의 scripts.testMakefile의 testCargo.toml → cargo testgo.mod → go test ./...pytest 설정 존재 → pytestpackage.json의 scripts.buildMakefile의 buildCargo.toml → cargo build다음은 조용히 통과시키지 않는다.
출력이 의심스러우면 계속/다른 명령/중단 중 하나를 AskUserQuestion으로 묻는다.
권장 순서:
typecheck → lint → test → build
원칙:
하나라도 실패하면 중단한다.
Ship blocked:
- failed check: <typecheck|lint|test|build>
- command: <실행한 명령>
- reason: <핵심 실패 요약>
허용:
금지:
git status
git log --oneline --decorate -5
push 전 최종 게이트:
하나라도 아니면 중단한다.
브랜치 인자를 받았다면 그 브랜치로 push한다. 없으면 현재 브랜치를 그대로 push한다.
git push -u origin "$(git branch --show-current)"
원칙:
git commit --amend 하지 않는다. 필요하면 새 커밋으로 추가한다.기본 결과:
✅ Shipped!
Branch: <current-branch>
Commits: <N>
Checks: typecheck / lint / test / build
Push: success
이 단계는 아래 경우에만 수행한다.
/ship에 PR 생성이 포함됨가능하면 gh api를 우선 사용한다.
gh api graphql -f query='query($owner:String!, $repo:String!, $headRefName:String!) { repository(owner:$owner, name:$repo) { pullRequests(states: OPEN, headRefName: $headRefName, first: 1) { nodes { url } } } }' -F owner='{owner}' -F repo='{repo}' -F headRefName='{branch}'
이미 PR이 있으면 PR: skipped (already exists) 로 기록한다.
gh apigh pr createPR까지 수행한 경우 결과에 아래를 추가한다.
PR: <url | skipped (already exists)>