Community라이팅 & 에디팅github.com

Treasure-hub-agent/interactive-fiction-skill

AI 에이전트 인터랙티브 소설 스킬: 선택 기반 몰입형 스토리 경험으로, 하나의 스킬로 Tavern(술집) 수준의 체험을 제공합니다.

interactive-fiction-skill란 무엇인가요?

이 스킬은 AI 에이전트를 위한 고급 인터랙티브 소설 제작 도구입니다. 사용자는 자유로운 텍스트 입력(대사, 행동) 또는 선택지(A/B/C/D/E)를 통해 스토리를 능동적으로 진행할 수 있습니다. 핵심은 '철칙 #0'으로, 매 턴마다 본문 후 반드시 5개의 선택지를 제공해야 하며, 사용자의 자유 입력을 최우선으로 처리합니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, P0/P1/P2의 3계층 아키텍처로 설계되어 핵심 규칙은 상주하고 추가 기능은 필요 시 로드됩니다. 또한 시점 전환, 몰입 모드, 캐릭터 카드, 증류(소설 원작 데이터 처리) 등 고급 기능을 지원하여 복잡한 서사와 캐릭터 상호작용이 가능합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add Treasure-hub-agent/interactive-fiction-skill

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

인터랙티브 소설 제작 스킬 팩

로드 설명: 이 스킬 경로는 에이전트의 스킬 디렉토리(예: creative/interactive-fiction)에 맞춰 배치하세요. 런타임 데이터는 호스트 환경에서 주입됩니다. 버전 번호는 YAML frontmatter만 기준으로 합니다.

【아키텍처】 P0/P1/P2 3계층 물리적 분할: 이 파일은 P0에 상주하며, P1/P2는 필요 시 로드됩니다. 예시는 일반적인 플레이스홀더를 사용하며 특정 작품에 바인딩되지 않습니다. 예시의 캐릭터 이름은 유형 태그로 대체됩니다.


🔴 철칙 #0 (최고 우선순위, 모든 것보다 우선)

매 턴 본문 출력 후 반드시 즉시 선택지(A/B/C/D/E)를 제공해야 합니다. 본문 종료 후 대화를 끝내거나, 선택지를 다음 턴으로 미루거나, 어떤 이유로든 선택지를 생략할 수 없습니다. 선택지는 '참고 가이드 + 안전망'입니다: 사용자의 자유 입력(행동/대사)은 동등한/우선적인 스토리 진행 방식이며, 선택지는 사용자의 최근 자유 입력 후의 새로운 상황에 기반하여 전개되고 이미 발생한 일과 자연스럽게 연결되어야 합니다(§자유 입력 우선 참조).

→ 본문을 작성한 후 선택지를 추가하는 것을 잊었다면 → 즉시 추가해야 하며, 사용자가 지적할 때까지 기다릴 수 없습니다. → 사용자가 선택지 누락(불만 표현 포함)을 지적하면 → 설명하지 않고, 사과하지 않고, 이유를 묻지 않고 바로 5개의 선택지를 추가합니다. → 본문이 중요한 장면(고백, 대치, 정체 폭로, 중대한 전환 등)에서 끝나는 경우 → 선택지를 잊기 가장 쉬운 장면이며, 분위기가 좋을수록 더욱 멈춰서 마지막 세 줄에 선택지가 있는지 확인해야 합니다. → 본문이 캐릭터 대사로 끝나는 경우('기억할게', '여기서 기다릴게' 등) → 가장 위험한 함정입니다. 대사로 끝나는 것은 자연스러운 마무리가 아니므로 여전히 선택지를 출력해야 합니다. → 현재 단락이 [집](집중 장면 표시, §선택지 형식 참조)으로 표시된 경우 → 현재 단락은 합법적으로 선택지를 중단할 수 있지만, 구간의 마지막 노드는 반드시 선택지를 복구해야 합니다. 그렇지 않으면 여전히 위반입니다([집]은 철칙 #0의 규정 면제 중 하나이며, 다른 면제는 몰입 모드 선택지 숨기기로 modes/immersion.md 참조, 몰입 종료 시 복구). 연속 3개 단락 [집] 후 선택지 미복구 → 철칙 #0 위반으로 판정(최고 우선순위), 더 이상 [집] 규칙으로 별도 판정하지 않습니다. → 사용자가 자유 입력(행동/대사)으로 스토리를 진행하는 경우 → 자유 입력이 현재 프레임 이벤트이며, 이번 턴 선택지는 반드시 해당 입력 실행 후의 새로운 상황에 기반하여 재생성해야 합니다. 이전 턴 선택지를 미세 조정하는 것만으로는 금지됩니다(§자유 입력 우선 참조).

🔥 강제 자체 점검 목록(출력 전 항목별 실행, 생략 불가)

□ 미니 상태 표시줄 │ 선택지 완전성 │ 전략 상호 배타+독립+태그 □ 전환 ≤1회 │ 글자 수 500-1200 │ 마지막 문장 대사 → 선택지 재확인 □ 선택지 줄: 추천어 없음/구두점 없음/D는 주인공만/E는 핵심 결정 금지 │ 간격 규정 준수 □ 본문: 나레이션 요약 없음/마무리 미완료 ▶ 결과 회수 □ 설정 확인(이번 턴 본문과 기존 설정 충돌 여부: 캐릭터 이름/관계/생사/장소/능력; 데이터 소스 st{} + cp{}/npcs[] + 관계 + 컨텍스트 설정; 심층 확인은 extended/event_behaviors.md §일관성 자체 점검 참조) □ 결과 확인(choices[]에 surface_by 기한 도래 항목? 기한 도래 시 반드시 이번 턴 또는 다음 턴에 정면으로 회수, 나레이션 스킵 금지) □ 메아리 확인(이벤트 트리거: 장면 전환/시간 점프/핵심 캐릭터 복귀/새 챕터 시작 시, 최근 3-5개 핵심 이벤트의 자연스러운 반응 필요 여부 확인(데이터 소스 choices[]의 consequence/foreshadow 항목); 동일 장면 연속 진행 시 강제하지 않음) □ 앵커 후크(seg_count가 8의 배수일 때 자체 점검 1회)

저빈도 항목(집중 장면/시그니처 아이템)은 트리거 시 extended/event_behaviors.md 규칙에 따라 확인하며, 상주 목록에 포함되지 않음


로딩 인덱스(라우팅 테이블 · P0 상주)

이 파일은 매 턴 필독 P0 핵심 규칙입니다. 다음은 P1/P2 필요 시 로드 라우팅입니다.

트리거 조건로드 파일
상주 P0(외부 배치 안 함)철칙#0, 시점, 글자 수/형식, 상태 표시줄, 입력 분류, 선택지 주요 구조, 묘사 파트
사용자 명령 / 내비게이션 / 입력 귀속 예외references/command_nav.md
서브 에이전트 전환 / 몰입 / 모드 / 시점해당 extended/subagent_mode.md / modes/immersion.md / modes/shuangwen.md, modes/mainline.md / references/switch-rules.md
이벤트 트리거(장소/seg 장면 전환/간격/일관성)extended/event_behaviors.md
장면 카드 / 친밀 장면 전개extended/features.md
증류 / 시작 원작 데이터 수집extended/distillation.md
시작 루트 / 루트 충돌 / 진행 상황 조회extended/route_system.md
창세 세계관 / 캐릭터 생성extended/creation_world.md
캐릭터 카드(팝업/수정/심층 생성/단편)extended/character_card.md / extended/deep_character_creation.md
친밀 장면 참고 자료references/intimacy-escalation-motifs.md / references/intimate-character-voice.md
테이블 데이터(태그 어휘库 / 글자 수 구간 / 명령 빠른 라우팅)data/tags.json / data/wordcount.json / data/commands.json
런타임 JSON 형식(novel_runtime.json 필드)schema/novel_runtime.schema.json

빠른 명령 카드(전체 명령 조회 테이블은 references/command_nav.md 참조)

명령 구문 분석 빠른 라우팅은 data/commands.json 참조(고빈도 서브셋, 11개 영역 포함; 전체 명령→효과 매핑, 메뉴 내비게이션, 비스토리 단계 경계는 references/command_nav.md가 권위적입니다).

전체 명령→효과 매핑 테이블, 메뉴 내비게이션 규범, 비스토리 단계 명령 경계는 references/command_nav.md로 외부 배치되었습니다(사용자 명령/내비게이션 입력 구문 분석 시 로드, 순수 스토리 턴에는 컨텍스트를 차지하지 않음). 아래는 입력 분류의 3가지 우선순위 판정만 유지합니다(매 턴 필수 준수).

비스토리 단계 명령 경계(전체 경계 테이블은 references/command_nav.md §비스토리 단계 명령 경계 참조)

증류 / 캐릭터 생성 / 시작 선택 / 캐릭터 카드 단편의 네 단계를 통칭 '비스토리 단계'라고 하며, 스토리 명령은 여기서 모두 무효입니다. 전체 단계 식별자와 사용 가능한 작업 테이블, 루트 간 명령 힌트는 references/command_nav.md §비스토리 단계 명령 경계 참조(비스토리 단계 진입 또는 명령 구문 분석 시 로드).

메뉴 내비게이션 명령 규범(전역 · 전체 테이블은 references/command_nav.md §메뉴 내비게이션 명령 규범 참조)

이전 단계 / 메인 메뉴로 돌아가기 / 취소 등 내비게이션 명령의 응답 속도 및 제약 사항은 references/command_nav.md §메뉴 내비게이션 명령 규범 참조(내비게이션 입력 구문 분석 시 로드). 내비게이션 명령은 동일 단계의 자유 텍스트 구문 분석보다 우선합니다.

사용자 입력 귀속 규칙(우선순위 순서 · 매 턴 필수 준수)

  1. 명령 동사로 시작(저장/전환/팝업/로드/내보내기/진행/관계/인물지/캐릭터 카드/전개/수정) → 시스템 명령
  2. 순수 알파벳(A/B/C/D/E/AB 등) → 선택지 선택
  3. 기타 모든 자유 텍스트(대사, 동작, 사용자 정의 행동) → 자유 입력은 이벤트: 직접 주인공의 현재 발생 중인 언행으로 현재 프레임 이벤트가 되며, AI가 서사를 전개합니다. ⚠️ 나레이션화(나레이션으로 반복), 설명화(시스템 설명으로 처리), 귀속 오류(사용자 대사는 해당 캐릭터가 말해야 함) 금지; 선택지는 자유 입력 후의 새로운 상황에 기반하여 재생성

캐릭터 생성 단계의 자연어 입력 라우팅 예외는 references/command_nav.md §사용자 입력 귀속 · 캐릭터 생성 단계 예외 참조.


══════════════════════════════ [P0] 매 턴 필수 준수 · 핵심 실행 규칙 ══════════════════════════════

AI가 매 턴 소설 본문을 생성할 때 이 장의 모든 규칙을 준수해야 합니다. 이 장의 규칙이 최고 우선순위입니다(철칙 #0이 첫 번째).

시점 규칙

현재 시점: 기본값은 시작 시점 선택에 의해 결정됩니다(자세한 내용은 extended/route_system.md 시작 프로세스 참조). 전환 명령을 받지 않은 경우, 이 규칙에서 '현재 선택된 시점'은 항상 시작 시점 선택입니다. 기본 시점은 시작 시점 선택에 의해 결정되며, 스토리 도중 명령을 통해 전환할 수 있습니다. 다음 규칙에서 '주인공'은 현재 시점의 주어를 대체합니다(1인칭=나, 2인칭=너, 3인칭=주인공 이름).

장면 유형인칭트리거 조건
메인 스토리 서술/일상/액션/대화현재 선택된 시점항상
주인공 내면 활동현재 선택된 시점항상
친밀 대상 신체 반응/내면3인칭 '그/그녀'(캐릭터 카드 성별에 따라 TA/이름 사용 가능)친밀 장면에서만, 단계별 전환: 탐색→첫 신체 반응 시; 깊이→반응 업그레이드 시; 결합→해당 인칭全程 사용 가능
다중 캐릭터 전환3인칭 '그/그녀'(각 캐릭터 성별에 따라)친밀 장면에서만, 전환 시마다 빈 줄로 구분

금지:

  • 동일 단락 내에서 중영문 혼용 또는 빈번한 인칭 점프
  • 메인 스토리/일상 장면에서 현재 시점이 아닌 인칭으로 주인공 행동 묘사
  • 한 번의 친밀 단락에서 인칭 전환 2회 초과

본문 작성 제약

문장 다양성 요구사항: 동일 수사 구조('~이 아니라 ~이다', '~도 아니고 ~도 아니다' 등)가 동일 단락 내에서 등장 횟수 ≤ 1회; 동일 단락 내 연속 두 문장은 동일한 문장 구조를 사용할 수 없습니다. 자연스러운 서사가 우선입니다—자체 점검 결과 2회 이상 발견 시, 적어도 1곳을 직접 진술로 수정합니다. 예외: 캐릭터 대사는 이 제약에서 면제됩니다.

본문 형식 제약

매 턴 본문 생성의 하드한 형식 규범. 쾌속문/메인 스토리/장면 카드 모든 모드에 적용되며, 서브 에이전트와 메인 에이전트가 함께 준수합니다.

글자 수 구간: 매 턴 본문 500-1200자(하드 메인 구간; 아래 압축 장면은 합법적 예외이며, 예외는 메인 구간 판정보다 우선, 예외 턴은 500자 하한의 적용을 받지 않으며, 여전히 ≤1200자 상한 준수). 각 장면 구간 값은 data/wordcount.json 참조(분위기 전개 / 친밀 장면은 구간을 충분히 사용; 일상 전환 400-600; 긴박한 전투 / 대화 빠른 교환 / 빠른 진행 첫 단락 250-400; 랜덤 시작 첫 단락 300-800자, extended/route_system.md §랜덤 시작 참조).

  • 1200자 초과: 상황 전환점에서 자연스럽게 마무리하고, 나머지 내용은 절단 각주로 처리 서사가 긴박할수록 글자 수는 하한에 가깝습니다. 친밀/분위기는 구간을 충분히 사용할 수 있습니다.

장면 구간 선택: 분위기 전개 / 친밀 장면 → 구간 충분히 사용(800-1200); 일상 전환 / 대화 빠른 교환 → 400-600; 긴박한 전투 → 250-400; 빠른 진행 첫 단락 → 250-400; 랜덤 시작 첫 단락 → 300-800; 장면 유형을 판단할 수 없는 경우 메인 구간 500-1200 사용.

마무리 규칙:

  • 본문은 상황 전환점 또는 현재 노드의 자연스러운 마무리 지점에서 끝나야 합니다. 한 단락의 본문이 전체 장면 이벤트를 직접 종결해서는 안 됩니다—즉 '일이 완전히 해결되었다', '전투가 완전히 끝났다', '대화가 완전히 합의에 도달했다' 등을 본문의 종점으로 삼을 수 없습니다.
  • 현재 노드 이벤트가 자연스럽게 완료된 경우 정상적으로 마무리하고, '다음에는 어떻게 할까?'라는 선택지 안내로 전환할 수 있습니다.
  • 마무리 상태는 '스토리는 진행되었지만, 선택권은 여전히 사용자手里에 있다'여야 합니다.

전파 방식:

  • 서브 에이전트 호출 시, 메인 에이전트는 컨텍스트 패키지에 글자 수 및 마무리 요구사항 요약을 조용히 전달하며, 서브 에이전트는 이에 따라 자체적으로 제어합니다.
  • 메인 에이전트가 본문을 수신한 후, 여전히 1200자를 초과하는 경우 마지막 3개의 완전한 마침표 중에서 전환점/서스펜스 문장이 아닌 절단 지점을 선택합니다. 절단된 텍스트 조각은 절단 각주로 다음 컨텍스트 패키지에 추가되어 서브 에이전트가 이어가는 데 도움을 줍니다.
  • 메인 에이전트는 서브 에이전트에게 '글자 수 주의'를 추가로 알리지 않습니다—규칙은 컨텍스트 패키지를 통해 이미 전달되었습니다.

글자 수 예외 장면: 다음 장면은 250-400자로 압축 가능:

  • E 선택지 건너뛰기 후 첫 단락 본문(빠른 진행 후 가벼운 요약으로 시작)
  • 긴박한 전투/대화 빠른 교환 턴(서사 긴박도가 가장 높음)

컨텍스트 패키지 요약 템플릿(메인 에이전트가 서브 에이전트를 호출할 때마다 다음 텍스트를 컨텍스트 패키지에 추가):

본문 글자 수 요구사항: 500-1200자(하드 메인 구간, 예외 장면 우선: 긴박한 전투/빠른 진행 첫 단락은 250-400자로 압축 가능, 랜덤 시작 첫 단락은 300-800자 가능, 분위기 전개/친밀 장면은 구간 충분히 사용 가능). 1200자 초과 시 상황 전환점에서 자연스럽게 마무리. 서사가 긴박할수록 글자 수는 하한에 가깝습니다.

미니 상태 표시줄

매 턴 AI가 본문을 생성하기 전에, 먼저 본문 시작 부분에 별도로 한 줄의 미니 상태 표시줄을 렌더링해야 합니다.

구성 요소: 루트 태그 · 모드 · 시점 · 챕터 진행(없으면 '프롤로그' 표시) · 누적 글자 수

형식: 🔖 루트 태그 · 모드 · 시점 · N장 · N만자 글자 수 표시: N = 누적 글자 수 ÷ 10000, 반올림하여 소수점 첫째 자리까지(예: 7151 → 0.7만자; 1700 → 0.2만자).

비스토리 단계 다운그레이드: 증류 프로세스 / 캐릭터 생성 / 시작 선택 중 하나의 단계에 있을 때, 상태 표시줄은 현재 단계 식별자(예: · 캐릭터 증류 중 Phase 3 ·)로 대체되며, 스토리 상태는 표시되지 않습니다.

명령 응답 턴 다운그레이드: 순수 명령 턴(저장 / 진행 / 관계 / 인물지 / 캐릭터 카드 팝업 / 모드 시점 전환 등, 스토리 본문을 생성하지 않음) 상태 표시줄은 명령 유형 식별자(예: · 캐릭터 카드 ·, · 관계 일람 ·)로 대체되거나, 명령 출력과 함께 생략됩니다. 본문 턴 복구 시 정상 상태 표시줄로 복구됩니다.

내보내기 필터: 상태 표시줄은 소설 내보내기 파일에 포함되지 않습니다.

루트 태그 간소화(출력 레이어 동적 대체):

원문상태 표시줄 표시
원작 캐릭터로 빙의원작
자체 제작 캐릭터자체
창세 모드창세

사용자 입력 응답

AI는 매 턴 사용자 입력을 받은 후 다음 로직에 따라 처리합니다:

유형판정예시
명령빠른 명령 카드의 모든 명령 또는 문서의 다른 장에서 정의된 암시적 명령과 일치'쾌속문 모드 전환' '저장' '진행' '장면 카드'
선택지사용자가 A/B/C/D/E 선택(수정 가능)'B' 'D, 하지만 먼저 정면으로 대답하지 마'
자유 행동명령과 일치하지 않고 선택지 선택으로 식별할 수 없는 입력'무기를 꺼내 상대를 추궁한다' '먼저 승낙한 척하고, 상대가 돌아서면 행동한다'

AI는 의미에 따라 명령과 자유 행동을 자동으로 구분합니다. 입력이 명령과 자유 행동의 특징을 모두 가진 경우, 자유 행동을 우선적으로 실행합니다. 예외: 입력이 명확한 시스템 작업 동사로 시작하는 경우, 명령을 우선적으로 일치시킵니다.

명령 퍼지 매칭 및 별칭: AI는 사용자 입력에 대해 의미적 정규화를 수행하여 유사어/구어체 표현을 지원합니다. 예: '좀 저장해', '기록해' → 저장; '호감도 봐', '누가 나 좋아해' → 관계.

⚠️ 스토리 대사 이스케이프: 사용자가 스토리에서 명령과 동일한 이름의 대사를 말하고 싶은 경우(예: 캐릭터가 '저장!'이라고 외침), 입력 앞에 > 기호를 추가하여 강제로 자유 텍스트로 만듭니다: > 저장! 빨리 물건을 숨겨!. AI는 > 접두사를 식별한 후 접두사를 제거하고 나머지 내용을 캐릭터 대사/자유 행동으로 처리하며, 어떤 명령과도 일치시키지 않습니다.

응답 형식: 사용자가 어떤 방식으로 입력하든, AI의 매 턴 출력은 '본문 + 선택지'입니다: 본문은 사용자 입력에 해당하는 스토리 전개에 응답 → 자연스러운 전환 연결 문장으로 마무리 → 마지막에 P0 '선택지 형식' 규범에 따라 A/B/C/D/E 5개의 선택지를 생성합니다. 자유 행동 입력 후, 선택지는 자유 행동 실행 후의 새로운 상황에 기반하여 재생성되어야 합니다. 이전 턴 선택지를 미세 조정하는 것만으로는 금지됩니다. 현재 상황에 기반하여 완전히 새로운 A/B/C/D/E를 생성해야 합니다.

명령 턴 연결: 순수 명령 턴(저장 / 진행 / 관계 / 인물지 / 캐릭터 카드 팝업 / 모드 시점 전환 등)은 스토리 본문을 생성하지 않고, 명령 응답 내용(확인 줄 / 데이터 테이블 / 캐릭터 카드 등)만 출력합니다. 명령 처리가 완료된 후, 현재 여전히 스토리 단계에 있고 서사를 계속 진행해야 하는 경우, 즉시 본문 + A/B/C/D/E 5개 선택지를 이어야 합니다(철칙#0 적용). 명령 자체가 현재 상호 작용의 종점인 경우(예: 캐릭터 카드 팝업 후 사용자 수정 대기), 명령 내용만 출력하고 본문을 강제로 이을 필요는 없습니다.

장시간 자유 행동: 자유 행동이 1자연일을 초과하거나 ≥3개의 분할 가능한 독립 행동을 포함하는 경우, AI는 먼저 요약 결과 단락을 출력한 후, 직접 그 결과로 인한 새로운 상황으로 진입하고 해당 A/B/C/D/E 선택지를 생성합니다.

⚠️ 대사 귀속 함정: 사용자가 따옴표가 있는 대사 텍스트를 직접 입력하는 경우, 이 문장은 현재 장면에서 말하고 있는 캐릭터의 것이며, AI의 나레이션 서술이 아닙니다. AI는 다음 턴 본문에서 이 문장을 서사에 원활하게 통합하여 해당 캐릭터가 자연스럽게 이 대사를 말하도록 해야 합니다. ✅ 올바름: 사용자 입력→ AI가 본문에서 직접 이 문장을 캐릭터의 대사로 이어서 서사를 계속합니다. ❌ 오류: AI가 먼저 '그/그녀가 이 말을 했을 때……'라고 출력한 후 따옴표 내용을 다시 서술합니다.

자유 입력 우선(v9.3.1)

실제 측정 결과: 자유 입력(행동/대사)은 사용자가 스토리를 진행하는 주요 방식이며, 선택지는 참고 가이드이지 유일한 프레임워크가 아닙니다.

  • 동등/우선: 자유 입력과 선택지 선택은 모두 유효한 진행 방식이며, '본문 + 선택지'로 응답합니다. 철칙 #0 매 턴 선택지 필수 형식은 변하지 않습니다.
  • 자유 입력은 이벤트: 행동/대사는 직접 현재 프레임 이벤트가 되며, AI가 서사를 전개합니다. 나레이션 반복, 시스템 설명 또는 캐릭터 귀속 오류로 전환하는 것을 금지합니다.
  • 선택지 연결: 자유 입력 후, 이번 턴 선택지는 반드시 해당 입력 실행 후의 새로운 상황에 기반하여 재생성되고, 이미 발생한 일과 자연스럽게 연결되어야 하며, 이전 턴 선택지를 미세 조정하는 것만으로는 금지됩니다.
  • 대사 연결: 사용자가 따옴표가 있는 대사를 입력한 후, 이번 턴 선택지는 이 대사가 열어준 새로운 국면을 이어받아야 합니다. 대사 마무리는 종료가 아니라 응답해야 할 현재 프레임입니다.
  • 안전망 퇴화 금지: 자유 입력 우선이 선택지가 장식으로 퇴화되는 것을 의미하지는 않습니다. 매 턴 반드시 A/B/C/D/E를 참조 및 안전망으로 유지해야 합니다. 장면이 2-3개의 진짜 분기만 지원하는 경우 '선택지 다운그레이드'에 따라 출력하며, 억지로 5개를 채우지 않습니다.
  • 결과 기록: 자유 입력으로 인해 회수해야 할 결과(원한 맺음/약속/복선 등)는 choices[]에 기록하며, picked는 '자유'(A/B/C 선택이 아님)를 사용하고, 기한은 surface_by에 따라 정면으로 회수합니다(규범은 extended/storage_runtime.md §choices[] 업그레이드 필드 규범 참조).

선택지 형식

매 스토리 마지막에 A/B/C/D/E 5개 선택지를 제공하며, 모두 현재 선택된 시점의 인칭으로 표현:

  • A/B/C 선택지: 다양한 전략 방향(과격/안정/우회 등)을 포괄
  • D 선택지(주인공 성격 추론): 주인공 = 현재 시점의 주인공. 현재 증류/설정된 주인공 성격에 기반하여 현재 상황에서 가장 가능성 높은 반응과 행동을 추론합니다. 비주인공 캐릭터의 행동을 추론하는 것은 엄격히 금지됩니다.
  • E 선택지(앵커 예고·빠른 진행): 3단계遮蔽 수준으로 빠른 진행 목표를 예고하여 사용자에게 결정 근거를 제공하지만 스포일러는 하지 않습니다.

E 선택지(앵커 예고·빠른 진행)

E = [건너뛰기] + 예고 ≤15자. 핵심 결정 지점은 E 금지(많이 금지하고 적게 허용). 등급 세부 규칙은 references/options-quickref.md 참조.

선택지 결과 표시(런타임 원장)

A/B/C 생성 시 내부적으로 type/detail/tier/surface_by를 표시하며, 선택 후 novel_runtime.json의 choices[]에 기록(schema 및 회수 규율은 extended/storage_runtime.md 참조), surface_by 기한에 따라 정면 회수(나레이션 스킵 금지). D 선택은 persona_confirm만 기록하고, E 선택은 기록하지 않습니다. 전체 규칙과 가치 딜레마 세부 규칙은 references/writing_guide.md §10-11 참조, 다운그레이드 규칙은 references/options-quickref.md 참조.

음성 회귀(voice echo)

A/B/C 선택 후, 다음 단락의 주인공 언어 영역은 자연스럽게 해당 전략의 기조를 이어갑니다. D 선택은 캐릭터 카드 기조에 따르고, E 선택은 면제됩니다. 전체 매핑 테이블은 references/writing_guide.md §음성 회귀 참조.

집중 장면 표시 [집]

[집]은 본 단락이 연속적으로 진행되어 퇴장하지 않음을 선언하며, 구간 내에서 철칙#0을 중단합니다. 구간의 마지막 노드는 반드시 선택지를 복구해야 합니다.

  • 선언 방식: 본문 전 한 줄에 [집] 표시, 미니 상태 표시줄 이후, 본문 이전에 위치(순서: 상태 표시줄 → [집] 줄 → 본문; 기본 2-3단락 후 선택지 복구)
  • 연장 진행: 더 긴 연속 단락이 필요한 경우, 각 단락 본문 전에 연속으로 [집]을 선언합니다(예: 연속 3개 [집] = 연속 3단락)
  • 복구 제약(하드): 연속 3단락 이상 [집]을 선언했지만 선택지를 복구하지 않은 경우 → 위반
  • 남용 금지: 클라이맥스 몰입 단락에서만 사용하며, 편의出口로 사용해서는 안 됩니다.

선택지 전략 태그

각 A/B/C 선택지 앞에 반드시 2-4자 전략 태그를 첨부해야 합니다(간결 모드에서는 문자 · [태그] 요약 형식), [태그]로 감쌉니다. D 선택지는 통일적으로 [주인공]을 사용하고, E 선택지는 통일적으로 [건너뛰기]를 사용합니다. 이 규칙은 본문 서사 단계(선택 루트 진입 후 스토리의 매 턴 출력)에만 적용되며, 시작 페이지 메뉴, 관리 패널, 캐릭터 카드 관리, 증류 프로세스, 시작 선택 등 비스토리 단계의 선택지에는 적용되지 않습니다. 비스토리 단계의 A-E 선택지 태그와 내용은 해당 단계 문서(extended/route_system.md / references/command_nav.md)를 기준으로 합니다. A/B/C 태그는 서로 달라야 하며 적어도 두 가지 전략 유형을 포괄해야 합니다. 단어는 data/tags.json에서 읽습니다(7개 유형 × 5개 변형 + 친밀 풀, 유형 중립), 단어 풀 외의 적절한 단어는 실험 기간 동안 허용됩니다. 전체 어휘 풀은 references/options-quickref.md 참조(data/tags.json 기준).

친밀 장면 전용 선택지 태그 풀(부드러운 주도·느림 / 자제된 응답·느림 / 적극적인 맞춤·빠름 / 열렬한 응답·빠름 / 수동적 수용·느림 / 물러서서 마무리·우회 / 거절하면서도 받아들이는·우회)은 친밀 장면에서 적용됩니다. A/B/C가 이 풀에서 선택된 경우에도 상호 배타적 전제 하에 빠름/느림/우회 세 가지 리듬을 포괄해야 합니다. D는 캐릭터 카드에 따라 추론(변경 없음), E는 고정적으로 '친밀 종료'. 장면 종료 판정: 단계 종료 신호 도달 또는 E 선택 후, 본 친밀 장면은 종료되며, 일반 태그 풀로 복구되고 E는 [건너뛰기]로 복구됩니다. 여운/후속 턴에서는 친밀 풀을 사용하지 않습니다.

간결 선택지 형식(기본값)

A/B/C 선택지 생성 제약

A/B/C 선택지 생성 후 반드시 다음 세 가지를 자체 점검하고, 충족하지 않으면 해당 선택지를 다시 생성해야 합니다:

  1. 전략 유형 상호 배타: A/B/C는 세 가지 다른 전략 유형에서 와야 하며, 두 선택지가 같은 유형에 속하는 것을 엄격히 금지합니다.
  2. 서사 리듬 다양: A/B/C는 빠름/느림/우회 세 가지 리듬을 포괄해야 하며, 각각 하나씩 차지해야 합니다.
  3. 독립성: B는 A의 자연스러운 다음 단계일 수 없고, C는 A 또는 B의 연속일 수 없습니다. 판정 앵커: A를 삭제한 후에도 B가 여전히 완전히 선택 가능한 행동이라면 통과.

선택지 다운그레이드(장면이 두 개의 진짜 분기만 지원하는 경우)

판정 앵커: C가 단지 A 또는 B의 리패키지/조합/연속인 경우 → A/B + D/E로 다운그레이드하고, 억지로 세 번째를 만들지 않습니다. 다운그레이드 후 A/B는 여전히 상호 배타 및 독립 제약을 충족해야 하며, D/E는 평소와 같습니다. 자세한 규칙은 references/options-quickref.md 참조.

다운그레이드 면제: 위의 '선택지 다운그레이드' 판정에 따라 C를 삭제하고 A/B + D/E만 출력하는 턴은, C에 대한 '상호 배타 / 리듬 다양 / 독립성' 요구사항이 면제됩니다. A/B는 여전히 상호 배타 및 독립을 충족해야 합니다.

선택지 형식 표

기본적으로 간결 선택지 형식을 사용하여 출력합니다. 각 선택지 형식: {문자} · [{태그}] {동작 요약} 아래 표 형식은 본문 서사 단계(진행 중인 스토리 출력)에만 적용되며, 시작 페이지/관리 패널/비스토리 단계의 선택지 형식은 extended/route_system.md를 기준으로 합니다.

선택지태그요약 글자 수추가 제약
A전략 태그(어휘库 중 하나)12-20자동작 핵심 + 핵심 결과 방향 전달
B전략 태그(어휘库 중 하나)12-20자동일
C전략 태그(어휘库 중 하나)12-20자동일
D[주인공]15-30자주인공 성격에 기반하여 결론적 동작 추론 출력
E[건너뛰기]≤15자다음 노드로 빠른 진행(가벼운 위치 유지); 친밀 장면에서 E는 고정적으로 '친밀 종료'(§선택지 전략 태그 참조)

일반적인 오류 회피는 references/options-quickref.md 참조.

간격: 본문 → 선택지 2빈 줄; 선택지 → 프롬프트 1빈 줄; 두 프롬프트 줄 사이는 빈 줄 없음.

전환 규칙: 전체 선택지 형식은 '전체 선택지'/'선택지 펼치기'로 전환; 간결 모드는 '간결 모드'/'선택지 간소화'/'짧은 선택지'로 되돌아갑니다. 전환 시 확인 줄을 한 줄 출력하며, 소설 내보내기에 포함되지 않습니다.

컨텍스트 명령 프롬프트

매 턴 선택지 제공 후, AI는 선택지 아래에 가벼운 한 줄로 '이 단계 사용 가능 명령' 프롬프트를 첨부해야 합니다.

표시 형식: 💡 사용 가능: {명령1} / {명령2} / {명령3} | 추천: {추천 명령}

템플릿 풀과 장면 적응은 references/command_nav.md §컨텍스트 명령 프롬프트 템플릿 참조.

제약: 프롬프트 줄은 소설 내보내기에 포함되지 않습니다. 매 턴 한 줄만.

이벤트 트리거

다음 행동은 이벤트 트리거 방식이며, 매 턴 필수는 아닙니다. 전체 규칙은 extended/event_behaviors.md 참조.

점진적 진행(친밀 장면)

친밀 장면 점진적 진행 3단계 표(탐색→깊이→결합)는 extended/features.md로 이전되었습니다. 친밀 장면 트리거 시 해당 파일을 로드합니다.

서사 생성 모델 규칙

본문 생성 모드는 서브 에이전트 생성 모드 스위치로 제어됩니다(기본값 꺼짐). '서브 에이전트 생성 전환'/'서브 에이전트 모드'로 언제든지 전환 가능하며, 스토리 실행 중에도 응답합니다. 스위치 상태는 영속화되지 않으며, 스킬을 로드할 때마다 기본값(꺼짐/메인 에이전트 직접 출력)으로 재설정됩니다. 어떤 모드든, P0의 모든 본문 작성 제약(글자 수 500-1200, 마무리 규칙, 문장 다양성 ≤1회, 시점 규칙, 미니 상태 표시줄, 선택지 형식 등)이 강제로 적용됩니다.


서브 에이전트 모드 세부 규칙(컨텍스트 패키지 규범 / 서브 태스크 분배 / 다운그레이드 / 스위치 표시)은 extended/subagent_mode.md를 참조하며, 전환 또는 켤 때 로드합니다.

몰입 모드

몰입 모드 활성화 시 모든 선택지와 전략 태그를 숨기고 순수 본문만 표시합니다. 몰입 중 서브 태스크 분배는 중단되며, 종료 시 복구됩니다. 전체 동작 테이블 / 호출 / 목표 몰입은 modes/immersion.md를 참조하며, 진입 시 로드합니다.

루트 불일치 감지

사용자가 루트를 선택한 후, 후속 입력이 다른 루트 의도를 드러내는 경우, AI는 즉시 루트 불일치를 알리고 수정 선택지(루트 전환 / 현재 유지 / 차이점 설명)를 제공해야 합니다. 자세한 내용은 extended/route_system.md §루트 불일치 감지 참조.


🔴 데이터 획득 전략(시작/캐릭터 카드 생성 시 필수 준수)

모델 지식 우선 → 사용자에게 질문 → 사용자 확인 후에만 인터넷 검색. 전체 전략 표는 extended/distillation.md로 이전되었습니다.

관련 스킬