# appkit.merge **기획 정돈 - 흩어진 기획 문서를 일관되게 통합** --- ## Overview **This is Step 6 of the logical thinking 7-step workflow**: ``` 논리적 사고 7단계: 1. /appkit.new → 아이디어 스케치 (어떤 서비스인지?) 2. /appkit.spec → 기능 구체화 (뭐가 필요할까? 누가 쓸까?) 3. /appkit.customer → 고객 스토리 (고객의 하루, 고민, 해결) 4. /appkit.sales → 세일즈 랜딩 구성 (어떻게 설득할까?) 5. /appkit.mvp → MVP 범위 정하기 (최소한으로 검증하려면?) 6. /appkit.merge → 기획 정돈 (흩어진 기획 통합) ← YOU ARE HERE 7. /appkit.design → 개발 준비 (API, ERD, 기술 스펙) ``` ## Purpose MVP 범위가 정해지면, 이제 지금까지 만든 기획 문서들을 정리할 차례입니다. spec, customer, mvp를 각각 만들다 보면 AI가 맥락을 놓치고 일관성 없이 생성합니다. **기획 레벨**에서 흩어진 내용을 통합하고, 중복과 충돌을 해소합니다. **핵심 질문**: "기획이 일관적인가? 중복은? 용어가 통일됐나?" --- ## When to Use - `/appkit.mvp`로 MVP 범위를 정한 후 (Step 5 완료 후) - spec, customer, mvp 결과물이 준비되었을 때 - 기획 문서 간 중복이나 충돌이 보일 때 - 용어와 컨셉을 통일해야 할 때 - 개발 준비(design) 전 기획을 정돈하고 싶을 때 --- ## Usage ```bash /appkit.merge /appkit.merge "특히 spec과 customer 용어 통일" /appkit.merge "MVP 범위 기반으로 우선순위 재조정" ``` --- ## What I'll Do ### 1. 소스 문서 수집 **읽을 파일들**: - `docs/appkit/specs/*/spec.md` (모든 기능 스펙) - `docs/appkit/customer-persona.md` (타겟 고객) - `docs/appkit/customer-journey.md` (고객 여정) - `docs/appkit/mvp-scope.md` (MVP 범위) - `docs/appkit/mvp-metrics.md` (검증 지표) ### 2. 기획 일관성 분석 **분석 항목**: #### A. 용어 통일성 ```markdown ## 용어 충돌 발견 ❌ **Spec에서**: "페르소나 설정" ❌ **Customer에서**: "캐릭터 프로필" ❌ **MVP에서**: "인물 정보" ✅ **통일 제안**: → 표준 용어: "페르소나" → 모든 문서에 일관되게 적용 ``` #### B. 기능 중복 확인 ```markdown ## 중복 기능 발견 ❌ **001-persona/spec.md**: - 이미지 생성 기능 언급 ❌ **002-content/spec.md**: - 이미지 생성 기능 중복 설명 ✅ **통합 제안**: → 002-content에서 통합 관리 → 001-persona는 002-content 참조 ``` #### C. 고객 가치 일관성 ```markdown ## 가치 제안 충돌 ❌ **Spec**: "100명 자동 관리" ❌ **Customer**: "15시간 → 1시간 시간 절약" ❌ **Sales**: "월 1억 수익" ✅ **핵심 가치 통일**: → Primary Value: "시간 절약 (15시간 → 1시간)" → Secondary Value: "확장성 (100명 관리)" → Ultimate Goal: "월 1억 수익 달성" ``` ### 3. MVP 범위 기반 우선순위 조정 ```markdown ## MVP 범위 재확인 **Phase 0 (MVP - 2주)**: ✅ 페르소나 관리 (001-persona) ✅ 콘텐츠 자동 생성 (002-content) ✅ 스케줄링 (003-schedule) ❌ 성과 분석 (004-analytics) → Phase 1로 이동 ❌ 수익화 관리 (005-monetize) → Phase 2로 이동 **우선순위 조정**: 1. **Must Have** (없으면 MVP 불가): - 001-persona, 002-content, 003-schedule 2. **Should Have** (있으면 좋음): - 004-analytics (Phase 1) 3. **Nice to Have** (나중에): - 005-monetize (Phase 2) → Spec 문서에서 Phase 0 외 기능은 "Future" 섹션으로 이동 ``` ### 4. 컨셉 맵 생성 **Output**: `docs/appkit/merge/concept-map.md` ```markdown # Concept Map (통합 컨셉 맵) *생성 기준: spec, customer, mvp 통합* *생성일: 2025-11-20* --- ## 핵심 컨셉 정의 ### 서비스 컨셉 "AI 인플루언서 100명을 자동으로 운영하는 시스템" ### 핵심 가치 (통일) 1. **Primary**: 시간 절약 (15시간 → 1시간) 2. **Secondary**: 확장성 (100명 자동 관리) 3. **Ultimate Goal**: 월 1억 수익 ### 타겟 사용자 - **Primary**: 본인 (AI 인플루언서 운영자) - **Pain Point**: 수동 작업 불가능 - **Goal**: 완전 자동화 --- ## 기능 통합 맵 ### Phase 0 (MVP - 2주) **001-persona** (페르소나 관리) - 정의: 캐릭터별 성격, 톤앤매너 설정 - 입력: 캐릭터 정보 (이름, 나이, 성격) - 출력: 페르소나 DB 저장 - 의존성: 없음 **002-content** (콘텐츠 자동 생성) - 정의: 페르소나 기반 이미지 + 캡션 자동 생성 - 입력: 페르소나 ID, 주제 - 출력: 이미지 (Midjourney), 캡션 (GPT) - 의존성: 001-persona (필수) **003-schedule** (스케줄링) - 정의: 매일 아침 7시 자동 생성 실행 - 입력: 스케줄 설정 - 출력: Cron job 실행 - 의존성: 002-content (필수) --- ## 용어 사전 (통일된 표현) | 개념 | 표준 용어 | 금지 용어 | |------|-----------|-----------| | 캐릭터 정보 | 페르소나 | 캐릭터 프로필, 인물 정보 | | 자동 생성 | 콘텐츠 생성 | 포스트 제작, 글쓰기 | | 예약 실행 | 스케줄링 | 타이머, 자동 실행 | | 성과 추적 | 분석 | 통계, 모니터링 | --- ## 데이터 흐름 ``` [페르소나 DB] → [콘텐츠 생성] → [Instagram API] ↑ ↑ ↑ 001-persona 002-content 003-schedule ``` **데이터 엔티티** (기획 레벨): 1. Persona (페르소나 정보) 2. Content (생성된 콘텐츠) 3. Schedule (스케줄 설정) 4. Post (포스팅 기록) *상세 데이터 모델은 /appkit.design에서 생성* ``` ### 5. 고객 여정과 기능 매핑 **Output**: `docs/appkit/merge/journey-feature-map.md` ```markdown # 고객 여정 - 기능 매핑 *Customer Journey → Feature Mapping* --- ## 현재 상황 (Before) **새벽 6시**: "100개 콘텐츠 어떻게 만들지..." (막막) → **해결 기능**: 없음 (수동 작업) **오전 9시**: 20개째 이미지 생성 중 (지침) → **해결 기능**: 002-content (자동 생성) **오후 3시**: 50개째 캡션 작성 중 (번아웃) → **해결 기능**: 002-content (자동 생성) **저녁 9시**: 결국 20개 못 올림 (좌절) → **해결 기능**: 003-schedule (자동 포스팅) --- ## 미래 상황 (After - MVP 적용) **전날 밤 11시**: 내일 주제만 설정 (5분) → **사용 기능**: 001-persona (주제 입력) **아침 7시**: 시스템이 100개 자동 생성 (무인) → **사용 기능**: 003-schedule → 002-content **아침 8시**: 커피 마시며 퀄리티 체크 (30분) → **사용 기능**: 004-analytics (Phase 1) --- ## 기능별 고객 가치 **001-persona**: - Pain 해소: "매번 캐릭터 설정 반복" → "한번 설정, 계속 사용" - 시간 절약: 10분/캐릭터 → 1분 (첫 설정) **002-content**: - Pain 해소: "100개 수동 생성 불가능" → "100개 자동 생성" - 시간 절약: 10시간 → 0시간 **003-schedule**: - Pain 해소: "아침마다 실행 필요" → "자동 실행" - 시간 절약: 5분/일 → 0분 ``` ### 6. 통합 후 구조 재정의 **Before (분산)**: ``` docs/appkit/ ├── specs/ │ ├── 001-persona/spec.md (용어 불일치) │ ├── 002-content/spec.md (중복 설명) │ └── 003-schedule/spec.md ├── customer-persona.md (용어 다름) ├── customer-journey.md ├── mvp-scope.md (우선순위 모호) └── mvp-metrics.md ``` **After (통합)**: ``` docs/appkit/merge/ ├── concept-map.md # 핵심: 통합 컨셉 맵 ├── journey-feature-map.md # 고객 여정 - 기능 매핑 ├── terminology.md # 표준 용어 사전 ├── consolidated-specs.md # 통합된 기능 명세 └── mvp-priority.md # 재조정된 우선순위 ``` **구조 설명**: - `concept-map.md`: 모든 문서의 컨셉을 하나로 통합 - `journey-feature-map.md`: 고객 여정과 기능 매핑 - `terminology.md`: 통일된 용어 사전 - `consolidated-specs.md`: 중복 제거된 기능 명세 - `mvp-priority.md`: MVP 기반 우선순위 ### 7. 충돌 해결 **충돌 패턴 식별**: ```markdown ## Conflicts Detected ⚠️ **Conflict #1**: 이미지 생성 해상도 - 001-persona: 512x512 - 002-content: 1080x1080 → **해결**: content-safety.md에 용도별 최소 해상도 정의 ⚠️ **Conflict #2**: API 호출 우선순위 - 001: persona 우선 - 002: content 우선 → **해결**: rate-limiter.md에 우선순위 큐 정의 ⚠️ **Conflict #3**: 에러 시 재시도 횟수 - 001: 5회 - 002: 3회 → **해결**: error-handling.md에 통일 (3회) ``` --- ## Output Files ### 생성될 파일 구조: ``` docs/appkit/merge/ ├── specs/ (통합된 개별 기능) │ ├── 001-persona/ │ ├── 002-content/ │ ├── 003-schedule/ │ └── 004-posting/ ├── common/ (공통 모듈 & 정책) │ ├── 001-image-generation/ │ ├── 002-rate-limiter/ │ ├── 003-error-handler/ │ ├── 004-content-safety/ │ ├── 005-api-limits/ │ └── 006-data-management/ ├── overview.md (전체 통합 요약) └── dependencies.md (의존성 그래프) ``` ### 파일별 상세: 1. **`merge/specs/00X-*/spec.md`** - 원본 specs에서 중복 제거 - common 모듈 참조 추가 - 의존성 명시 2. **`merge/common/001-image-generation/module.md`** - Midjourney API 통합 로직 - 이미지 생성 공통 인터페이스 - 사용 예시 3. **`merge/common/002-rate-limiter/module.md`** - API별 제한 정책 - 우선순위 큐 시스템 - 재시도 로직 4. **`merge/common/003-error-handler/module.md`** - 통일된 에러 처리 - 로깅 정책 - 알림 규칙 5. **`merge/common/004-content-safety/policy.md`** - 브랜드 안전성 필터 - 콘텐츠 검증 규칙 - 언어/문화 가이드 6. **`merge/common/005-api-limits/policy.md`** - Midjourney: 시간당 50회 - OpenAI: 분당 60회 - Instagram: 일 200개 7. **`merge/common/006-data-management/policy.md`** - 저장 위치 및 구조 - 보존 기간 - 백업 정책 8. **`merge/overview.md`** - 중복 제거 요약 - 통합된 기능 목록 - common 모듈 목록 9. **`merge/dependencies.md`** - 기능 간 의존성 그래프 - 실행 순서 - 순환 의존성 체크 --- ## Integration Points ### 다른 명령어와의 연계: - **From `/appkit.mvp`**: MVP Phase 0에 포함될 기능들 - **From `/appkit.spec`**: 각 기능별 스펙 파일 - **To 개발팀**: 정리된 스펙과 공통 모듈로 구현 시작 --- ## Examples ### Example 1: 기본 통합 ```bash $ /appkit.merge 🔄 Spec Consolidation Analysis **중복 기능 발견**: 2개 ✅ image-generation 모듈로 통합 **공통 정책 추출**: 6개 ✅ 001-image-generation (모듈) ✅ 002-rate-limiter (모듈) ✅ 003-error-handler (모듈) ✅ 004-content-safety (정책) ✅ 005-api-limits (정책) ✅ 006-data-management (정책) **의존성 정리**: ✅ 순환 없음 **충돌 해결**: 3개 ✅ 이미지 해상도 통일 ✅ API 우선순위 정의 ✅ 재시도 횟수 통일 ✅ Created docs/appkit/merge/ ✅ Generated merge/specs/ (4개) ✅ Generated merge/common/ (6개) ✅ Generated merge/overview.md ✅ Generated merge/dependencies.md ``` ### Example 2: 특정 영역 집중 ```bash $ /appkit.merge "API 통합 중점" 🔄 API Integration Focus **API 통합 분석**: - Midjourney: 2곳에서 호출 → 통합 - OpenAI: 3곳에서 호출 → 통합 - Instagram: 1곳 (통합 불필요) **Rate Limiting 정책**: ✅ common/005-api-limits/policy.md 생성 - Midjourney: 시간당 50회 - OpenAI: 분당 60회 - 우선순위 큐 필요 ✅ Generated merge/common/001-image-generation/ ✅ Generated merge/common/002-rate-limiter/ ✅ Updated merge/specs/ (중복 제거) ``` --- ## Key Principles ### Merge 원칙: 1. **DRY (Don't Repeat Yourself)**: 중복 코드/정책 제거 2. **Single Source of Truth**: 하나의 정의, 여러 참조 3. **Explicit Dependencies**: 암묵적 의존성 명시화 4. **Policy Centralization**: 정책은 한 곳에서 관리 5. **Conflict Resolution**: 충돌은 즉시 해결 --- ## Tips ### 효과적인 통합을 위해: 1. **작은 단위로 시작**: 2-3개 기능부터 통합 2. **정책 우선**: 공통 규칙부터 정리 3. **의존성 체크**: 순환 의존성 방지 4. **문서화**: 통합 이유와 결정사항 기록 5. **점진적 리팩토링**: 한번에 다 바꾸지 말기 --- ## Next Steps ### 이 명령어 실행 후: **📍 다음 단계: Step 7 - `/appkit.design`** (개발 준비) - 기획이 정돈되었으니 이제 개발 준비 단계로 - ERD, API 엔드포인트 설계 - 기술 정책 정의 - 개발팀에게 전달할 최종 기술 스펙 완성 --- ## Version - **Version**: 1.0.0 - **Created**: 2025-01-20 - **Philosophy**: "AI는 맥락을 놓친다. 사람이 통합하라."