implement
Implement features based on PRD specifications. Trigger keywords: - Commands: "/implement", "구현해줘", "만들어줘", "바로 구현" - Natural language (바이브 코더 친화): - "코드…
Analyze changes, run quality gate, and auto-commit with PR-based workflow. Trigger on "/auto-commit", "git 푸시", "git push", "자동 커밋", "커밋해줘", "변경사항 커밋", "PR 올려줘", "PR 만들어줘", or when user asks to commit their work after completing a task.
> /plugin marketplace add wigtn/wigtn-plugins > /plugin install wigtn-plugins@wigtn-plugins
How it fires
How this command gets triggered: by you, by Claude, or both.
/auto-commitContext preview
What this command does when you run it.
Analyze changes, run quality gate, and auto-commit with PR-based workflow. Trigger on "/auto-commit", "git 푸시", "git push", "자동 커밋", "커밋해줘", "변경사항 커밋", "PR 올려줘", "PR 만들어줘", or when user asks to commit their work after completing a task.
description: Analyze changes, run quality gate, and auto-commit with PR-based workflow. Trigger on "/auto-commit", "git 푸시", "git push", "자동 커밋", "커밋해줘", "변경사항 커밋", "PR 올려줘", "PR 만들어줘", or when user asks to commit their work after completing a task.
작업 완료 후 변경사항을 분석하고, 품질 검사를 거쳐 피처 브랜치에 커밋하고 PR을 생성합니다.
| 이전 단계 | 현재 | 다음 단계 | |----------|------|----------| | `/implement` - 구현 완료 | `/auto-commit` - 품질 검사 & PR | `/review-pr` - 동료 리뷰 |
/auto-commit # 품질 검사 + 브랜치 생성 + PR (기본) /auto-commit --direct # main에 직접 커밋 (이전 방식) /auto-commit --no-push # 커밋만, 푸시/PR 안함 /auto-commit --no-review # 품질 검사 스킵 (권장하지 않음) /auto-commit --message "메시지" # 수동 메시지 지정 /auto-commit --branch "이름" # 브랜치명 직접 지정 /auto-commit --no-parallel-review # 순차 리뷰 강제 (병렬 비활성화) /auto-commit --draft # Draft PR로 생성
> **원칙**: 브랜치는 "작업 단위(feature/fix)" 당 1개만 생성한다. 무분별한 브랜치 생성을 방지한다.
1. **현재 피처 브랜치(main/master 아님)에 있음** → 먼저 Stale 검사 (`gh pr list --head <branch> --state all`):
2. **main/master에 있음** → 파이프라인 여부 판단:
| 상황 | 동작 | |------|------| | 피처 브랜치 + Open PR 존재 | 현재 브랜치 재사용 (PR에 커밋 추가) | | 피처 브랜치 + Merged/Closed PR ⚠️ | **Stale 처리** — origin/main에서 새 브랜치 분기, 변경사항 carry-over | | 피처 브랜치 + PR 없음 | 현재 브랜치 사용, 새 PR 생성 | | main에서 같은 feature 반복 호출 | 첫 호출 시 만든 open PR 브랜치 재사용 | | `--branch` 옵션으로 명시 | 해당 이름 사용 (이미 있고 stale이면 새로 분기) | | 이전 /implement에서 생성된 브랜치 | 해당 브랜치로 checkout (stale 검사 후) |
# 1. 현재 브랜치의 PR 상태 확인 (Stale 판정 핵심)
current_branch=$(git branch --show-current)
gh pr list --head "$current_branch" --state all --json number,state,title --limit 1
# state: OPEN→재사용 / MERGED·CLOSED→STALE(새 브랜치 필요) / 없음→새 PR 생성
# 2. 변경된 파일이 기존 open PR 브랜치와 겹치는지 확인
gh pr list --state open --json number,title,headRefName
# 3. PRD/PLAN(PLAN_{feature}.md, PRD.md)의 feature name과 매칭되는 브랜치 존재 여부 확인> **왜 필요한가**: GitHub에서 PR이 squash-merge / closed 처리되면, 같은 브랜치에 추가 push를 해도 자동으로 새 PR이 열리지 않는다. 같은 피처 브랜치를 계속 재사용하면 후속 커밋들이 어느 PR에도 보이지 않는 "orphan" 상태가 된다. 사용자 입장에선 "왜 PR이 안 뜨지?"가 되는 핵심 버그.
**감지:**
PR_STATE=$(gh pr list \ --head "$current_branch" \ --state all \ --json state \ --jq '.[0].state // empty' \ --limit 1) case "$PR_STATE" in MERGED|CLOSED) is_stale=true ;; *) is_stale=false ;; esac
**처리 절차 (자동, 사용자 확인 없이 안전한 경로 선택):**
if [ "$is_stale" = true ]; then
# 1. 사용자에게 알림 (안내만, 차단 아님)
echo "⚠️ Current branch '$current_branch' has a $PR_STATE PR (#$PR_NUMBER)."
echo " The branch is stale — pushing here will not reopen the PR."
echo " Creating a fresh branch from origin/main and carrying over your changes."
# 2. 변경사항 임시 stash (working tree 보존)
git stash push -u -m "auto-commit-stale-carryover-$(date +%s)"
# 3. 최신 main 동기화
git fetch origin
default_branch=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
# 4. 새 브랜치명 결정 (기존 이름에 -followup, 충돌 시 suffix 추가)
new_branch="${current_branch%-followup}-followup"
while git show-ref --verify --quiet "refs/heads/$new_branch"; do
new_branch="${new_branch}-$(date +%s | tail -c 4)"
done
# 5. origin/main 위에서 새 브랜치 생성
git checkout -b "$new_branch" "origin/$default_branch"
# 6. stash 적용 (변경사항 carry-over)
git stash pop
fi**경계 사례:**
| 커밋 타입 | 브랜치 접두사 | 예시 | |----------|-------------|------| | `feat` | `feat/` | `feat/user-auth` | | `fix` | `fix/` | `fix/login-error` | | `refactor` | `refactor/` | `refactor/api-cleanup` | | `docs` | `docs/` | `docs/api-guide` | | `test` | `test/` | `test/auth-coverage` | | `chore` | `chore/` | `chore/deps-update` |
**이름 생성 규칙:**
상태 조회는 스크립트가 한 번에 처리한다. **개별 `git`/`gh` 명령을 따로 실행하지 말 것.**
bash "${CLAUDE_PLUGIN_ROOT}/scripts/repo-state.sh"반환 JSON 필드:
| 필드 | 쓰임 | |---|---| | `branch` · `on_main` | 브랜치 판단 | | `staged_stat` · `unstaged_stat` | 변경 규모 | | `file_count` | 전체 변경 파일 수 (staged + unstaged + untracked) | | `changed_files` · `files_truncated` | 변경 파일 목록. 50개를 넘으면 잘리고 `files_truncated`가 true | | `staged_files` · `unstaged_files` · `untracked_files` | 스테이징 상태별 분류 | | `remotes` | remote 여러 개인지 | | `head_pr` | 현재 브랜치의 PR (Stale 검사) | | `stale_branch` | **머지/닫힌 PR이면 `true`** — 새 브랜치 분기 필요 | | `open_prs` | 다른 브랜치 재사용 판단용 | | `plan_files` | PRD/PLAN 경로 (feature name 추출) |
`git fetch origin`은 스크립트가 이미 실행한다. 파일 내용이 더 필요하면 그때 Read 한다.
**브랜치 판단:** 1. `--direct` → Direct 모드, 브랜치 판단 스킵 2. 피처 브랜치
One plugin. 11 agents. From idea to a verified commit.
Repo: wigtn/wigtn-plugins
Implement features based on PRD specifications. Trigger keywords: - Commands: "/implement", "구현해줘", "만들어줘", "바로 구현" - Natural language (바이브 코더 친화): - "코드…
Generate structured PRD documents from vague feature requests. Trigger keywords: - Commands: "/prd", "PRD 작성해줘", "기능 정의서", "요구사항 문서" - Natural language (바이브 코더…
`/prd` Phase 3에서 선택한 API 유형의 상세 템플릿. REST / GraphQL / gRPC / WebSocket / OpenAPI 템플릿과 로그인 API 예시를 담고 있다. 필요한 유형 섹션만 참고하여 PRD §5.1 API Specification을 작성한다.
GitHub PR을 터미널에서 리뷰합니다. PR diff를 분석하고, 코드 리뷰 점수를 매기고, 리뷰 코멘트를 남깁니다. Trigger on "/review-pr", "PR 리뷰해줘", "리뷰해줘", "PR 봐줘", "코드 리뷰", "review this PR".
Generate screen specifications (IA / User Flow / Screen Spec / Wireframe / Dev Handoff) from an existing PRD. Trigger keywords: - Commands: "/screen-spec",…