Files
ProjectSS/docs/내러티브태그_시스템_작업지시서.md
kyoung5seo 31558edcb2 Part A (연대기 ↔ 내러티브 태그 개념 분리) — 문서 6개 반영
시스템 기획서: 내러티브 태그 항목에서 연대기 서술 제거, 연대기를 독립 항목으로 신설
스토리 바이블: "연대기의 편찬" 테마를 '결정 장부' 관점으로 재서술
텍스트 와이어프레임: 팝업을 '세계의 상흔'(태그) / '연대기'(결재 이력) 2종으로 분리, 엔딩 화면에 연대기 요약 블록 추가
비전 문서 / PRD / 유저플로우 / 개발순서: 각각 정의 분리 및 분리 저장 명시
Part B (스니펫 시스템) — B-4 결정사항(은근한 헌신 농도, 고정 마침 도장 리스트) 반영

narrative_tags.json 10종 전체에 snippet(1문장, 숫자 1개, 거리감 있는 관료체) + snippet_type 필드 추가 — 시스템형 7 : 사람형 3 비율. update_csv_tags.js는 이 파일을 생성/가공하지 않아 스크립트 변경 불필요했습니다.
빌드(vite build) 정상 확인.
2026-07-13 21:22:42 +09:00

8.3 KiB

내러티브 태그 시스템 작업 지시서

범위: (A) 연대기 ↔ 내러티브 태그 개념 분리 + (B) 내러티브 태그 스니펫 시스템 도입.

작업 환경: Claude Code 세션에서 각 파일을 열어 해당 섹션을 대조 후 반영. 아래 문구는 리포 실제 텍스트와 100% 일치하지 않을 수 있으므로 의미 기준으로 수정할 것.

주의: narrative_tags.json 콘텐츠(스니펫 등)는 자유롭게 초안·반영 가능. 단 update_csv_tags.js보호된 스크립트 수정이 필요해지면 임의 실행 금지 — 근거 설명 → diff 확인 → 승인 절차를 따를 것.


PART A. 연대기 ↔ 내러티브 태그 분리

A-0. 개념 정의 (기준선)

구분 내러티브 태그 (Narrative Tag) 연대기 (Chronicle)
본질 결과 — 세계가 어떻게 되었는가 원인 — 내가 무엇을 어떻게 결재했는가
성격 명사 · 세계의 상흔 동사 · 국장의 결정 로그
구성 키워드 + 스니펫 + 엔딩 조건 + 페이즈 축 등장한 결재 카드 + 플레이어 선택(좌/우/위) 이력 (시간순)
진입점 좌상단 [📖 4/8] 카운터 → '세계의 상흔' 팝업 별도 로그 버튼 + 엔딩 화면 '이번 회차 결정 요약'

한 줄 기억표: 태그는 스토리의 '무엇', 연대기는 '어떻게'. 스니펫은 태그 쪽에 귀속된다 (태그의 살). 연대기와는 무관.

A-1. 시스템 기획서 — Project SS 서사형 덱빌딩 게임 시스템 기획서.md

  1. 내러티브 태그 항목에서 연대기 서술을 제거. 태그 항목엔 스토리 전달(스니펫) + 엔딩 조건 + 페이즈 축만 남김.
  2. 시스템 목록에 독립 항목 신설:

    연대기 (Chronicle): 국장이 결재한 카드와 그에 대한 선택(좌/우/위)을 시간순으로 기록한 결정 장부. 내러티브 태그가 '세계의 결과'라면, 연대기는 '국장의 원인 이력'이다.

A-2. 스토리 바이블 — Project SS 스토리 바이블 v3.0.md

2장 "연대기의 편찬(The Chronicle)" 테마를 '결정 장부' 관점으로 재서술:

국장의 모든 결재는 되돌릴 수 없는 기록으로 남는다. 세계의 상흔(내러티브 태그)이 '무엇이 벌어졌는가'를 말한다면, 연대기는 '누가 그렇게 결정했는가'를 말한다. 플레이어는 회차가 끝난 뒤 이 장부를 되짚으며, 멸망이 사고가 아니라 자신의 서명들이 쌓인 결과였음을 마주한다.

A-3. 텍스트 와이어프레임 — ProjectSS 텍스트 와이어프레임.md

  1. 3.1 팝업 2종 분리:
    • '세계의 상흔' 팝업: [📖 4/8] 터치. 본문 = 태그 키워드 + 스니펫 시간순.
    • '연대기' 팝업(신규): 별도 로그 버튼. 본문 = 결재 카드 + 선택 이력 시간순.
      [일상] 오염된 장부 승인
        └ 좌(예산+): 유가족 위로금은 예비비 충당
      
  2. 3.2 엔딩 화면: '이번 회차 연대기(결정 요약)' 블록 추가.

A-4~A-7. 나머지 문서 (한두 줄 수정)

  • 비전 문서 4-C: 연대기 = 결재 카드·선택의 시간순 결정 장부. 세계 상태는 태그가 담당(분리).
  • PRD 5장: 연대기(결재 결정 이력) / 내러티브 태그(엔딩·세계 상태) 각주 분리.
  • 유저플로우 4.4: 연대기와 태그 목록을 분리 저장으로 명시.
  • 개발순서 Phase 4: 연대기 기능과 태그 뷰('세계의 상흔')를 별도 UI로 분리 구현 명시.

PART B. 내러티브 태그 스니펫 시스템

