/commit-push-pr
머지 전 /sync-docs 문서 동기화 의무 게이트 → 검증 → 커밋 & PR & 머지 + MCP 알림 (v7)
> /plugin marketplace add sangrokjung/claude-forge > /plugin install claude-forge@claude-forge
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/commit-push-pr
Context preview
What this command does when you run it.
머지 전 /sync-docs 문서 동기화 의무 게이트 → 검증 → 커밋 & PR & 머지 + MCP 알림 (v7)
Command definition
commit-push-pr.mdallowed-tools: Bash(git:*), Bash(gh:*), Bash(npm:*), Bash(python:*), Bash(go:*), Bash(cargo:*), Bash(make:*), Read, Grep, Glob, Edit, Write, Skill(sync-docs)
description: 머지 전 /sync-docs 문서 동기화 의무 게이트 → 검증 → 커밋 & PR & 머지 + MCP 알림 (v7)
argument-hint: "[커밋 메시지] [--merge|--squash|--rebase] [--draft] [--no-verify] [--no-checklist] [--skip-security] [--skip-sync-docs] [--notify]"
Task
0단계: Context 수집
git status --short
git branch --show-current
git rev-parse --abbrev-ref origin/HEAD 2>/dev/null | sed 's/origin\///' || echo "main"
git log --oneline -3
git diff --staged --stat 2>/dev/null || git diff --stat
git remote get-url origin 2>/dev/null
gh --version 2>/dev/null | head -1 || echo "not installed"
---
1단계: 인자 파싱
**$ARGUMENTS에서 옵션 추출:**
- `--merge` → 머지 모드: merge commit
- `--squash` → 머지 모드: squash merge
- `--rebase` → 머지 모드: rebase merge
- `--draft` → Draft PR (머지 옵션과 함께 사용 불가)
- `--no-verify` → 빌드/테스트 스킵
- `--no-checklist` → 머지 후 웹 체크리스트 생성 스킵
- `--skip-security` → 보안 사전 검증 스킵
- `--skip-sync-docs` → 문서 동기화 게이트 스킵 (긴급 hotfix 전용, v7 신규 — 머지 모드에서는 경고 출력)
- `--notify` → 머지 후 MCP 알림 발송 (v6 신규)
- 나머지 → 커밋 메시지
**`--draft`와 머지 옵션 동시 사용 시:**
--draft와 머지 옵션(--merge/--squash/--rebase)은 함께 사용할 수 없습니다.
Draft PR은 머지하지 않고 리뷰용으로 생성됩니다.
→ 중단
---
2단계: 사전 체크
**변경사항 없으면:**
커밋할 변경사항이 없습니다.
현재 상태:
- 브랜치: [브랜치명]
- 마지막 커밋: [커밋 메시지]
→ 중단
**main/master 브랜치면:**
main 브랜치에서 직접 커밋하려고 합니다.
권장: 브랜치 생성 후 작업
git checkout -b feature/[기능명]
옵션:
1. "브랜치 생성" - 새 브랜치 만들고 진행
2. "계속" - main에 직접 커밋 (PR 생략)
3. "취소" - 작업 중단
---
3단계: 빌드/테스트 검증
**`--no-verify` 있으면 스킵.**
프로젝트 타입별 검증:
| 파일 | 타입 | 검증 명령 | |------|------|----------| | package.json | Node.js | `npm run build && npm test` | | pyproject.toml / setup.py | Python | `python -m pytest` | | go.mod | Go | `go build ./... && go test ./...` | | Cargo.toml | Rust | `cargo build && cargo test` | | Makefile | Make | `make test` |
**실패 시:**
검증 실패
[에러 메시지]
해결 후 다시 시도하거나:
/commit-push-pr --no-verify
→ 중단
---
3.5단계: Merge Gate (자동 품질 관문)
커밋 전 아래 4개 조건을 **AND**로 검증한다. 하나라도 FAIL이면 커밋을 중단한다.
| 검증 항목 | 명령어 | FAIL 조건 | --no-verify 시 | |-----------|--------|-----------|---------------| | 빌드 | `npm run build` | exit code ≠ 0 | 스킵 가능 | | 테스트 | `npm test` | exit code ≠ 0 | 스킵 가능 | | 린트 | `npm run lint` | exit code ≠ 0 | 스킵 가능 | | 보안 스캔 | security-reviewer agent | CRITICAL 발견 | **스킵 불가** |
**게이트 실패 시 출력 형식:**
┌─────────────┬────────┬──────────────────┐
│ 검증 항목 │ 결과 │ 상세 │
├─────────────┼────────┼──────────────────┤
│ 빌드 │ PASS │ │
│ 테스트 │ FAIL │ 2 tests failed │
│ 린트 │ PASS │ │
│ 보안 스캔 │ PASS │ │
└─────────────┴────────┴──────────────────┘
❌ Merge Gate FAIL: 테스트 실패. 커밋을 중단합니다.
**규칙:**
- `--no-verify` 플래그가 있으면 빌드/테스트/린트는 스킵 가능
- 보안 스캔에서 CRITICAL이 발견되면 `--no-verify`여도 **반드시 차단**
- 모든 검증이 PASS면 다음 단계(4단계)로 진행
---
4단계: 보안 검증
> **머지 옵션이 있을 때만 실행.** PR만 생성하는 경우 스킵. > `--skip-security` 있으면 스킵 (경고 출력 후).
**`--skip-security` 사용 시:**
보안 검증을 건너뜁니다 (--skip-security)
머지 후 반드시 수동 보안 검토를 수행하세요.
→ 5단계로 진행
**보안 검증 실행:**
**4-1. 변경 파일 수집:**
git diff --cached --name-only 2>/dev/null || git diff --name-only
**4-2. 보안 민감 파일 자동 감지:**
다음 패턴에 해당하는 파일이 변경 목록에 있으면 보안 검증 **강제 실행** (--skip-security 무시):
| 패턴 | 영역 | |------|------| | `auth/*`, `**/auth/**` | 인증 | | `payment/*`, `**/payment/**` | 결제 | | `session/*`, `**/session/**` | 세션 | | `*secret*`, `*token*`, `*password*` | 시크릿 | | `middleware*`, `**/middleware/**` | 미들웨어 | | `.env*`, `*credentials*` | 환경변수/자격증명 | | `**/api/admin/**` | 관리자 API |
**4-3. 보안 스캔 항목:**
| 검사 항목 | 패턴 | 심각도 | |-----------|------|--------| | 하드코딩된 시크릿 | `sk-`, `pk_`, `AKIA`, `ghp_`, `password\s*=\s*["']` | CRITICAL | | SQL 인젝션 | 문자열 보간 SQL, `${}` in query | CRITICAL | | XSS 취약점 | `dangerouslySetInnerHTML`, `innerHTML =` | HIGH | | 민감 데이터 로깅 | `console.log.*password`, `console.log.*token` | HIGH | | 하드코딩 URL | `http://localhost` in production code | MEDIUM | | 취약한 의존성 | `package.json` 변경 시 known vulnerabilities | MEDIUM | | 인증 우회 | `auth.*skip`, `verify.*false`, `bypass` | HIGH | | CORS 설정 | `Access-Control-Allow-Origin: *` | MEDIUM |
**4-4. 결과 처리:**
**CRITICAL 발견 시 → 머지 차단:**
보안 검증 실패 - 머지 차단
─────────────────────────────────
CRITICAL 이슈 발견:
[파일:라인] [CWE-XXX] [설명]
수정 제안:
[구체적 수정 방법]
수정 후 다시 시도:
/commit-push-pr [원래 옵션들]
─────────────────────────────────
→ 중단
**HIGH/MEDIUM만 발견 시 → 경고 후 진행:**
보안 검증 완료 (경고 있음)
─────────────────────────────────
HIGH: [N]건
[파일:라인] [설명]
MEDIUM: [N]건
[파일:라인] [설명]
머지를 계속 진행합니다.
─────────────────────────────────
→ 5단계로 진행
**이슈 없음:**
보안 검증 통과
─────────────────────────────────
스캔 파일: [N]개
발견 이슈: 없음 (CWE scan clean)
─────────────────────────────────
→ 5단계로 진행
**보안 검증 결과 변수 저장:**
- `$SECURITY_STATUS` → "pass" | "warn" | "block"
- `$SECURITY_SUMMARY` → PR 본문에 포함할 요약 텍스트
---
4.5단계: /sync-docs 문서 동기화 게이트 (머지 전 의무, v7 CRITICAL)
> **머지 옵션(`--merge`/`--squash`/`--rebase`)이 있으면 이 단계는 의무다.** > 인라인 요약 갱신으로 대체 금지 — 반드시 **Skill 도구로 실제 `/sync-docs` 스킬을 실행**한다. > 사용자에게 되묻지 않고 자동 실행한다 (frontmatter `Skill(sync-docs)` 사전 승인).
**실행 규칙:**
| 모드 | 동작 | |------|------| | 머지 모드 (`--merge`/`--squash`/`--rebase`) | **`sync-docs` 의무 실행. 스킵 불가** (`--skip-sync-docs` 명시 시에만 경고 후 스킵 — 긴급 hotfix 전용) | | PR-only / `--draft` | `sync-docs` 기본 실행 (`--skip-sync-docs`로 스킵 가능) |
**실행 방법 (자동 — 사용자 확인 불필요):**
Skill 도구 호출: skill = "sync-docs"
`/sync-docs` v7.1이 수행하는 것: 1. `prompt_plan.md` → 완료 항목 체크 + 진행 상황 갱신 2. `spec.md` → 구현 기능/API/데이터 모델 반영 3. `CLAUDE.md` → 명령어/구조 변경 반영 (200줄 원칙) 4. `.claude/rules/` → glob 매핑 기반 규칙 동기화 5. 흩어진 파일 housekeeping scan (PII/시크릿 감지)
**게이트 규칙:**
- sync-docs가 변경한 문서는 5단계 `git add -A`로 **같은 커밋에 포함**한다 (별도 커밋 생성 금지)
- sync-docs housekeeping scan이 `alert`(PII/시크릿)를 반환하면 → **커밋/머지 중단** + `/save-work --apply` 안내
- `--skip-sync-docs` + 머지 모드 조합 시 경고 출력 후 진행:
⚠ 문서 동기화 게이트
Read more
allowed-tools: Bash(git:*), Bash(gh:*), Bash(npm:*), Bash(python:*), Bash(go:*), Bash(cargo:*), Bash(make:*), Read, Grep, Glob, Edit, Write, Skill(sync-docs) description: 머지 전 /sync-docs 문서 동기화 의무 게이트 → 검증 → 커밋 & PR & 머지 + MCP 알림 (v7) argument-hint: "[커밋 메시지] [--merge|--squash|--rebase] [--draft] [--no-verify] [--no-checklist] [--skip-security] [--skip-sync-docs] [--notify]"
Task
0단계: Context 수집
git status --short git branch --show-current git rev-parse --abbrev-ref origin/HEAD 2>/dev/null | sed 's/origin\///' || echo "main" git log --oneline -3 git diff --staged --stat 2>/dev/null || git diff --stat git remote get-url origin 2>/dev/null gh --version 2>/dev/null | head -1 || echo "not installed"
---
1단계: 인자 파싱
**$ARGUMENTS에서 옵션 추출:**
- `--merge` → 머지 모드: merge commit
- `--squash` → 머지 모드: squash merge
- `--rebase` → 머지 모드: rebase merge
- `--draft` → Draft PR (머지 옵션과 함께 사용 불가)
- `--no-verify` → 빌드/테스트 스킵
- `--no-checklist` → 머지 후 웹 체크리스트 생성 스킵
- `--skip-security` → 보안 사전 검증 스킵
- `--skip-sync-docs` → 문서 동기화 게이트 스킵 (긴급 hotfix 전용, v7 신규 — 머지 모드에서는 경고 출력)
- `--notify` → 머지 후 MCP 알림 발송 (v6 신규)
- 나머지 → 커밋 메시지
**`--draft`와 머지 옵션 동시 사용 시:**
--draft와 머지 옵션(--merge/--squash/--rebase)은 함께 사용할 수 없습니다. Draft PR은 머지하지 않고 리뷰용으로 생성됩니다.
→ 중단
---
2단계: 사전 체크
**변경사항 없으면:**
커밋할 변경사항이 없습니다. 현재 상태: - 브랜치: [브랜치명] - 마지막 커밋: [커밋 메시지]
→ 중단
**main/master 브랜치면:**
main 브랜치에서 직접 커밋하려고 합니다. 권장: 브랜치 생성 후 작업 git checkout -b feature/[기능명] 옵션: 1. "브랜치 생성" - 새 브랜치 만들고 진행 2. "계속" - main에 직접 커밋 (PR 생략) 3. "취소" - 작업 중단
---
3단계: 빌드/테스트 검증
**`--no-verify` 있으면 스킵.**
프로젝트 타입별 검증:
| 파일 | 타입 | 검증 명령 | |------|------|----------| | package.json | Node.js | `npm run build && npm test` | | pyproject.toml / setup.py | Python | `python -m pytest` | | go.mod | Go | `go build ./... && go test ./...` | | Cargo.toml | Rust | `cargo build && cargo test` | | Makefile | Make | `make test` |
**실패 시:**
검증 실패 [에러 메시지] 해결 후 다시 시도하거나: /commit-push-pr --no-verify
→ 중단
---
3.5단계: Merge Gate (자동 품질 관문)
커밋 전 아래 4개 조건을 **AND**로 검증한다. 하나라도 FAIL이면 커밋을 중단한다.
| 검증 항목 | 명령어 | FAIL 조건 | --no-verify 시 | |-----------|--------|-----------|---------------| | 빌드 | `npm run build` | exit code ≠ 0 | 스킵 가능 | | 테스트 | `npm test` | exit code ≠ 0 | 스킵 가능 | | 린트 | `npm run lint` | exit code ≠ 0 | 스킵 가능 | | 보안 스캔 | security-reviewer agent | CRITICAL 발견 | **스킵 불가** |
**게이트 실패 시 출력 형식:**
┌─────────────┬────────┬──────────────────┐ │ 검증 항목 │ 결과 │ 상세 │ ├─────────────┼────────┼──────────────────┤ │ 빌드 │ PASS │ │ │ 테스트 │ FAIL │ 2 tests failed │ │ 린트 │ PASS │ │ │ 보안 스캔 │ PASS │ │ └─────────────┴────────┴──────────────────┘ ❌ Merge Gate FAIL: 테스트 실패. 커밋을 중단합니다.
**규칙:**
- `--no-verify` 플래그가 있으면 빌드/테스트/린트는 스킵 가능
- 보안 스캔에서 CRITICAL이 발견되면 `--no-verify`여도 **반드시 차단**
- 모든 검증이 PASS면 다음 단계(4단계)로 진행
---
4단계: 보안 검증
> **머지 옵션이 있을 때만 실행.** PR만 생성하는 경우 스킵. > `--skip-security` 있으면 스킵 (경고 출력 후).
**`--skip-security` 사용 시:**
보안 검증을 건너뜁니다 (--skip-security) 머지 후 반드시 수동 보안 검토를 수행하세요.
→ 5단계로 진행
**보안 검증 실행:**
**4-1. 변경 파일 수집:**
git diff --cached --name-only 2>/dev/null || git diff --name-only
**4-2. 보안 민감 파일 자동 감지:**
다음 패턴에 해당하는 파일이 변경 목록에 있으면 보안 검증 **강제 실행** (--skip-security 무시):
| 패턴 | 영역 | |------|------| | `auth/*`, `**/auth/**` | 인증 | | `payment/*`, `**/payment/**` | 결제 | | `session/*`, `**/session/**` | 세션 | | `*secret*`, `*token*`, `*password*` | 시크릿 | | `middleware*`, `**/middleware/**` | 미들웨어 | | `.env*`, `*credentials*` | 환경변수/자격증명 | | `**/api/admin/**` | 관리자 API |
**4-3. 보안 스캔 항목:**
| 검사 항목 | 패턴 | 심각도 | |-----------|------|--------| | 하드코딩된 시크릿 | `sk-`, `pk_`, `AKIA`, `ghp_`, `password\s*=\s*["']` | CRITICAL | | SQL 인젝션 | 문자열 보간 SQL, `${}` in query | CRITICAL | | XSS 취약점 | `dangerouslySetInnerHTML`, `innerHTML =` | HIGH | | 민감 데이터 로깅 | `console.log.*password`, `console.log.*token` | HIGH | | 하드코딩 URL | `http://localhost` in production code | MEDIUM | | 취약한 의존성 | `package.json` 변경 시 known vulnerabilities | MEDIUM | | 인증 우회 | `auth.*skip`, `verify.*false`, `bypass` | HIGH | | CORS 설정 | `Access-Control-Allow-Origin: *` | MEDIUM |
**4-4. 결과 처리:**
**CRITICAL 발견 시 → 머지 차단:**
보안 검증 실패 - 머지 차단 ───────────────────────────────── CRITICAL 이슈 발견: [파일:라인] [CWE-XXX] [설명] 수정 제안: [구체적 수정 방법] 수정 후 다시 시도: /commit-push-pr [원래 옵션들] ─────────────────────────────────
→ 중단
**HIGH/MEDIUM만 발견 시 → 경고 후 진행:**
보안 검증 완료 (경고 있음) ───────────────────────────────── HIGH: [N]건 [파일:라인] [설명] MEDIUM: [N]건 [파일:라인] [설명] 머지를 계속 진행합니다. ─────────────────────────────────
→ 5단계로 진행
**이슈 없음:**
보안 검증 통과 ───────────────────────────────── 스캔 파일: [N]개 발견 이슈: 없음 (CWE scan clean) ─────────────────────────────────
→ 5단계로 진행
**보안 검증 결과 변수 저장:**
- `$SECURITY_STATUS` → "pass" | "warn" | "block"
- `$SECURITY_SUMMARY` → PR 본문에 포함할 요약 텍스트
---
4.5단계: /sync-docs 문서 동기화 게이트 (머지 전 의무, v7 CRITICAL)
> **머지 옵션(`--merge`/`--squash`/`--rebase`)이 있으면 이 단계는 의무다.** > 인라인 요약 갱신으로 대체 금지 — 반드시 **Skill 도구로 실제 `/sync-docs` 스킬을 실행**한다. > 사용자에게 되묻지 않고 자동 실행한다 (frontmatter `Skill(sync-docs)` 사전 승인).
**실행 규칙:**
| 모드 | 동작 | |------|------| | 머지 모드 (`--merge`/`--squash`/`--rebase`) | **`sync-docs` 의무 실행. 스킵 불가** (`--skip-sync-docs` 명시 시에만 경고 후 스킵 — 긴급 hotfix 전용) | | PR-only / `--draft` | `sync-docs` 기본 실행 (`--skip-sync-docs`로 스킵 가능) |
**실행 방법 (자동 — 사용자 확인 불필요):**
Skill 도구 호출: skill = "sync-docs"
`/sync-docs` v7.1이 수행하는 것: 1. `prompt_plan.md` → 완료 항목 체크 + 진행 상황 갱신 2. `spec.md` → 구현 기능/API/데이터 모델 반영 3. `CLAUDE.md` → 명령어/구조 변경 반영 (200줄 원칙) 4. `.claude/rules/` → glob 매핑 기반 규칙 동기화 5. 흩어진 파일 housekeeping scan (PII/시크릿 감지)
**게이트 규칙:**
- sync-docs가 변경한 문서는 5단계 `git add -A`로 **같은 커밋에 포함**한다 (별도 커밋 생성 금지)
- sync-docs housekeeping scan이 `alert`(PII/시크릿)를 반환하면 → **커밋/머지 중단** + `/save-work --apply` 안내
- `--skip-sync-docs` + 머지 모드 조합 시 경고 출력 후 진행:
⚠ 문서 동기화 게이트
Supercharge Claude Code with 11 AI agents, 36 commands & 15 skills — the claude-code plugin framework inspired by oh-my-zsh. 6-layer security hooks included. 5-min install.
Repo: sangrokjung/claude-forge
Other commands on claude-forge.
- /agent-router
전문 에이전트 자동 라우팅. 법률, 재무, 특허, SEO, 마케팅, 기획, BM 설계(BMC/Lean/JTBD/Wardley/Blue Ocean/Lightning Sprint), 코드리뷰, 아키텍처, 견적, CRM, HR/인사, 노무(노동법/해고/산재/취업규칙), 리서치, 데이터 분석, 제1원칙 사고, 주식 투자, 부동산 투자, 명리학, 회사운영(노란우산/창업혜택/고용지원/세무일정), 디자인 제작(배너/카드뉴스/SNS/광고/인포그래픽), FAQ/지식베이스(KCS/셀프서비스/아티클),
Open command - /auto
계획부터 PR까지 원버튼 자동 실행. 중간에 멈추지 않습니다.
Open command - /build-fix
빌드 에러를 자동으로 분석하고 수정합니다.
Open command - /checkpoint
작업 상태 저장/복원 (v6)
Open command - /code-review
방금 작성한 코드를 보안+품질 검사합니다.
Open command - /e2e
Generate and run end-to-end tests with Playwright. Creates test journeys, runs tests, captures screenshots/videos/traces, and uploads artifacts.
Open command

