PetAI WBS 5.0 콘텐츠·사건·한국어
목표: 캐릭터의 고정 성격을 유지하면서 Day 0~7의 선택·행동·추억을 데이터로 제작하고 안전하게 반복한다.
주 책임: Planning/Content
협업: Unity, Local AI, QA
핵심 원칙: 성격은 설명문이 아니라 선택과 행동으로 증명
1. 필수 산출물
- 캐릭터 바이블 1종
- 관계 단계와 말투·행동 허용 범위
- Day 0·1·3·7 사건 flow와 fallback
- intent·template·choice catalog
- event schema-valid fixture
- 추억 title·summary·fact template
- 날씨·시간·복귀 변주
- 한국어 검수 기록과 금지 패턴
2. 작업분해구조
| WBS |
작업 |
우선 |
선행 |
산출물 |
수용 기준 |
| 5.1.1 |
핵심 욕망·강점·결점 |
P0 |
관계 범위 |
character bible |
장면 3개로 증명 가능 |
| 5.1.2 |
취향·싫어함·거절 |
P0 |
bible |
preference catalog |
항상 동의하는 반응 0건 |
| 5.1.3 |
말투·한국어 |
P0 |
age/relationship |
style guide |
30문장 블라인드 검수 |
| 5.1.4 |
행동 증거 |
P0 |
personality |
daily behavior list |
대사 없이 3개 판독 |
| 5.2.1 |
Event schema |
P0 |
domain contract |
JSON schema |
malformed 차단 |
| 5.2.2 |
Condition catalog |
P0 |
state fields |
operators/value rules |
unknown field 0건 |
| 5.2.3 |
Template catalog |
P0 |
intents |
fallback lines |
missing ref 0건 |
| 5.2.4 |
Choice rule |
P0 |
relationship policy |
2-choice pattern |
명백한 정답 강요 0건 |
| 5.3.1 |
Day 0 |
P0 |
onboarding |
첫 만남·홈·공동 놀이·결과 |
template-only 완주 |
| 5.3.2 |
Day 1 |
P1 |
action contract |
공부 제안·거절·완료 |
두 경로 추억 생성 |
| 5.3.3 |
Day 3 |
P1 |
environment |
비·unknown 분기 |
provider 없이 완주 |
| 5.3.4 |
Day 7 |
P1 |
calendar |
회고·다음 약속 |
과거 fact 정확성 |
| 5.4.1 |
Memory templates |
P0/P1 |
result/event |
title/summary/tags |
사실 생성 0건 |
| 5.4.2 |
Return content |
P1 |
absence bucket |
2~6/7~29/30+ |
죄책감 표현 0건 |
| 5.5.1 |
Content validator fixture |
P0 |
all catalogs |
valid+invalid set |
CI validation |
| 5.5.2 |
Localization QA |
P1 |
rendered build |
context screenshot sheet |
잘림·번역투 0 P0 |
3. 캐릭터 바이블 최소 계약
| 항목 |
필수 내용 |
기능 연결 |
| 한 문장 욕망 |
장기적으로 원하는 생활 변화 |
사건 장기 방향 |
| 강점 2 |
사용자를 도울 수 있는 방식 |
성공·제안 반응 |
| 결점 1 |
실수·갈등을 만드는 반복 경향 |
실패·회복 장면 |
| 좋아함 3 |
장소·행동·소품·대화 주제 |
취향 사건·방 변화 |
| 싫어함 2 |
거절 가능한 구체 상황 |
agency 검증 |
| 첫인상 |
실루엣·기본 반응으로 보이는 성격 |
Day 0 |
| 숨은 반전 |
Day 2~5에 발견할 차이 |
재방문 동기 |
| 행동 증거 3 |
대사 없이 보이는 버릇 |
animation·room |
| 복귀 태도 |
장기 부재에 대한 비난 없는 반응 |
return event |
| 관계 단계 |
단계별 호칭·거리·접촉·제안 |
template validator |
4. 사건 데이터 최소 구조
event_id: evt_d01_study_01
version: 1
priority: 100
trigger:
all:
- field: session.resolvedLocalDate
op: equals
value: injected-day-1
steps:
- step_id: intro
intent: offer_real_action
template_ids: [tpl_offer_study_a, tpl_offer_study_b]
choices:
- choice_id: accept
continue_to: accepted
- choice_id: decline
continue_to: declined
completion:
memory_template_id: mem_d01_study
- field, operator, value type은 catalog로 제한한다.
- 모든
continue_to는 존재하는 step을 가리킨다.
- choice commit 뒤에는 같은 effect가 두 번 적용되지 않는다.
- 콘텐츠가 제거돼도 active event는 fallback 종료 문장으로 닫힌다.
- event body가 관계 수치를 직접 쓰지 않고 승인 effect ID를 요청한다.
5. 선택지 규칙
- 기본 2개, 최대 3개
- 선택 의미가 동사로 구분되어야 함
- 한 선택만 예의 바르고 다른 선택은 공격적인 가짜 선택 금지
- 거절은 관계 패널티 없음
- 캐릭터 의견과 다른 선택도 총 보상 가치가 지나치게 낮지 않음
- 즉시 결과와 나중 결과를 구분
- 선택 전·후 앱 종료 시 commit 경계가 명확함
- 자유 입력은 MVP 핵심 사건에서 사용하지 않음
6. 한국어 문장 기준
통과
조금 엇갈렸네. 다음엔 시작 전에 내가 먼저 신호 줄게.
오늘은 책보다 창가가 더 궁금해. 잠깐 보고 와도 돼?
네가 고른 조명도 괜찮아. 나는 조금 더 어두운 쪽이 좋지만.
수정 필요
당신이 실패해서 아쉬워하고 싶어 해요.: 관찰자 문체와 직접 화법 혼합
좋은 습관을 달성하셨군요!: 생산성 앱·상담문 톤
괜찮아 괜찮아 괜찮아!: 실패 의미를 지우고 반복으로 덮음
난 뭐든 좋아.: 캐릭터 취향과 agency 소실
검수 항목
- 누가 누구에게 말하는지
- 현재 장면의 사실만 사용하는지
- 어미와 호칭이 관계 단계에 맞는지
- 같은 의미를 설명문으로 두 번 말하지 않는지
- 실패·거절·부재를 압박하지 않는지
- 문장만 읽어도 행동 선택이 무엇인지 알 수 있는지
7. Day별 완료 증거
| Day |
정상 경로 |
필수 예외 |
저장 증거 |
| 0 |
첫인상→홈→놀이→결과 |
첫 실패, 이름 생략, 앱 종료 |
onboarding stage·memory |
| 1 |
행동 제안→완료→미러링 |
거절, timer 중단, 중복 완료 |
action record·habit·memory |
| 3 |
비 오는 사건→계획 변경 |
weather unknown/offline |
environment snapshot·choice |
| 7 |
달력 회고→다음 약속 |
빈 날짜, 일부 day 미플레이 |
week summary·return hook |
8. 콘텐츠 완료 증거
- 모든 event/template/choice/effect ID unique
- 모든 reference와 continue target valid
- Day 0·1·3·7 valid fixture와 malformed fixture
- template-only 실제 Player 완주
- 관계 단계별 한국어 30문장 blind review
- 실패·거절·복귀 금지 표현 0건
- 사건 중단·재개·선택 중복 적용 0건
- 추억의 fact가 source state와 일치
- 콘텐츠 bundle version·hash·schema 기록
9. 연결 문서
10. 2026-07-23 아이템·알림 콘텐츠 보완
| WBS |
작업 |
우선 |
산출물 |
수용 기준 |
| 5.6.1 |
히든 아이템 hint catalog |
P1 |
discovery hint·장소/시간/조합 조건 |
결제·정밀위치·건강·친구 수 조건 0건 |
| 5.6.2 |
한정·재등장 정책 catalog |
P1 |
start/end/rerun policy |
모든 한정 아이템이 종료 후 정책을 가짐 |
| 5.6.3 |
기능 아이템 설명 |
P1 |
달력·앨범·상호작용 아이템 copy |
기능/획득경로/소유 상태 혼동 0건 |
| 5.6.4 |
푸시·위젯 문구 |
P1 |
category별 copy와 deep-link intent |
죄책감·압박형 카피 0건, opt-out 상태 발송 0건 |
| 5.6.5 |
스트레스 회복 장면 |
P1 |
0/회복/수면 fallback 템플릿 |
건강 연동 off에서도 완주, 사용자 평가 문구 0건 |
| 5.6.6 |
친구 교류 micro-scene |
P2 |
인사·같이 놀기·선물 감상·스티커 set |
자유 DM 없이 의미 있는 교류 3종 이상 |
10.1 콘텐츠 금지 규칙
- 한정 아이템·이벤트 종료를 이유로 불안 또는 결제를 압박하는 알림을 쓰지 않는다.
- 스트레스는 사용자를 진단하거나 비난하는 말로 표현하지 않는다.
- 친구가 없다는 사실을 캐릭터의 외로움·성장 손실로 연결하지 않는다.
- 리듬게임의 노트·판정·곡 구성은 이 WBS가 아니라 별도 리듬 명세에서 관리한다.
자세한 기능 범위는 최종 기능 정의서를 따른다.