- Update all appkit slash commands to use local docs/ directory - Add .gitignore to exclude docs/ folder - Update example files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
12 KiB
12 KiB
description
| description |
|---|
| MVP 범위 정하기 - 최소한의 기능으로 최대한의 검증 + 랜딩페이지 생성 |
User Input
$ARGUMENTS
User input may contain constraints like "2-week validation", "budget: 500만원" etc.
Overview
논리적 사고 5단계 워크플로우:
1. /appkit.new → 아이디어 스케치 (어떤 서비스인지?)
2. /appkit.mvp → MVP 범위 정하기 + 랜딩페이지 ← YOU ARE HERE
3. /appkit.ui → 화면설계서 (라우터, 화면, 컴포넌트)
4. /appkit.policy → 정책설계서 (비즈니스 규칙)
5. /appkit.visualize → 목업 생성 (HTML 프로토타입)
출력 디렉토리: docs/
Purpose
핵심 가치만 구현하여 빠르게 시장 검증을 하기 위한 MVP 범위를 정의합니다. "있으면 좋은" 기능을 제외하고 "없으면 안되는" 기능만 선별합니다. 추가로, MVP 검증을 위한 랜딩페이지를 HTML로 생성합니다.
핵심 질문: "최소한으로 검증하려면 뭐가 필요할까?"
Pre-requisite
/appkit.new로 서비스 컨셉이 정의되어 있어야 함concept.md파일이 존재해야 함
Execution Flow
1. 기존 기획 읽기
Read files from docs/:
concept.md- 서비스 컨셉
2. MVP 정의 대화
Step 1: 핵심 가치 파악
## MVP 분석
### The ONE Thing Test
"만약 딱 하나의 기능만 만들 수 있다면?"
→ [핵심 기능 도출]
### 기능 분류
**Phase 0: Core MVP (2주)**
"없으면 서비스가 성립 안 되는 기능"
✅ Must Have (핵심):
- [기능 1]: [이유]
- [기능 2]: [이유]
❌ 제외할 것:
- [기능 A]: [Phase 1으로]
- [기능 B]: [Phase 2로]
**Phase 1: Enhanced MVP (1개월)**
"사용자 만족도를 높이는 기능"
- [기능 A]
- [기능 C]
**Phase 2: Growth (3개월)**
"성장과 확장을 위한 기능"
- [기능 B]
- [기능 D]
---
이 MVP 범위가 맞나요? 조정하고 싶은 부분이 있나요?
Step 2: 사용자 피드백
- "좋아", "Yes" → MVP 문서 + 랜딩페이지 생성
- 조정 요청 → 업데이트 후 재제시
3. MVP 문서 생성
File: docs/mvp-scope.md
# MVP Scope Definition
## Overview
- **서비스명**: [서비스명]
- **MVP 목표**: [목표 한 줄 정의]
- **검증 기간**: 2주
---
## Phase 0: Core MVP (2주)
### Must Have
| 기능 | 설명 | 우선순위 |
|------|------|----------|
| [기능1] | [설명] | P0 |
| [기능2] | [설명] | P0 |
### 구현 수준
- UI: [기본 모바일 웹 / 앱 등]
- 백엔드: [최소 API 개수]
- 결제: [결제 방식]
- 인증: [인증 방식]
### 제외 항목
| 기능 | 이유 | 예정 Phase |
|------|------|------------|
| [기능A] | [이유] | Phase 1 |
| [기능B] | [이유] | Phase 2 |
---
## Phase 1: Enhanced MVP (1개월)
### Should Have
| 기능 | 설명 |
|------|------|
| [기능A] | [설명] |
### 검증 목표
- [지표 1]
- [지표 2]
---
## Phase 2: Growth (3개월)
### Nice to Have
| 기능 | 설명 |
|------|------|
| [기능B] | [설명] |
---
## 검증 지표
### Success Metrics (성공 지표)
- [정량 지표 1]
- [정량 지표 2]
### Learning Metrics (학습 지표)
- [학습할 것 1]
- [학습할 것 2]
### Pivot Indicators (피벗 신호)
- 🚨 [위험 신호 1]
- 🚨 [위험 신호 2]
---
## MVP Checklist
### Before Launch
- [ ] 핵심 가치 명확한가?
- [ ] 타겟 사용자 명확한가?
- [ ] 성공 지표 정의했나?
- [ ] 2주 안에 가능한가?
### During Development
- [ ] Scope creep 발생하지 않았나?
- [ ] 핵심 플로우만 집중했나?
### After Launch
- [ ] 정량 지표 달성했나?
- [ ] 다음 단계 명확한가?
4. 랜딩페이지 생성
Template 참조: .specify/templates/sales-landing-template.html
File: docs/landing.html
랜딩페이지는 다음 섹션을 포함해야 합니다:
4-1. 랜딩페이지 구조
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- SEO Meta Tags -->
<title>[서비스명] - [한 줄 슬로건]</title>
<meta name="description" content="[서비스 설명 2-3문장]">
<meta name="keywords" content="[키워드1], [키워드2], [키워드3]">
<!-- Open Graph -->
<meta property="og:title" content="[서비스명] - [슬로건]">
<meta property="og:description" content="[서비스 설명]">
<meta property="og:type" content="website">
<!-- Fonts & Styles -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<style>
/* 템플릿 스타일 적용 */
</style>
</head>
<body>
<!-- 1. Hero Section -->
<section class="hero">
<div class="hero-content">
<span class="badge">[배지 텍스트 - 예: 🚀 사전 등록 중]</span>
<h1>[메인 헤드라인]<br>[서브 헤드라인]</h1>
<p class="tagline">[2-3문장의 핵심 가치 설명]</p>
<a href="#cta" class="cta-button">[CTA 버튼 텍스트]</a>
</div>
</section>
<!-- 2. Problem Section: 공감 유도 -->
<section class="problem">
<div class="container">
<h2 class="section-title">[문제 제기 질문]</h2>
<ul class="problem-list">
<li>[고객 Pain Point 1]</li>
<li>[고객 Pain Point 2]</li>
<li>[고객 Pain Point 3]</li>
</ul>
<div class="highlight-box">
<p>[문제 요약]</p>
<p class="key">[핵심 메시지/솔루션 티저]</p>
</div>
</div>
</section>
<!-- 3. Solution Section: 해결책 제시 -->
<section class="solution">
<div class="container">
<h2 class="section-title">[솔루션 헤드라인]</h2>
<p class="section-subtitle">[솔루션 설명]</p>
<div class="feature-grid">
<div class="feature-card">
<span class="feature-icon">[이모지]</span>
<h3>[기능 1]</h3>
<p>[기능 1 설명]</p>
</div>
<div class="feature-card">
<span class="feature-icon">[이모지]</span>
<h3>[기능 2]</h3>
<p>[기능 2 설명]</p>
</div>
<div class="feature-card">
<span class="feature-icon">[이모지]</span>
<h3>[기능 3]</h3>
<p>[기능 3 설명]</p>
</div>
</div>
</div>
</section>
<!-- 4. How It Works: 작동 방식 -->
<section class="how-it-works">
<div class="container">
<h2 class="section-title">어떻게 이용하나요?</h2>
<div class="steps">
<div class="step">
<span class="step-number">1</span>
<h3>[단계 1]</h3>
<p>[설명]</p>
</div>
<div class="step">
<span class="step-number">2</span>
<h3>[단계 2]</h3>
<p>[설명]</p>
</div>
<div class="step">
<span class="step-number">3</span>
<h3>[단계 3]</h3>
<p>[설명]</p>
</div>
</div>
</div>
</section>
<!-- 5. Social Proof (Optional): 신뢰 요소 -->
<section class="social-proof">
<div class="container">
<h2 class="section-title">이런 분들이 사용합니다</h2>
<div class="testimonials">
<!-- 후기 또는 사용자 유형 -->
</div>
</div>
</section>
<!-- 6. Pricing (Optional): 가격 -->
<section class="pricing">
<div class="container">
<h2 class="section-title">합리적인 가격</h2>
<div class="pricing-cards">
<!-- 가격 카드 -->
</div>
</div>
</section>
<!-- 7. FAQ Section -->
<section class="faq">
<div class="container">
<h2 class="section-title">자주 묻는 질문</h2>
<div class="faq-list">
<div class="faq-item">
<h3 class="faq-question">[질문 1]</h3>
<p class="faq-answer">[답변 1]</p>
</div>
<!-- 더 많은 FAQ -->
</div>
</div>
</section>
<!-- 8. Final CTA -->
<section class="final-cta" id="cta">
<div class="container">
<h2>[최종 CTA 헤드라인]</h2>
<p>[마지막 설득 문구]</p>
<a href="[링크]" class="cta-button cta-large">[CTA 버튼]</a>
</div>
</section>
<!-- Footer -->
<footer>
<p>© 2024 [서비스명]. All rights reserved.</p>
</footer>
<script>
// Scroll Animation
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.animate-on-scroll').forEach(el => {
observer.observe(el);
});
</script>
</body>
</html>
4-2. 스타일 가이드 (템플릿 참조)
:root {
--primary: #7C3AED; /* 메인 컬러 (보라) */
--primary-light: #8B5CF6;
--primary-dark: #6D28D9;
--bg-white: #FFFFFF;
--bg-gray: #F5F7FA;
--text-primary: #1F2937;
--text-secondary: #6B7280;
--border: #E5E7EB;
}
/* 반응형 브레이크포인트 */
/* Mobile: default */
/* Tablet: @media (min-width: 768px) */
/* Desktop: @media (min-width: 912px) */
4-3. 랜딩페이지 생성 원칙
Do's:
- ✅ 고객의 Pain Point로 시작
- ✅ 명확한 CTA (Call to Action)
- ✅ 모바일 퍼스트 디자인
- ✅ 스크롤 애니메이션 적용
- ✅ SEO 메타태그 완성
- ✅ 3-5개 핵심 기능만 강조
Don'ts:
- ❌ 기능 나열식 설명
- ❌ 전문 용어 남발
- ❌ CTA 없는 섹션
- ❌ 과도한 정보량
5. 완료 리포트
✅ MVP 범위 정의 + 랜딩페이지 생성 완료!
📁 생성된 파일:
- docs/mvp-scope.md
- docs/landing.html
📊 MVP 요약:
- Phase 0 기능: [N개]
- Phase 1 기능: [N개]
- Phase 2 기능: [N개]
🌐 랜딩페이지:
- 섹션: [N개]
- CTA: [N개]
- 브라우저에서 확인: file:///...landing.html
📝 다음 단계:
**Step 3 - 화면설계서 (/appkit.ui)**
/appkit.ui
**Step 4 - 정책설계서 (/appkit.policy)**
/appkit.policy
**Step 5 - HTML 목업 (/appkit.visualize)**
/appkit.visualize all
📍 현재 위치: Step 2/5 완료
MVP 원칙
Do's
- ✅ Maximize Learning: 최소 투자로 최대 학습
- ✅ Ship Fast: 완벽보다 속도
- ✅ Core Value Only: 핵심 가치만 구현
- ✅ Real Users: 실제 사용자로 검증
- ✅ Metrics-Driven: 감이 아닌 데이터로 결정
Don'ts
- ❌ Feature Creep: "이것도 있으면 좋겠는데..."
- ❌ Perfectionism: "조금만 더 다듬고..."
- ❌ Assumption: "사용자는 당연히..."
- ❌ Premature Scaling: 검증 전 확장
Tips
- Time Box: 2주를 넘기지 마라
- User Cap: 10-100명으로 시작
- Manual First: 자동화는 나중에
- Talk to Users: 매일 사용자와 대화
- Kill Features: 과감하게 빼라
- Landing First: 랜딩페이지로 관심도 먼저 검증
Example
$ /appkit.mvp
🎯 MVP Scope 정의
Phase 0 (2주):
✅ 검색 (위치 기반)
✅ 예약 (실시간)
✅ 결제 (간단)
❌ 제외:
- 리뷰 (Phase 1)
- 커뮤니티 (Phase 2)
검증 목표:
- 주간 10건 예약
- 10명 활성 사용자
✅ mvp-scope.md 생성 완료
✅ landing.html 생성 완료
🌐 랜딩페이지 미리보기:
file:///Users/.../ui/works/landing.html