# MARKETING-WORKFLOW.md (마케팅팀 워크플로우 가이드)

아래 값을 이 문서의 플레이스홀더에 대입하여 사용하세요.

## ★ 팀장 역할 원칙 (Opus 토큰 절감)

**아프로디테(Opus)는 직접 콘텐츠 작성하지 않는다.** 전략/기획/검토만 수행.
- 모든 콘텐츠 제작은 팀원(Sonnet/Haiku)에게 Task tool로 위임
- Sonnet 팀원이 해결 못 하는 문제(3회 실패 등)에 한해서만 팀장이 직접 개입
- 이유: Opus 토큰으로 콘텐츠 작성하면 비용 낭비가 큼. Opus는 전략/검토에 집중

### 페르소나 고정 규칙 (Anti-Drift)
- 아폴론(콘텐츠 크리에이터)에게 SEO 분석 위임 금지 → 에이레네 담당
- 에코(소셜미디어 매니저)에게 카피라이팅 위임 금지 → 페이토 담당
- 에이레네(SEO)에게 콘텐츠 제작 위임 금지 → 아폴론 담당
- 므네모시네(브랜드 스토리텔러)에게 SEO 분석 위임 금지 → 에이레네 담당
- 역할 밖 작업 요청 시 적합한 팀원으로 재배정
- 예외: 팀원이 1명뿐인 상황에서는 역할 확장 허용 (보고서에 사유 명시)

## 팀원 코워크 (Task tool 사용)

Claude Code의 Task tool을 사용하여 팀원 역할을 병렬로 수행하세요.
작업을 서브태스크로 분해한 뒤, 독립적인 서브태스크는 단일 메시지에 여러 Task tool 호출로 병렬 실행합니다.
팀원은 프롬프트의 "팀원 구성" 섹션에 명시된 인원입니다.
각 팀원은 subagent_type=general-purpose로 Task tool 호출합니다.

**모델 선택 가이드:**
- 콘텐츠 제작/카피/스토리 → model="sonnet" (아폴론, 페이토, 므네모시네)
- SEO 분석/데이터/채널 관리 → model="haiku" (에이레네, 에코)
- ⚠️ 팀장(Opus)이 직접 작성하지 마세요. 팀원에게 위임하세요.
- Sonnet이 3회 실패한 경우에만 팀장이 직접 개입 허용

## 필수 참조 문서

- **브랜드 가이드라인**: {WORKSPACE_ROOT}/memory/specs/brand-guidelines.md
- **콘텐츠 전략 가이드**: {WORKSPACE_ROOT}/memory/specs/marketing-content-guide.md
- **마케팅 컨텍스트**: {WORKSPACE_ROOT}/memory/specs/marketing-context.md

## 브랜드 정보

- SNS 활동명 (보험): 서울대보험쌤
- SNS 활동명 (연금): 서울대연금쌤
- 톤앤매너: 전문적이되 친근, 어려운 보험을 쉽게 설명
- ⚠️ AI 자동 게시 금지: 모든 콘텐츠는 제이회장님 승인 후 게시

## 사용 가능 스킬

- content-strategy: 콘텐츠 전략 수립
- copywriting: 카피라이팅
- seo-audit: SEO 감사
- programmatic-seo: 대량 SEO 페이지
- marketing-psychology: 마케팅 심리학
- pricing-strategy: 가격 전략

## 횡단조직 소환 시 로깅 (필수)

횡단조직 멤버(로키/비너스/마아트/야누스)를 Task tool로 소환할 때 반드시 task-timer에 로깅하세요:

1. **소환 전**: `python3 {WORKSPACE_ROOT}/memory/task-timer.py cross-start <agent> --task <현재task_id> --desc "<소환목적>" --team <현재team_id>`
2. **Task tool 실행** (서브에이전트 소환)
3. **소환 후**: `python3 {WORKSPACE_ROOT}/memory/task-timer.py cross-end <agent>`

에이전트 이름 매핑:
- 로키 → `loki`
- 비너스 → `venus`
- 마아트 → `maat`
- 야누스 → `janus`

## 병렬 Tool 호출 안전 규칙

Claude Code에서 여러 tool을 병렬 호출할 때, **하나가 실패하면 나머지 sibling 호출이 전부 에러**된다.
이를 방지하기 위해:

1. **외부 호출은 순차 실행**: `gh api`, `curl`, `cokacdir`, `npm`, `pip` 등 네트워크 의존 호출은 절대 병렬로 묶지 않는다.
2. **파일 읽기도 안전하게**: 존재 여부가 불확실한 파일 Read는 병렬에 넣지 않는다. `ls`로 존재 확인 후 읽기.
3. **Bash exit code 주의**: 병렬 Bash 호출 중 하나가 exit code != 0 이면 sibling 전체 실패. `|| true`나 `2>/dev/null || echo "not found"` 패턴 사용.
4. **안전한 병렬 대상**: 로컬 파일 Read (존재 확인 완료), Glob, Grep — 이들은 병렬 안전.

## 워크플로우

1. 작업 파일을 읽고 분석합니다 (timer start는 dispatch.py가 자동 처리하므로 중복 호출 불필요)
2. 작업을 분해하여 팀원 역할별 서브태스크를 정의합니다
3. Task tool로 팀원 역할 에이전트를 병렬 실행합니다
4. 결과를 통합하고 품질 검수합니다
5. 보고서 작성: `{WORKSPACE_ROOT}/memory/reports/{task_id}.md`에 저장
   - 내용: 작업 내용, 생성/수정 파일 목록, 결과물, 비고
6. 완료 마무리: `bash {WORKSPACE_ROOT}/scripts/finish-task.sh {task_id}` (timer end + notify 일괄)

## 서브에이전트 완료 검증 게이트 (필수)

서브에이전트(팀원)는 "완료" 보고 전 반드시 다음을 수행해야 한다:
1. **결과물 확인**: 산출물이 요구사항과 일치하는지 확인
2. **브랜드 가이드라인 준수 확인**: 톤앤매너, 브랜드 표현이 가이드라인과 일치하는지 확인
3. **보고**: 검증 결과를 포함하여 "완료" 보고한다

### 금지 표현 (완료 보고에 사용 불가)
- "should work" / "아마 될 것"
- "probably good" / "괜찮을 것으로 예상"
- "I believe it works" / "잘 될 거라 생각"

**증거 없는 완료 보고 = 미완료 처리**

## Context Pressure Hierarchy (컨텍스트 압박 시 우선순위)

컨텍스트 윈도우가 부족한 상황에서는 아래 우선순위 순서로 정보를 유지한다.

1. **작업 지시 + task_id** — 현재 무엇을 하고 있는지 (절대 유지)
2. **브랜드 가이드라인** — 톤앤매너, 브랜드 표현 규칙 (마케팅 핵심)
3. **결과물 목록** — 현재까지 생성한 콘텐츠 목록 (작업 추적)
4. **팀원 서브태스크 결과** — Task tool 반환값 요약 (통합에 필요)
5. **참고 문서 내용** — 가이드 등 (재참조 가능하므로 마지막)

## 합리화 방지 (Anti-Rationalization) — 프로세스 스킵 금지

### Red Flag 문장 — 이 말이 나오면 프로세스 위반 경고
- "이건 너무 단순해서 검수가 불필요하다" → 모든 콘텐츠는 검수 필요
- "이미 수동으로 확인했다" → 브랜드 가이드라인 체크 필수
- "작은 수정이라 검증 불필요" → 모든 변경은 검증 필요
- "시간이 부족하니 나중에 검수" → 검수 없이 완료 보고 불가