태그 키워드만으로는 서사 체감이 약함. 각 태그에 1~2문장 결과 보고서 스니펫을 붙여 살을 부여한다. 그레이박스 원칙 안에서 순수 텍스트로 검증 가능.

B-1. 스타일 가이드 (확정)

톤 3원칙

  1. 거리 유지 — 감정 형용사·판단·괴수 외형 묘사 금지. 오직 기록·숫자·행정 용어.
  2. 숫자 하나 — 스니펫마다 구체 숫자 정확히 1개(예: 14명, 47건, 15%). 냉혹한 비용편익의 앵커.
  3. 인정 유예 — 스니펫은 위로·의미 부여를 하지 않는다. 인정(감동)은 엔딩/연대기 회고의 몫으로 미룬다.

포맷 골격 사실 진술 → 행정적 뒤틀림 → [처리 상태]로 종결

  • 마침 도장(각인층): 모든 스니펫은 결재 상태어로 끝난다(처리됨 / 승인됨 / 종결됨 / 이관됨 / 반려됨 / 미반영됨 등). 이 게임만의 문장 지문.

유형 2종 — 비율 약 7:3

  • 시스템형(70%): 시스템의 부조리가 주인공.
  • 사람형(30%): 익명의 개인이 데이터 이상치로만 존재('숨겨진 헌신'). 엔딩/변주 콜백용.

설계 근거(참고 문서에서 이식): 감동 공식(거리+숨겨진 헌신+인정+의미의 역류) — 거리는 문체로 확보, 헌신은 사람형 스니펫에 매설, 인정은 엔딩에서 역류. 로그라이크 루프가 이 역류를 회차마다 반복시킨다.

B-2. 스키마 변경 (승인 필요 항목)

각 태그 객체에 두 필드 추가:

{
  "id": "quarantine_breach",
  "keyword": "격리 붕괴",
  "snippet": "격리동 전력 계통에 원인 불명의 수동 복구 기록 1건. 해당 시간대 출입 승인자 없음. 요원 K-771, 실종자 명단으로 이관됨.",
  "snippet_type": "human",
  "phase": 2
}
  • snippet (string): 태그 스니펫 본문.
  • snippet_type ("system" | "human"): 콜백 로직용. 엔딩/연대기 회고에서 해당 회차의 human 태그를 골라 "그때 K-771이…" 식 콜백 훅으로 사용.

narrative_tags.json 직접 수정은 가능. 단 이 파일이 update_csv_tags.js생성/가공되는 구조라면 스크립트에 신규 컬럼 반영이 필요하므로, 그 경우 diff 확인 → 승인 후 진행.

B-3. 샘플 배치 8종 (검토용 기준선)

시스템형 (5)

태그 스니펫
[실종] 7구역 정수장 근무자 14명 미귀가. 근태 시스템상 전원 '정상 퇴근'으로 처리됨.
[가스 폭발] 언론 브리핑상 '노후 배관 폭발'로 발표. 유가족 위로금 항목은 예비비로 충당, 회계 승인됨.
[매수] 3분기 감사 중 국장 명의 차명 계좌 3건 인지. 담당 조사관 해외 연수 발령으로 조사 중단됨.
[차원 균열] 12구역 상공 '접힘 현상', 위성 미검출. 목격 진술 47건 전원 상이. 관측 장비 오류로 종결됨.
[마녀사냥] '이웃이 변이체' 신고 폭증. 실제 변이 확인 0건, 자경단 폭행 사망 3건. 통계 비공개 결정됨.

사람형 (3) — 숨겨진 헌신

태그 스니펫
[격리 붕괴] 격리동 전력 계통에 원인 불명의 수동 복구 기록 1건. 해당 시간대 출입 승인자 없음. 요원 K-771, 실종자 명단으로 이관됨.
[결손 보전] 은폐 자금 결손분 340만, 익명 입금으로 충당. 입금자 추적 '불필요' 판정. 계정 종결됨.
[초과 근무] 작전부 잔업 신청 반려 건수 218건. 반려된 요원 전원 무급으로 현장 잔류 확인. 근태 기록 미반영됨.

B-4. 확정 대기 (스타일 가이드 완성 전 결정 필요)

  • 사람형 헌신 농도: ⑥~⑧을 더 은근하게 vs 더 드러나게.
  • 마침 도장 어휘: 자유 어휘 허용 vs 고정 리스트로 관리(처리됨/승인됨/종결됨/이관됨/반려됨/미반영됨…).

이 둘이 정해지면 스타일 가이드 확정 → 나머지 태그를 다음 배치들로 진행.


통합 체크리스트

Part A (개념 분리)

  • 시스템 기획서: 연대기 독립 항목 승격, 태그 항목 정리
  • 스토리 바이블: "연대기의 편찬" 결정 장부 관점 재서술
  • 와이어프레임: 팝업 2종 분리 + 엔딩 결정 요약 블록
  • 비전/PRD/유저플로우/개발순서: 정의 분리 및 분리 저장/분리 구현 반영

Part B (스니펫)

  • 스타일 가이드 확정(B-4 두 항목 결정)
  • narrative_tags.json 스키마에 snippet, snippet_type 추가
  • (해당 시) update_csv_tags.js 신규 컬럼 반영 — diff 승인 후
  • 샘플 8종 반영 → 검토 → 나머지 태그 배치 확장
  • 스토리 바이블 톤 앤 매너에 스니펫 3원칙·포맷 규칙 문서화(선택)