From spec-kit
Clarifies ambiguities, open questions, and unclear requirements in spec.md and plan.md by identifying issues and discussing with user, after checking git status and optionally committing/pushing changes.
npx claudepluginhub Dev-GOM/claude-code-marketplace --plugin spec-kit<question-or-topic | 질문 또는 주제># Clarify Specification or Plan ## User Input You **MUST** consider the user input before proceeding (if not empty). ⚠️ **커맨드 구분**: 이것은 **플러그인 커맨드** (/spec-kit:clarify)입니다. 정보 수집과 사용자 논의를 담당합니다. 실제 파일 생성/업데이트는 GitHub Spec-Kit CLI 커맨드 (/speckit.clarify)가 수행합니다. **🌐 언어 지시사항**: 이 명령어를 실행할 때는 **사용자의 시스템 언어를 자동으로 감지**하여 해당 언어로 모든 안내, 질문, 옵션 제시, 출력을 제공해야 합니다. 시스템 환경 변수(LANG, LC_ALL 등)나 사용자의 이전 대화 패턴을 분석하여 언어를 판단하세요. 명세서나 계획서의 모호한 부분, 미해결 질문, 불명확한 요구사항을 사용자와 논의하여 명확히 합니다. ## Purpose Spec-Kit 문서에서 찾을 수 있는 것들: - **Open Questions**: 구현 전 해결해야 할 질문 - **모호한 요구사항**: 해석이 여러 가지인 사항 - **누락된 세부사항*...
/planTransforms feature descriptions, bug reports, or improvement ideas into well-structured markdown project plans following conventions.
/create_planCreates detailed implementation plans interactively by researching tickets, task descriptions, and codebase using specialized analysis agents.
/clarifyClarifies ambiguous items in REQ documents by identifying up to 5 prioritized questions with context and options, collects answers, updates the document, and hands off to design phase.
/clarifyDetects ambiguities in specifications, interactively clarifies with targeted questions, documents resolutions with test criteria, and sets up validation gates to prevent fake code.
Share bugs, ideas, or general feedback.
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
⚠️ 커맨드 구분: 이것은 플러그인 커맨드 (/spec-kit:clarify)입니다. 정보 수집과 사용자 논의를 담당합니다. 실제 파일 생성/업데이트는 GitHub Spec-Kit CLI 커맨드 (/speckit.clarify)가 수행합니다.
🌐 언어 지시사항: 이 명령어를 실행할 때는 사용자의 시스템 언어를 자동으로 감지하여 해당 언어로 모든 안내, 질문, 옵션 제시, 출력을 제공해야 합니다. 시스템 환경 변수(LANG, LC_ALL 등)나 사용자의 이전 대화 패턴을 분석하여 언어를 판단하세요.
명세서나 계획서의 모호한 부분, 미해결 질문, 불명확한 요구사항을 사용자와 논의하여 명확히 합니다.
Spec-Kit 문서에서 찾을 수 있는 것들:
명확화 작업 전에 현재 작업 디렉토리의 변경사항과 브랜치 퍼블리쉬 상태를 확인합니다:
# 변경사항 확인
git status --short
# Upstream 브랜치 확인 (퍼블리쉬 여부)
git rev-parse --abbrev-ref @{upstream} 2>/dev/null
즉시 Step 2로 이동
브랜치가 아직 원격에 퍼블리쉬되지 않은 상태에서 변경사항이 있는 경우:
AskUserQuestion 도구를 사용하여 사용자에게 확인:
{
"questions": [{
"question": "현재 작업 디렉토리에 변경되지 않은 파일이 있고, 브랜치가 아직 퍼블리쉬되지 않았습니다. 어떻게 처리하시겠습니까?",
"header": "Git 변경사항",
"multiSelect": false,
"options": [
{
"label": "퍼블리쉬 + 커밋",
"description": "현재 변경사항을 커밋하고 브랜치를 원격 저장소에 퍼블리쉬합니다. 팀과 공유하거나 백업이 필요한 경우 권장합니다."
},
{
"label": "로컬에만 커밋",
"description": "현재 변경사항을 커밋하지만 브랜치는 로컬에만 유지합니다. 아직 공유할 준비가 안 된 경우에 사용합니다."
},
{
"label": "나중에 결정",
"description": "명확화 작업을 진행하고 나중에 모든 변경사항을 함께 처리합니다."
}
]
}]
}
사용자 선택에 따라 진행:
git add -A && git commit -m "[메시지]"git push -u origin [브랜치명]git add -A && git commit -m "[메시지]"브랜치가 이미 원격에 퍼블리쉬된 상태에서 변경사항이 있는 경우:
AskUserQuestion 도구를 사용하여 사용자에게 확인:
{
"questions": [{
"question": "현재 작업 디렉토리에 변경되지 않은 파일이 있습니다. 먼저 커밋하시겠습니까?",
"header": "Git 변경사항",
"multiSelect": false,
"options": [
{
"label": "커밋하기",
"description": "현재 변경사항을 커밋하고 원격 브랜치에 푸쉬합니다. 작업을 명확하게 분리할 수 있습니다."
},
{
"label": "나중에 결정",
"description": "명확화 작업을 진행하고 나중에 모든 변경사항을 함께 커밋합니다."
}
]
}]
}
사용자 선택에 따라 진행:
git add -A && git commit -m "[메시지]"git push명세와 계획을 읽고 불명확한 부분 식별:
# 현재 브랜치 확인
CURRENT_BRANCH=$(git branch --show-current)
# 명세와 계획 읽기
cat "specs/$CURRENT_BRANCH/spec.md"
cat "specs/$CURRENT_BRANCH/plan.md"
다음을 찾기:
발견한 모호한 사항을 리스트로 정리한 후, AskUserQuestion 도구를 사용하여 사용자에게 선택하도록 합니다:
발견된 이슈 예시:
다음 사항들이 명확하지 않습니다:
1. [명세] - 인증 방식
Issue: OAuth2 vs JWT 중 어떤 것을 사용할지 미결정
2. [계획] - 데이터베이스 선택
Issue: PostgreSQL vs MongoDB 선택 필요
3. [명세] - 성능 기준
Issue: "빠른 응답 시간"이 구체적이지 않음
AskUserQuestion으로 선택:
{
"questions": [{
"question": "명확하지 않은 사항들을 발견했습니다. 어떤 것부터 명확히 하시겠습니까?",
"header": "명확화 우선순위",
"multiSelect": false,
"options": [
{
"label": "[명세] 인증 방식 (OAuth2 vs JWT)",
"description": "사용자 인증 방법을 결정해야 합니다. 보안 요구사항과 사용자 경험에 영향을 미칩니다."
},
{
"label": "[계획] 데이터베이스 선택",
"description": "PostgreSQL vs MongoDB 중 선택이 필요합니다. 데이터 구조와 쿼리 패턴에 영향을 미칩니다."
},
{
"label": "[명세] 성능 기준 구체화",
"description": "\"빠른 응답 시간\"을 구체적인 숫자로 정의해야 합니다."
},
{
"label": "모든 이슈를 순서대로 처리",
"description": "위에서부터 순서대로 모든 이슈를 명확히 합니다."
}
]
}]
}
참고: 실제로는 발견된 이슈에 맞춰 options를 동적으로 생성해야 합니다.
각 이슈에 대해:
먼저 현재 브랜치의 drafts 디렉토리가 있는지 확인하고 없으면 생성:
mkdir -p "specs/$CURRENT_BRANCH/drafts"
Write 도구를 사용하여 수집된 정보를 specs/$CURRENT_BRANCH/drafts/clarify-draft.md 파일로 저장합니다:
# Clarify Draft
## Resolved Issues
### Issue 1: [명세/계획] - [섹션명]
**Original (모호함)**: [원래 모호했던 내용]
**Resolution (명확함)**: [Step 4에서 명확해진 내용]
**Rationale**: [이렇게 결정한 이유]
**Impact**: [다른 부분에 미치는 영향]
### Issue 2: [명세/계획] - [섹션명]
[Step 2-4에서 해결한 다른 이슈들...]
## Affected Sections
### specification.md
- [섹션명]: [변경 내용]
### plan.md
- [섹션명]: [변경 내용]
## Open Questions to Remove
[Step 4에서 해결된 Open Questions 목록...]
## New Acceptance Criteria
[Step 4에서 추가된 명확한 수용 기준들...]
## Technical Decisions
[Step 4에서 결정된 기술적 선택사항들...]
⚠️ CRITICAL - MUST USE SLASHCOMMAND TOOL:
You MUST now use the SlashCommand tool to execute the /speckit.clarify command. This is a required step - do not skip it!
Call the SlashCommand tool with the following command parameter (replace $CURRENT_BRANCH with the actual branch name):
/speckit.clarify specs/$CURRENT_BRANCH/drafts/clarify-draft.md INSTRUCTION: Read draft at path above. Draft contains ALL resolved issues with clear resolutions and rationales. Skip identification and discussion steps (Step 2-4) and proceed directly to updating spec.md and plan.md files. **CRITICAL - MUST FOLLOW:** 1. LANGUAGE: Process ALL content in user's system language. 2. ASKUSERQUESTION: Use AskUserQuestion tool if clarification needed. 3. FILE UPDATE: Remove resolved Open Questions, Add clear requirements, Add specific acceptance criteria, Remove resolved Open Technical Questions, Reflect technical decisions, Record changes in changelog.
The spec-kit command will read the draft file and update spec.md and plan.md files.
토큰 절약 효과:
Before (모호함):
사용자가 사진을 빠르게 업로드할 수 있어야 한다.
Questions:
After (명확함):
사용자가 한 번에 최대 100장의 사진을 업로드할 수 있어야 한다.
- 각 사진은 20MB 이하
- 업로드 시간: 10MB당 < 2초 (평균 브로드밴드)
- 진행률 바와 현재/총 카운트 표시
- 실패한 사진은 재시도 옵션 제공
명확화 후:
specs/$CURRENT_BRANCH/spec.md 및 plan.md 파일 업데이트 확인/spec-kit:specify/spec-kit:plan/spec-kit:tasks/spec-kit:implementAskUserQuestion 도구를 사용하여 사용자에게 다음 작업을 물어봅니다:
{
"questions": [{
"question": "명확화 작업이 완료되었습니다. 다음 단계로 무엇을 진행하시겠습니까?",
"header": "다음 단계",
"multiSelect": false,
"options": [
{
"label": "명세 업데이트 (/spec-kit:specify)",
"description": "명확화된 내용을 반영하여 명세를 업데이트합니다."
},
{
"label": "기술 구현 계획 작성 (/spec-kit:plan)",
"description": "명세가 충분히 명확하다면 기술 구현 계획을 수립합니다. (권장 다음 단계)"
},
{
"label": "작업 분해 (/spec-kit:tasks)",
"description": "계획이 이미 있다면 작업 목록을 생성합니다."
},
{
"label": "업데이트된 파일 검토",
"description": "변경된 spec.md 또는 plan.md 파일을 검토하고 싶습니다."
},
{
"label": "다른 명령어 실행",
"description": "위 선택지에 없는 다른 spec-kit 명령어를 직접 입력하여 실행합니다."
},
{
"label": "작업 완료",
"description": "지금은 여기까지만 작업하겠습니다."
}
]
}]
}
사용자 선택에 따라:
/spec-kit:specify 명령 실행 안내/spec-kit:plan 명령 실행 안내/spec-kit:tasks 명령 실행 안내참고: