Skip to main content

goal-maker

/goal 명령에 사용할 condition 프롬프트를 5-7 인터뷰로 자동 생성. QJC 4-section 구조 (목적/조건/결과물/세부사항/세부 목적) + 앤트로픽 공식 권장 가드 5종 자동 주입 + stdout/클립보드/Desktop 파일 3-way 출력. 사용 시점 — /goal 프롬프트 작성 / "goal 프롬프트 만들어" / "/goal 명령 짤 거야" / 새 작업 시작 전 condition 설계. 직접 /goal 실행은 사용자가 새 세션에서 수행.

Zur Installation springen

Quellinformationen

Repository
sangrokjung/claude-goal-maker
Letzte Quellaktivität
28. Mai 2026 um 13:59
Erkannte Sprache von SKILL.md
Koreanisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
7 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
goal-maker
description
/goal 명령에 사용할 condition 프롬프트를 5-7 인터뷰로 자동 생성. QJC 4-section 구조 (목적/조건/결과물/세부사항/세부 목적) + 앤트로픽 공식 권장 가드 5종 자동 주입 + stdout/클립보드/Desktop 파일 3-way 출력. 사용 시점 — /goal 프롬프트 작성 / "goal 프롬프트 만들어" / "/goal 명령 짤 거야" / 새 작업 시작 전 condition 설계. 직접 /goal 실행은 사용자가 새 세션에서 수행.
# goal-maker — /goal Prompt Generator > 비유: 비행 계획서 작성 보조관이다. 조종사(사용자)가 매번 비행 계획서를 손으로 쓰지 않게, 인터뷰 7개 질문으로 핵심을 받아 표준 양식 + 안전 가드(연료/날씨/대체공항)를 자동으로 채워서 출력한다. ## 언제 호출되는가 다음 사용자 발화/맥락에서 호출: - `/goal-maker` 슬래시 커맨드 직접 입력 - `/goal-maker <한 줄 주제>` 시드 인자 입력 - `/goal-maker --quick` 또는 `/goal-maker --quick <주제>` — 3-question 모드 - "goal 프롬프트 만들어줘" / "/goal 짜줘" / "condition 작성 도와줘" - 새 큰 작업 시작 전 "이 작업을 /goal로 돌리려는데 프롬프트 작성" ## 절대 하지 말 것 (CRITICAL) - ❌ 생성한 프롬프트로 `/goal` 자체를 자동 호출 — 사용자가 새 세션에서 직접 실행 - ❌ Q4 "측정 기준" 답이 모호하면("잘 동작해야") 그대로 넘어가지 말 것 — 재질문 의무 (G2) - ❌ **proof channel 누락** — 측정 기준만 있고 "어떻게 transcript에 surface될지" 없으면 evaluator 평가 불가 (G6) - ❌ **turn limit 누락** — infinite loop 방지를 위해 명시 의무 (G7, default 20턴) - ❌ **외부 의존 항목 본문 혼입** — "사용자 시연 OK" / "인덱싱 완료" 같은 항목은 세션 외 분리 (G8) - ❌ 가드 8종 중 하나라도 누락 후 deliver.sh 호출 — `references/qjc-goal-guard-checklist.md` 12개 항목 통과 의무 - ❌ universal quantifier ("모두/끝까지/완전히") raw 그대로 출력 — G1 자동 변환 후에만 출력 ## 워크플로우 ### Phase 0 — 모드 결정 | 입력 | 행동 | |------|------| | `/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 값으로 자동 채움: - Q2 default: `(조건 미명시 — 사용자가 본 프롬프트 입력 시 추가 명시 권장)` - Q5 default: `테스트 완료 후 /handoff-verify /commit-push-pr --merge 까지 진행하라` - Q6 default: `궁극적으로 [Q1 주제]가 좋아져야 한다` - Q7 default: 없음 (skip) ### Phase 1 — 인터뷰 (`templates/interview-questions.json` 참조) **중요**: AskUserQuestion 도구로 한 번에 1-3개씩 묶어서 묻는다. brainstorming 룰의 "one at a time" 엄격성보다 사용자 시간 절약 우선. 단, Q4(측정 기준)는 다른 질문과 묶지 말고 단독으로 — 가장 중요하기 때문. **질문 묶음 권장**: - 1차: Q1 + Q2 + Q3 (목적/상황/결과물) - 2차: Q4 단독 (measurable signal) - 3차: Q5 + Q6 + Q7 (워크플로우/가치/제외) 각 질문 옵션은 multiple-choice 시도 (사용자가 빠르게 선택). 단 Q1, Q3, Q4는 자유 텍스트 입력 받아도 OK. #### Q1. 무엇을 이루고 싶나요? (한 줄) 사용자에게 단답(한 줄)로 묻는다. **이 답이 4-section의 `# 목적` 첫 bullet이 된다.** 가드 G1 적용: "모두/끝까지/모든/전부/완전히/완벽하게" 단어 감지 시 즉시 다음을 출력에 자동 적용: | 원어 | 변환 | |------|------| | "모두 처리하라" | "Claude 권한 내에서 가능한 모두 처리하라" | | "끝까지 진행" | "Claude 권한 내에서 끝까지 진행" | | "완전히 자동화" | "Claude가 실행 가능한 범위 내에서 완전히 자동화" | 사용자에게 변환 사실을 짧게 안내 후 진행. #### Q2. 현재 어떤 상황/제약이 있나요? (3-5 bullet) 복수 입력 OK. AskUserQuestion으로는 어려우니 자유 텍스트. 옵션 카드 (참고용): - 기술 부채 / 외주 의존 / 시간 제약 - 새로 시작 (greenfield) / 기존 코드 수정 (brownfield) - 고객/직원/외부 의존 항목 명시 #### Q3. 어떤 결과물이 나와야 끝난 건가요? (한 줄) `# 필수 결과물` 매핑. 옵션 예시 (multiple-choice): - "새로운 스킬 / 에이전트 / 커맨드" - "기존 파일 수정 (UI/API/DB)" - "리포트 / 분석 / 문서" - "검색 최적화 / 메타데이터 / 인프라" - 자유 입력 (Other) #### Q4. "성공"을 어떻게 측정하나요? **(가장 중요 — G2 강제)** 이 질문이 가드 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건+'" | **좋은 답 패턴** (그대로 사용): - "특정 테스트 N개 PASS" - "Lighthouse [축] ≥ [점수]" - "[URL] 페이지 [핵심 기능] 실행 검증" - "사용자에게 [산출물 경로] 시연 + OK 응답" - "스크린샷 N장 첨부 + 시각 검증" #### Q5. 워크플로우 끝맺음? `## 세부사항` 끝부분 매핑. multiple-choice 권장: - "테스트 완료 후 `/handoff-verify` → `/commit-push-pr --merge` (권장 풀-사이클)" - "테스트만 (`/handoff-verify` 까지)" - "테스트 + 직원 공유 (`dc push` 포함)" - "사용자 명시 stop point 까지 (예: '대표 검토 후 stop')" G4 적용: 위 옵션에서 `/handoff-verify` 또는 "테스트" 포함 시 자동 letter-vs-spirit guard 추가. #### Q6. 궁극적 비즈니스 가치는? `## 세부 목적` 매핑. 자유 텍스트. 예시 7개와 동일 톤: - "업무 효율과 성과가 좋아져야 한다" - "노출이 잘 되고 전환이 되어야 한다" - "광고 효율이 좋아져야 한다" - "슬라이드 퀄리티가 좋아야 한다" - "업무 프로세스가 좋아져야 한다" #### Q7. 범위 제외 항목? (옵션, skip 가능) `# 조건 및 상황` 추가 bullet 매핑 + G3 (scope guard) 강화. 자유 텍스트. 빈 입력이면 skip하되, G3는 default로 적용 (무관 리팩토링 금지). ### Phase 2 — 자동 가드 8종 적용 (CRITICAL) `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**: `## 세부사항`에 자동 추가: ```markdown - **턴 제한**: 최대 20턴 안에 condition 충족 또는 명시적 사용자 승인 요청 (turn count > 20 시 진행 중단 + 현 상태 사용자 보고) ``` 복잡한 작업은 사용자가 N을 조정 (Q5 응답에서 "최대 N턴" 명시 가능). **G8 — 세션 외 항목 분리**: 외부 의존 키워드 감지 시 자동으로 별도 섹션 분리: | 감지 키워드 | 분리 사유 | |-----------|----------| | "사용자 시연", "사용자 OK", "대표 검토" | 사용자 응답 의존 — Claude가 transcript로 충족 못 만듦 | | "직원이 호출", "다른 PC", "팀원 사용" | 다른 환경 의존 | | "ChatGPT 인용", "Perplexity 검색", "GSC 인덱싱" | 외부 API/플랫폼 지연 (N일+ 대기) | | "결제 완료", "송금 도착" | 외부 시스템 응답 | 자동 추가 구조: ```markdown ## 세부사항 ... ### 세션 외 검증 (Plan에 명시 후 사용자 위임) - {외부 의존 항목 1} - {외부 의존 항목 2} ``` 세션 내 항목과 분리되어, evaluator가 세션 내 항목만으로 condition 판단 가능. ### Phase 3 — 출력 (`scripts/deliver.sh` 호출) ```bash # 변수 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`가: 1. stdout 미리보기 출력 2. pbcopy로 클립보드 복사 3. `~/Desktop/goal-${TOPIC_SLUG}-${DATE}.txt` 저장 4. 사용 안내 출력 ### Phase 4 — 사용 안내 (마지막 메시지) ``` ✅ goal 프롬프트 생성 완료 📋 클립보드에 복사됨 📁 ~/Desktop/goal-<slug>-<date>.txt 💡 다음 단계: 1. 새 Claude Code 세션 시작 2. `/goal ` 입력 (뒤에 공백) 3. cmd+v 붙여넣기 4. Enter ⚠️ 알아둘 점: - 이 프롬프트는 Claude 권한 내 가능 범위에 맞춰 자동 보정됨 - session 한계 (시크릿 추출/외부 계정 발급 등)는 푸터에 명시됨 - 작업 도중 `/goal clear`로 언제든 종료 가능 ``` ## 출력 템플릿 (v2 — 가드 8종) `templates/4-section-base.md` 참조. 핵심 구조: ```markdown 아래 목적을 진행하여 테스트 성공까지 진행하라. 필요한 정보가 있다면 브레인스토밍하라. # 목적 - {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)**: - "측정 기준" 직후 **증명 채널** 라인 (G6) — Claude가 그 측정을 transcript에 surface하는 형식 명시 - **턴 제한** 라인 (G7) — default 20턴 - **세션 외 검증** 별도 섹션 (G8) — evaluator 평가 불가 항목 격리 → evaluator(default Haiku)가 매 턴 후 condition + transcript를 평가할 때, 측정 결과가 Claude 본문에 명시적으로 surface되어 binary yes/no 판단 가능. ## 사용자 발화 예시 ### 예시 1 — 기본 호출 ``` 사용자: /goal-maker Claude: [Q1+Q2+Q3 묶음 질문] 사용자: [답변] Claude: [Q4 단독 질문] 사용자: [답변] Claude: [Q5+Q6+Q7 묶음 질문] 사용자: [답변] Claude: [가드 5종 self-review → deliver.sh → 안내] ``` ### 예시 2 — 시드 인자 ``` 사용자: /goal-maker "랜딩 페이지 SEO/GEO/AEO 최적화" Claude: Q1을 "랜딩 페이지 SEO/GEO/AEO 최적화"로 자동 채웠습니다. Q2-Q7 진행합니다. [Q2+Q3 묶음 질문] ... ``` ### 예시 3 — Quick 모드 ``` 사용자: /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`](../../README.md) §"Why It Exists" | 4대 의무 도출 배경 (2026-05-22 사고 사례) | ## 비활성화 ```bash # 임시 비활성 — 스킬 무시 가능 export QJC_GOAL_MAKER_DISABLED=1 ``` 권장 안 함. /goal 자동 생성 없이 직접 작성하면 무한 cycle 사고(2026-05-22) 재발 위험. ## 사고 사례 학습 통합 본 스킬은 다음 사고로부터 학습됨: - 2026-05-22 `/goal "후속 작업 모두 직접 진행하라"` 무한 cycle (universal quantifier deadlock) - 처방 → G1, G5 도입
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen