Help us improve
Share bugs, ideas, or general feedback.
From claude-goal-maker
/goal 명령에 사용할 condition 프롬프트를 5-7 인터뷰로 자동 생성. QJC 4-section 구조 (목적/조건/결과물/세부사항/세부 목적) + 앤트로픽 공식 권장 가드 5종 자동 주입 + stdout/클립보드/Desktop 파일 3-way 출력. 사용 시점 — /goal 프롬프트 작성 / "goal 프롬프트 만들어" / "/goal 명령 짤 거야" / 새 작업 시작 전 condition 설계. 직접 /goal 실행은 사용자가 새 세션에서 수행.
npx claudepluginhub sangrokjung/claude-goal-makerHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-goal-maker:goal-makerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> 비유: 비행 계획서 작성 보조관이다. 조종사(사용자)가 매번 비행 계획서를 손으로 쓰지 않게, 인터뷰 7개 질문으로 핵심을 받아 표준 양식 + 안전 가드(연료/날씨/대체공항)를 자동으로 채워서 출력한다.
Applies 10 pre-set color/font themes or generates custom ones for slides, documents, reports, and HTML landing pages.
Share bugs, ideas, or general feedback.
비유: 비행 계획서 작성 보조관이다. 조종사(사용자)가 매번 비행 계획서를 손으로 쓰지 않게, 인터뷰 7개 질문으로 핵심을 받아 표준 양식 + 안전 가드(연료/날씨/대체공항)를 자동으로 채워서 출력한다.
다음 사용자 발화/맥락에서 호출:
/goal-maker 슬래시 커맨드 직접 입력/goal-maker <한 줄 주제> 시드 인자 입력/goal-maker --quick 또는 /goal-maker --quick <주제> — 3-question 모드/goal 자체를 자동 호출 — 사용자가 새 세션에서 직접 실행references/qjc-goal-guard-checklist.md 12개 항목 통과 의무| 입력 | 행동 |
|---|---|
/goal-maker (no args) | 풀 인터뷰 (Q1-Q7) |
/goal-maker "XYZ" | Q1 자동 채움 ("XYZ"), Q2-Q7 진행 |
/goal-maker --quick | Q1, Q3, Q4 (3-tap) |
/goal-maker --quick "XYZ" | Q3, Q4 (2-tap) |
--quick 모드는 Q2/Q5/Q6/Q7을 default 값으로 자동 채움:
(조건 미명시 — 사용자가 본 프롬프트 입력 시 추가 명시 권장)테스트 완료 후 /handoff-verify /commit-push-pr --merge 까지 진행하라궁극적으로 [Q1 주제]가 좋아져야 한다templates/interview-questions.json 참조)중요: AskUserQuestion 도구로 한 번에 1-3개씩 묶어서 묻는다. brainstorming 룰의 "one at a time" 엄격성보다 사용자 시간 절약 우선. 단, Q4(측정 기준)는 다른 질문과 묶지 말고 단독으로 — 가장 중요하기 때문.
질문 묶음 권장:
각 질문 옵션은 multiple-choice 시도 (사용자가 빠르게 선택). 단 Q1, Q3, Q4는 자유 텍스트 입력 받아도 OK.
사용자에게 단답(한 줄)로 묻는다. 이 답이 4-section의 # 목적 첫 bullet이 된다.
가드 G1 적용: "모두/끝까지/모든/전부/완전히/완벽하게" 단어 감지 시 즉시 다음을 출력에 자동 적용:
| 원어 | 변환 |
|---|---|
| "모두 처리하라" | "Claude 권한 내에서 가능한 모두 처리하라" |
| "끝까지 진행" | "Claude 권한 내에서 끝까지 진행" |
| "완전히 자동화" | "Claude가 실행 가능한 범위 내에서 완전히 자동화" |
사용자에게 변환 사실을 짧게 안내 후 진행.
복수 입력 OK. AskUserQuestion으로는 어려우니 자유 텍스트.
옵션 카드 (참고용):
# 필수 결과물 매핑.
옵션 예시 (multiple-choice):
이 질문이 가드 G2의 핵심. 단독 메시지로 질문.
모호한 답 거부 패턴:
| 거부 답변 | 재질문 |
|---|---|
| "잘 동작하면" | "검증 가능한 형태로 다시 — 예: unit test 12개 PASS / Lighthouse SEO ≥90 / 페이지 LCP ≤2.5s / gws calendar 6건 등록 확인" |
| "퍼펙트하게" | "Claude가 평가할 수 있는 binary 기준은? 예: 'Lighthouse a11y ≥95 (라이트+다크 양쪽)' / '8개 슬라이드 silent_clip=0'" |
| "좋아져야" | "어느 수치가 어떻게 바뀌어야? 예: 'CTR 베이스라인 +20%' / '월간 인입 리드 50건+'" |
좋은 답 패턴 (그대로 사용):
## 세부사항 끝부분 매핑. multiple-choice 권장:
/handoff-verify → /commit-push-pr --merge (권장 풀-사이클)"/handoff-verify 까지)"dc push 포함)"G4 적용: 위 옵션에서 /handoff-verify 또는 "테스트" 포함 시 자동 letter-vs-spirit guard 추가.
## 세부 목적 매핑. 자유 텍스트. 예시 7개와 동일 톤:
# 조건 및 상황 추가 bullet 매핑 + G3 (scope guard) 강화. 자유 텍스트.
빈 입력이면 skip하되, G3는 default로 적용 (무관 리팩토링 금지).
references/qjc-goal-guard-checklist.md 참조 + 본 워크플로우의 G1-G8 적용.
필수 검증 (출력 전 self-review):
[ ] G1: universal quantifier 0건 또는 보정 완료
[ ] G2: ## 세부사항 첫 줄 "**측정 기준**: <Q4 답변>" 존재
[ ] G3: ## 세부사항 끝에 "단, 본 작업 외 무관 리팩토링 금지" 존재
[ ] G4: Q5에 /handoff-verify 또는 테스트 → "테스트 카운트 감소 금지" 존재
[ ] G5: 출력 끝에 "_session 한계: ..._" 푸터 존재
[ ] G6: **증명 채널** — 측정 기준 직후 "Claude가 transcript에 출력할 형식" 명시 (CRITICAL, evaluator 평가 가능성 보장)
[ ] G7: **턴 제한** — "최대 N 턴 안에 완료 또는 명시적 사용자 승인" (default N=20)
[ ] G8: **세션 외 항목 분리** — 외부 의존(사용자 시연/인덱싱/다른 PC) 항목은 별도 섹션
[ ] Q1-Q7 모두 4-section에 정확히 매핑
[ ] 측정 기준이 binary 평가 가능 (LLM evaluator가 판단 가능)
[ ] 출력 길이 적절 (20-35줄)
[ ] 한국어 톤 유지 (영문 직역체 0)
G6 — Proof Channel (CRITICAL — 앤트로픽 공식 요구):
evaluator는 도구 호출 불가, conversation surface된 텍스트만 본다. 측정 기준만으론 부족 — Claude가 그 측정을 transcript에 어떻게 surface할지 명시해야 한다.
| Q4 측정 항목 | 자동 생성 증명 채널 |
|---|---|
| "unit test N개 PASS" | "본문에 `npm test` stdout 결과 첨부 — PASS N/N 카운트 명시" |
| "Lighthouse SEO ≥90" | "본문에 `Lighthouse 점수: SEO=NN/100, a11y=NN/100` 형식 출력" |
| "page LCP ≤ 2.5s" | "본문에 `LCP=N.Ns (target ≤ 2.5s)` 측정 결과 출력" |
| "PDF ≥ N쪽" | "본문에 `pdftotext -layout 결과: NN쪽` 카운트 출력" |
| "Supabase INSERT N건" | "본문에 `SELECT COUNT(*) FROM os_X WHERE created_at > '...' = N` 결과 출력" |
| "dc push 성공" | "본문에 `git push 결과: commit_hash, main 동기화 완료` 명시" |
| "build green" | "본문에 `npm run build exit code: 0` 명시" |
| "WCAG AA 위반 0" | "본문에 `axe-core 위반: light=0, dark=0` 출력" |
G7 — Turn Limit:
## 세부사항에 자동 추가:
- **턴 제한**: 최대 20턴 안에 condition 충족 또는 명시적 사용자 승인 요청 (turn count > 20 시 진행 중단 + 현 상태 사용자 보고)
복잡한 작업은 사용자가 N을 조정 (Q5 응답에서 "최대 N턴" 명시 가능).
G8 — 세션 외 항목 분리:
외부 의존 키워드 감지 시 자동으로 별도 섹션 분리:
| 감지 키워드 | 분리 사유 |
|---|---|
| "사용자 시연", "사용자 OK", "대표 검토" | 사용자 응답 의존 — Claude가 transcript로 충족 못 만듦 |
| "직원이 호출", "다른 PC", "팀원 사용" | 다른 환경 의존 |
| "ChatGPT 인용", "Perplexity 검색", "GSC 인덱싱" | 외부 API/플랫폼 지연 (N일+ 대기) |
| "결제 완료", "송금 도착" | 외부 시스템 응답 |
자동 추가 구조:
## 세부사항
...
### 세션 외 검증 (Plan에 명시 후 사용자 위임)
- {외부 의존 항목 1}
- {외부 의존 항목 2}
세션 내 항목과 분리되어, evaluator가 세션 내 항목만으로 condition 판단 가능.
scripts/deliver.sh 호출)# 변수
TOPIC_SLUG=$(echo "$Q1" | tr ' ' '-' | head -c 30)
DATE=$(date +%Y-%m-%d)
# 빌드한 프롬프트를 임시 파일에
TMP=$(mktemp)
cat > "$TMP" << 'PROMPT_END'
<위 인터뷰 결과 빌드한 4-section 프롬프트>
PROMPT_END
# deliver
bash "${CLAUDE_PLUGIN_ROOT}/skills/goal-maker/scripts/deliver.sh" "$TMP" "$TOPIC_SLUG" "$DATE"
deliver.sh가:
~/Desktop/goal-${TOPIC_SLUG}-${DATE}.txt 저장✅ goal 프롬프트 생성 완료
📋 클립보드에 복사됨
📁 ~/Desktop/goal-<slug>-<date>.txt
💡 다음 단계:
1. 새 Claude Code 세션 시작
2. `/goal ` 입력 (뒤에 공백)
3. cmd+v 붙여넣기
4. Enter
⚠️ 알아둘 점:
- 이 프롬프트는 Claude 권한 내 가능 범위에 맞춰 자동 보정됨
- session 한계 (시크릿 추출/외부 계정 발급 등)는 푸터에 명시됨
- 작업 도중 `/goal clear`로 언제든 종료 가능
templates/4-section-base.md 참조. 핵심 구조:
아래 목적을 진행하여 테스트 성공까지 진행하라. 필요한 정보가 있다면 브레인스토밍하라.
# 목적
- {Q1} ← G1 보정 적용
# 조건 및 상황
- {Q2 bullet 1}
- {Q2 bullet 2}
- {Q2 bullet N}
{Q7 있으면 추가}
# 필수 결과물
- {Q3}
## 세부사항
- **측정 기준**: {Q4} ← G2 필수
- **증명 채널** (Claude가 transcript에 surface할 형식): ← G6 CRITICAL
- {각 측정 항목별 출력 형식, 예: "npm test 결과 본문에 PASS N/N 출력"}
- **턴 제한**: 최대 20턴 안에 condition 충족 또는 명시적 사용자 승인 요청 ← G7
- {Q5 워크플로우} ← G4 자동 보강
- 테스트 통과를 위한 테스트 삭제 금지, 기존 테스트 카운트 유지 (G4 적용 시)
- 단, 본 작업 외 무관 리팩토링 / 의존성 업그레이드 / 다른 도메인 변경 금지 ← G3
### 세션 외 검증 (Plan에 명시 후 사용자 위임) ← G8 (해당 시)
- {외부 의존 항목 1}
- {외부 의존 항목 2}
## 세부 목적
- 궁극적으로 {Q6} 좋아져야 한다.
---
_session 한계: 시크릿 추출 / 외부 계정 신규 발급 / 사용자 명시 승인이 필요한 항목은 Claude 권한 밖이며, 해당 항목 발견 시 Plan에 명시 후 사용자 안내._ ← G5
핵심 변경 (v2):
→ evaluator(default Haiku)가 매 턴 후 condition + transcript를 평가할 때, 측정 결과가 Claude 본문에 명시적으로 surface되어 binary yes/no 판단 가능.
사용자: /goal-maker
Claude: [Q1+Q2+Q3 묶음 질문]
사용자: [답변]
Claude: [Q4 단독 질문]
사용자: [답변]
Claude: [Q5+Q6+Q7 묶음 질문]
사용자: [답변]
Claude: [가드 5종 self-review → deliver.sh → 안내]
사용자: /goal-maker "랜딩 페이지 SEO/GEO/AEO 최적화"
Claude: Q1을 "랜딩 페이지 SEO/GEO/AEO 최적화"로 자동 채웠습니다. Q2-Q7 진행합니다.
[Q2+Q3 묶음 질문]
...
사용자: /goal-maker --quick "/lecture 핸드아웃 자세하게"
Claude: Q3, Q4만 묻습니다 (Q1 자동, Q2/Q5/Q6/Q7 default).
[Q3 질문]
사용자: [답변]
[Q4 단독]
사용자: [답변]
Claude: [출력]
| 파일 | 용도 |
|---|---|
references/anthropic-goal-best-practices.md | 앤트로픽 공식 가이드 요약 (acceptance test, scope guard, turn limit) |
references/qjc-goal-guard-checklist.md | G1-G5 자동 가드 9개 체크리스트 |
references/example-prompts-7.md | 예시 7개 패턴 분석 |
templates/4-section-base.md | 기본 출력 템플릿 |
templates/interview-questions.json | 표준 7 질문 JSON |
scripts/deliver.sh | stdout + pbcopy + Desktop 저장 |
README.md §"Why It Exists" | 4대 의무 도출 배경 (2026-05-22 사고 사례) |
# 임시 비활성 — 스킬 무시 가능
export QJC_GOAL_MAKER_DISABLED=1
권장 안 함. /goal 자동 생성 없이 직접 작성하면 무한 cycle 사고(2026-05-22) 재발 위험.
본 스킬은 다음 사고로부터 학습됨:
/goal "후속 작업 모두 직접 진행하라" 무한 cycle (universal quantifier deadlock)
본 스킬 사용 중 다음 패턴 발견 시 즉시 룰 추가: