등급 1~10 확장 + 라운드 주목도 하드 캡 재구현, 문서 체계 정비

서울 PC에서 Remote-SSH로 작업하던 중 연결이 끊겨 커밋 전 상태로 유실된
2026-09-15 결정사항(등급 1~4→1~10 확장, 5장 포커 핸드, 주목도 기반 페널티,
토큰 1종 통합, 상점/규약 재작성)을 평택 로컬 체크아웃에서 전체 재구현했다.
그 과정에서 라운드/회기 구조를 오해해서 잘못 반영했던 부분을 다시 고쳤다.

**데이터**
- cards.csv 43개 선택지, pollution_pool.csv 재매핑 — 등급 1·3 공백을 없애고
  1~10 전 구간을 채움 (평균 등급 4.14, 8결재 기준 예상 주목도 33)
- pollution_pool.csv에 등급 1·3 전용 오염 카드 8개 신규 추가 (축별 2개)

**게임 루프**
- 라운드/회기 이층 구조 도입 → 원래 의도(라운드마다 정산·의회를 거치는 것)와
  어긋난 오해로 판명, 단일 라운드 구조로 환원
- 라운드 종료 조건을 "결재 8건 고정"에서 블랙잭식 하드 캡으로 교체 —
  주목도가 라운드 한도(21 + 라운드당 +5)를 넘으면 합본 기회 없이 즉시 강제
  종료(버스트), 한도 밑에서는 "정산하기"로 언제든 자율 종료 가능
- CouncilScreen: 징벌 규약 5개 초과 시 목록 접기/펼치기 (§9.2 UI 요건)

**문서 체계**
- CLAUDE.md: 흩어진 기획 문서 7종 참조를 코어시스템 기획서 단일 참조(§ 매핑
  포함)로 교체, Phase 진행 표 폐지 후 §17 체크박스를 진행 상황 원본으로 지정
- CLAUDE.md에 "결정 노트" 규칙 신설 — T-decision.md 양식 + DEVLOG 위키링크 연동
- docs/DEVLOG.md 신규 작성 (구 버전은 old/2026.09.04/ 보관)
- 결정 노트 2건 작성: 등급확장-주목도시스템, 라운드-주목도-하드캡-복원
- ProjectSS_코어시스템_기획서.md §2/§4.2-B/§17/§19/§20을 현재 결정에 맞게 갱신

Playwright로 등급 1·3 카드 실등장, 라운드 번호 증가, 주목도 초과 시 버스트→
상점 강제 전환까지 실제 브라우저에서 확인. 콘솔 에러 0건.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
kyoung5seo
2026-09-16 23:09:55 +09:00
co-authored by Claude Sonnet 5
parent cde44c4f2c
commit 0a065068c1
30 changed files with 1585 additions and 668 deletions
+288 -112
View File
@@ -31,23 +31,46 @@
## 2. 코어 루프
> **2026-09-16 결정**: 라운드/회기 이층 구조는 폐지했다. **라운드 하나 = 결재하다 정산(상점)→의회로 이어지는 단일 사이클**이다. 결정 노트: `docs/decisions/2026-09-16-라운드-주목도-하드캡-복원.md`.
### 2.1. 루프
```
[결재 단계] 딜레마 카드 좌/우 스와이프 → 오염 카드 획득
↓
오염 카드는 [책상]에 적재 (무제한, 상시 노출)
↓
적재량에 따른 누진 패시브 페널티 (게이지 상승 + 토큰 지출 가산)
↓
기호를 맞춰 [합본 결재] → 페널티 소멸 + 명분 + 토큰 + 실적 점수 + 자산 트리거
↓
[정산 단계] 상점 — 토큰으로 자산·소모품·전례 구매
↓
[의회 단계] 실적 감사 + 규약 표결 → 다음 라운드 룰 변경
↓
반복. 적대 임원 9명 도달 시 탄핵 발생 → 신임 위원회 지명으로 방어
결재 카드 등장 → 좌/우 오염 선택 → 주목도 += 선택한 카드 등급
↓
총 주목도가 이번 라운드 한도 이하? → 계속 결재할지 자율 선택
총 주목도가 이번 라운드 한도 초과? → 그 즉시 라운드 강제 종료(버스트)
↓
언제든 [상신](합본) 가능 · 한도 밑에서는 언제든 자율 [정산하기]도 가능
↓
미사용 카드는 다음 라운드로 이월
↓
[정산 단계] 상점 — 토큰으로 자산·소모품·전례 구매
↓
[의회 단계] 실적 감사(이번 라운드 누적치) + 규약 표결 → 다음 라운드 룰 변경
↓
다음 라운드 (주목도 한도 상승)
```
**라운드 구조**: 결재 N건 → 정산(상점) → 의회 → 다음 라운드
반복. 적대 임원 9명 도달 시 탄핵 발생 → 신임 위원회 지명으로 방어.
### 2.2. 라운드 종료 조건 (블랙잭식 하드 캡)
라운드는 둘 중 하나로 끝난다 (한도·증가폭 수치는 가안, §20.1 튜닝 대상):
1. **자율 종료 — "정산하기"**: 주목도가 한도 밑인 동안, 플레이어가 아무 때나 정산하기를 눌러 라운드를 마치고 상점으로 넘어갈 수 있다. "한 장 더 받을까 말까"의 선택권은 항상 플레이어에게 있다.
2. **강제 종료 — 버스트**: 결재 직후 총 주목도가 이번 라운드의 한도를 넘으면 그 자리에서 즉시 라운드가 끝난다. **합본 기회 없이** 카드는 그대로 이월된다(§4.1).
한도는 라운드가 갈수록 커진다: `한도 = 21 + (라운드 번호 − 1) × 5`. 후반 라운드일수록 더 크게 쌓을 수 있지만, 그만큼 게이지·토큰 가산도 이미 높은 상태에서 쌓는 것이라 실질 위험은 줄지 않는다.
> **블랙잭 유비**: 주목도=카드 합, 한도=21(1라운드 기준)이다. 한도 밑에서 멈추는 게 "스탠드", 계속 받는 게 "히트", 넘기면 "버스트"다. §1.1의 핵심 재미("지금 정리할 것인가, 더 모아서 크게 처리할 것인가")가 여기서 가장 직접적으로 드러난다 — 의회의 실적 압박은 합본·상점 자산 구매로 넘어서는 재미로 이어진다.
### 2.3. 설계 근거
- **하드 캡 재도입 (2026-09-16, 구 결정 번복)**: 애초엔 하드 캡을 없애고 초과분 소프트 페널티로 대체했으나(§19 참고), 실제로 캡이 없으니 "지금 정리할까 더 모을까"의 리스크가 사라져 그 고민 자체가 무의미해졌다. 최초 임계치(21)는 낮게, 라운드가 갈수록 한도가 커지는 성장 곡선으로 초반 로그라이크 가혹함 문제를 완화했다.
- **상신은 언제든 가능**: 카드가 2장뿐이어도 상신할 수 있다.
- **자율 종료도 언제든 가능**: 한도 밑이면 원하는 시점에 정산으로 넘어갈 수 있다.
- **버스트해도 이월은 자동**: 강제 종료로 합본을 못 해도 카드는 소멸하지 않고 다음 라운드로 넘어간다 (§4.1). 그 라운드에서 놓친 토큰·명분·실적 기회 자체가 손해다 — 별도 징벌이 필요 없다.
---
@@ -68,16 +91,23 @@
> **UI 필수**: 4종 인장은 **실루엣 형태**로 구분한다. 색상만 다른 구현은 소형 화면에서 판별 불가하므로 금지.
### 3.2. 기밀 등급 (숫자)
### 3.2. 기밀 등급 (숫자, 1~10)
| 등급 | 명칭 | 표기 |
|---|---|---|
| 1 | 일반 | ●○○○ |
| 2 | 대외비 | ●●○○ |
| 3 | 2급 기밀 | ●●●○ |
| 4 | 1급 기밀 | ●●●● |
| 등급 범위 | 명칭 |
|---|---|
| 1~2 | 일반 |
| 3~4 | 대외비 |
| 5~6 | 2급 기밀 |
| 7~8 | 1급 기밀 |
| 9~10 | 특급 기밀 |
> 숫자가 아닌 **점 개수**로 표기한다. 읽지 않고 형태로 인지되어야 한다.
> **표기 방식 확정**: 점(●) 표기는 10단계를 감당하지 못해 폐기한다. 카드 중앙에 **큰 숫자**를 직접 표기하고 축 인장은 모서리에 작게 배치한다 — 트럼프 카드의 랭크+슈트 레이아웃을 그대로 차용한다.
> ```
> ◈ ✋
> 7 10
> (위협) (인사)
> ```
> 등급 범위 명칭은 서사·문체용 라벨일 뿐이며, 합본 판정·등급 합계 계산 등 모든 게임 로직은 항상 원 숫자(1~10)를 사용한다.
### 3.3. 스와이프
@@ -89,17 +119,17 @@
**프리뷰 표기**
```
[ 좌 ] [ 우 ]
◈ ●●●○ ✋ ●●●●
◈ 7 ✋ 10
(위협 축) (인사 축)
```
### 3.4. 책상 상태 상시 노출 (필수)
```
◈ 3 ✋ 1 📢 2 ⬛ 0 [총 6장]
◈ 3 ✋ 1 📢 2 ⬛ 0 [총 6장 · 주목도 34]
```
> 이 표시가 없으면 합본 설계가 불가능하며 스와이프는 무의미한 도박이 된다. **1순위 구현 항목.**
> 이 표시가 없으면 합본 설계가 불가능하며 스와이프는 무의미한 도박이 된다. **1순위 구현 항목.** 주목도(등급 합계)는 §4.2에서 상세히 다룬다 — 축별 개수뿐 아니라 등급 합계 총량이 항상 보여야 "한 장 더 받을지" 판단이 가능하다.
---
@@ -110,43 +140,65 @@
- 오염 카드는 덱에 들어가지 않는다. 드로우·셔플 개념 없음.
- 슬롯 **무제한**. 상한을 두면 압박이 상한선에 갇힌다.
- 축별 스택으로 그룹화 표시 (개별 카드 나열 금지 — 20장 이상 시 UI 붕괴).
- **이월**: 합본에 사용되지 않은 카드는 소멸하지 않고 책상에 남아, 다음 라운드에도 계속 주목도에 반영된다. 별도 이월 시스템을 구현할 필요 없이 "합본이 닿은 카드만 사라진다"는 규칙 하나로 자연히 성립한다.
### 4.2. 패시브 페널티 (누진 필수)
### 4.2. 주목도와 패시브 페널티 (누진 필수)
> 장수에 대해 **선형이 아닌 누진**이어야 한다. 선형이면 후반 압박이 밋밋해지고 무제한 슬롯의 의미가 사라진다.
> 카드 등급이 1~10으로 확장되며, 페널티 기준을 **장수**가 아니라 **등급 합계**로 삼는다. 이 등급 합계를 **주목도**라 부른다 — 처리하지 않은 사안이 무거울수록 조직 안팎의 시선이 쏠린다는 관료제적 의미다.
**A. 게이지 상시 상승** — 축별 적재 장수에 따라 매 결재마다 대응 게이지 상승
```
주목도(축별) = 해당 축에 적재된 카드들의 등급 합
주목도(총계) = 책상 전체 카드들의 등급 합
```
| 해당 축 적재 장수 | 결재당 상승 |
**A. 게이지 상시 상승** — 축별 주목도에 따라 매 결재마다 대응 게이지 상승 (가안, 플레이 후 조정)
| 해당 축 주목도 | 결재당 상승 |
|---|---|
| 1~3장 | +0.5% |
| 4~6장 | +1.5% |
| 7~9장 | +3.0% |
| 10장 이상 | +5.0% |
| 1~15 | +0.5% |
| 16~30 | +1.5% |
| 31~40 | +3.0% |
| 41 이상 | +5.0%, 이후 초과분 10당 +1.0%씩 추가 누진 |
**B. 토큰 지출 가산** — 전체 적재 총량에 따라 모든 토큰 지출에 가산
**B. 라운드 종료 판단 (블랙잭식 하드 캡, 2026-09-16 재도입)**
| 총 적재 장수 | 가산 |
플레이어는 매 카드 선택 직후 총 주목도를 이번 라운드의 한도와 비교해 계속 받을지 정산할지 스스로 판단한다. 한도를 넘기면 그 자리에서 즉시 라운드가 강제 종료된다 — §2.2 참고.
```
한도(라운드) = 21 + (라운드 번호 − 1) × 5 (가안, §20.1 튜닝 대상)
```
| 총 주목도 (한도 대비) | 상태 |
|---|---|
| 0~7장 | +0 |
| 8~14장 | +1 |
| 15~21장 | +2 |
| 22장 이상 | +4 |
| 한도 − 5 미만 | 자동 진행. 별도 경고 없음 |
| 한도 − 5 ~ 한도 | **경고 구간** — 곧 넘긴다는 시각 경고, 정산할지 고려 |
| 한도 초과 | **버스트** — 그 즉시 라운드 강제 종료. 합본 기회 없이 카드는 이월(§4.1) |
**C. 임계 사건 트리거** — 특정 축이 임계치 도달 시 사건/뉴스 발생
> **결정 이력**: 최초엔 "주목도 21 초과 시 즉시 강제 종료"안을 로그라이크 초반에 과하다는 이유로 기각하고 초과분 누진 페널티(소프트 오버런)로 대체했었다. 그런데 하드 캡이 없으니 "지금 정리할까 더 모을까"의 실제 리스크가 사라져 핵심 재미(§1.1)가 실종됐다 — 그래서 하드 캡을 되살리되, 한도 자체가 라운드마다 커지는 성장 곡선을 더해 초반 가혹함 문제만 따로 해결했다. 상세 근거는 결정 노트 `2026-09-16-라운드-주목도-하드캡-복원` 참고.
**C. 토큰 지출 가산** — 총 주목도에 따라 모든 토큰 지출에 가산
| 총 주목도 | 가산 |
|---|---|
| 0~20 | +0 |
| 21~40 | +1 |
| 41~60 | +2 |
| 61 이상 | +4 |
**D. 임계 사건 트리거** — 특정 축 주목도가 임계 도달 시 사건/뉴스 발생
```json
{ "axis": "axis_threat", "threshold": 5, "event": "myth_incident_pool", "showWarning": true }
{ "axis": "axis_threat", "threshold": 15, "event": "myth_incident_pool", "showWarning": true }
```
> `showWarning`: 임계치 2장 전부터 해당 축 인장에 경고 표시. 예고선이 보여야 "닿기 전에 정리하자"는 목표가 생긴다.
> `showWarning`: 임계치 근접(예: 3 이내)부터 해당 축 인장에 경고 표시. 예고선이 보여야 "닿기 전에 정리하자"는 목표가 생긴다.
### 4.3. 죽음의 나선
무제한 슬롯 + 누진 페널티는 필연적으로 나선(적재→비용 증가→처리 불가→적재)을 만든다. 의도된 설계이며 관료제 붕괴의 은유다.
단, **대규모 합본이 판을 뒤집을 수 있어야 한다.** 5장 이상 합본의 페널티 제거량을 충분히 크게 설정하여 카타르시스를 보장할 것.
단, **대규모 합본이 판을 뒤집을 수 있어야 한다.** 5장 합본(§5)의 페널티 제거량을 충분히 크게 설정하여 카타르시스를 보장할 것.
> **튜닝 기준선**: 10장 = "슬슬 위험", 20장 = "이번 라운드 안에 정리 못 하면 끝".
> **튜닝 기준선 (가안, 플레이 후 조정)**: 한도 근접(한도−5) = "슬슬 위험, 정산할지 고민", 한도 초과 = "버스트로 이번 라운드 합본 기회를 날림".
---
@@ -154,38 +206,51 @@
> **설계 원칙**: 트럼프 족보 구조를 그대로 차용하고 명칭과 기호만 관료제로 치환한다. 새 규칙을 발명하지 않는다. 플레이어의 기존 트럼프 지식이 그대로 통해야 학습 비용이 0에 수렴한다.
### 5.1. 족보표
### 5.1. 족보표 (5장 기준)
> 카드 등급이 10단계로 확장되며, 조합 판정을 **여러 장 쌓은 카드 중 최고의 5장**을 뽑는 방식으로 재정의한다. 트럼프의 "7장 중 최고 5장" 판정과 동일한 구조이며, 이 역시 플레이어의 기존 지식을 그대로 재사용한다.
| 트럼프 대응 | 족보명 | 조건 | 명분 | 실적 점수 |
|---|---|---|---|---|
| 페어 | **중복 접수** | 같은 등급 2장 | 0.5 (혼합) | 10 |
| 투페어 | **이중 접수** | 같은 등급 2장 × 2쌍 | 1 (혼합) | 20 |
| 트리플 | **집단 민원** | 같은 등급 3장 | 1 | 25 |
| 플러시 | **일괄 처리** | 같은 축 3장 | 1 (축 전용) | 25 |
| 스트레이트 | **단계적 상신** | 등급 오름차순 3장 | 1 (혼합) | 25 |
| 풀하우스 | **종합 감사** | 같은 등급 3 + 같은 등급 2 | 2 | 50 |
| 포카드 | **전면 개편** | 같은 등급 4장 | 3 | 80 |
| 스트레이트 플러시 | **전결 처리** | 같은 축 + 등급 오름차순 3장 이상 | 3 | 80 |
| 스트레이트 | **단계적 상신** | 연속 등급 5장 | 2 (혼합) | 40 |
| 플러시 | **일괄 처리** | 같은 축 5장 | 2 (축 전용) | 40 |
| 풀하우스 | **종합 감사** | 같은 등급 3장 + 같은 등급 2장 | 3 | 60 |
| 포카드 | **전면 개편** | 같은 등급 4장 | 4 | 90 |
| 스트레이트 플러시 | **전결 처리** | 같은 축 + 연속 등급 5장 | 5 | 150 |
> **전부 가안, 플레이 후 조정.** 다만 상하위 배율 격차는 의도적으로 크게 벌렸다 — 구 3장·4등급 체계에서는 조합 횟수가 사실상 무제한이라 격차가 작아도 무방했지만, 이제 "한 번의 상신을 최대한 크게 만들고 싶다"는 동기 자체가 설계 목적이므로 격차가 곧 그 동기를 만드는 장치다.
### 5.1.1. 조합 가능 장수
- 합본에는 **최소 2장, 최대 5장**을 사용한다 (족보표 기준).
- 책상에 쌓아둘 수 있는 카드 수 자체는 §4.2의 주목도 규칙에 따라 사실상 자유이나, **5장 내외를 손에 쥔 상태에서 최고 족보를 노리는 것**이 표준 플레이 리듬이 되도록 수치를 맞춘다.
- 합본에 사용되지 않은 나머지 카드는 소멸하지 않고 책상에 남는다 (§4.1 이월 원칙).
### 5.2. 합본 보상
1. **페널티 소멸** — 사용된 오염 카드가 책상에서 제거되어 패시브 페널티 즉시 감소 (가장 큰 유인)
2. **명분 산출** — §7
3. **토큰 획득** — 축별 종류 결정 (§8.2)
1. **페널티 소멸** — 사용된 오염 카드가 책상에서 **완전 소멸**하여 패시브 페널티 즉시 감소 (가장 큰 유인)
2. **명분 산출** — 축이 종류를 결정 (§7)
3. **토큰 획득** — 등급 합계가 양을 결정 (§8.2)
4. **실적 점수** — §9.3
5. **자산 트리거** — 패턴 반응형 자산 발동
> **완전 소멸 원칙**: 합본에 사용된 카드는 강등·잔류 없이 사라진다. 프로메테우스 랩의 '배양 합본'(§13.3)이 이 기본 규칙을 깨는 유일한 예외이므로, 기본이 완전 소멸이어야 해당 특기가 성립한다.
### 5.3. 구현 사양
```json
{
"combine": {
"selectedCards": ["poll_001", "poll_004", "poll_009"],
"selectedCards": ["poll_001", "poll_004", "poll_009", "poll_011", "poll_014"],
"detectedPattern": "flush_axis",
"output": {
"removeCards": true,
"justification": { "type": "just_threat", "amount": 1 },
"token": { "type": "info", "amount": 3 },
"performanceScore": 25,
"justification": { "type": "just_threat", "amount": 2 },
"token": 18,
"performanceScore": 40,
"triggerAssets": ["on_combine", "on_combine_flush"]
}
}
@@ -223,33 +288,45 @@
### 7.1. 산출
- **종류**: 합본에 사용된 카드의 축이 결정. 축이 섞이면 **혼합 명분**(범용·약효).
- **수량**: 3장=1 / 4장=2 / 5장 이상=3. 1급 기밀 포함 시 +1.
- **수량**: 족보별로 §5.1 표의 명분 열을 따른다. 등급 8 이상(1급 기밀 이상) 카드가 포함되면 +1.
- **보관**: 최대 5개. **다음 의회까지만 유효하며 이후 소멸.**
> **유통기한은 필수.** 무한 저장 시 플레이어가 명분을 쌓아 한 번에 터뜨려 정치가 무의미해진다. 관료제 정합성도 확보된다 — 명분은 시의성이 생명이며 다음 회기로 넘기면 효력을 잃는다.
> **유통기한은 필수.** 무한 저장 시 플레이어가 명분을 쌓아 한 번에 터뜨려 정치가 무의미해진다. 관료제 정합성도 확보된다 — 명분은 시의성이 생명이며 다음 라운드로 넘기면 효력을 잃는다.
### 7.2. 용도 (의회에서만 사용)
### 7.2. 명분은 4종을 유지한다 (토큰과의 차이)
**규약 개입**
토큰은 **양의 재화**이므로 1종으로 통합한다(§8). 명분은 **질의 재화**다 — 어떤 축을 합본했느냐가 어떤 정치 카드를 쥐었느냐로 직결되고, 이념색 페널티까지 따라붙는다. 1종으로 통합하면 "이번엔 절차 명분이 필요하니 대외 합본을 하자"는 계획이 사라지고 축 4개를 나눈 이유 자체가 소멸한다.
| 명분 | 효과 |
> **역할 분담**: 토큰이 **양**을, 명분이 **질**을 담당한다. 합본 시 **축은 명분 종류를, 등급 합계는 토큰 양을** 결정한다.
### 7.3. 용도 (4갈래)
**① 안건 조작** — 규약 후보 3개가 상정된 화면에서 직접 조작한다.
| 명분 | 조작 |
|---|---|
| **절차 명분** (대외) | 상정된 규약 1개를 다음 라운드로 이월 |
| **여론 명분** (공보) | 규약 후보 3개 중 1개 강제 탈락 |
| **위기 명분** (위협) | 누적된 징벌 규약 1개 조기 해제 |
| **내부 명분** (인사) | 이번 라운드 실적 요구치 하향 |
| **절차 명분** (대외) | 후보 1개를 **다음 라운드로 이월** (지금은 피하지만 나중에 다시 온다) |
| **여론 명분** (공보) | 후보 1개 **강제 탈락** + 새 후보 1개 무작위 교체 |
| **위기 명분** (위협) | 누적된 **징벌 규약 1개 조기 해제** |
| **내부 명분** (인사) | 후보 1개 **강제 상정** (표결 자체는 그대로. 원하는 이득 규약을 올릴 때 사용) |
| **혼합 명분** | 표결 결과 1표 뒤집기 |
**정보 획득**
**② 정보 획득**
| 명분 | 효과 |
|---|---|
| 여론 명분 | 임원 1명의 실제 성향 공개 |
| 내부 명분 | 특정 임원의 과거 표결 이력 전체 열람 |
**실적 납입**: 명분 1개 = 실적 20점 (§9.3)
**③ 임원 직접 관리** — 명분 2개로 특정 임원의 우호도를 1단계 이동.
### 7.3. 이념색 페널티 (딜레마의 본체)
> 표를 사는 것이 아니라 **다음 라운드 규약 후보군을 바꾸는 장기 투자**다. 개입 액션 삭제로 비어버린 "임원에게 직접 작용하는" 자리를 메우되, 즉시 표결이 아니라 구도에 작용한다는 점에서 성격이 다르다.
**④ 실적 납입** — 명분 1개 = 실적 20점 (§9.3)
> 명분에는 유통기한(다음 의회까지)이 걸려 있으므로, 매 라운드 "이번 명분을 어디에 태울 것인가"가 실제 고민이 된다. 소모처가 4갈래여야 명분이 남아도는 재화가 되지 않는다.
### 7.4. 이념색 페널티 (딜레마의 본체)
명분 사용 시 대응 성향 태그가 누적되고 이념 축 반대편 파벌의 우호도가 하락한다.
@@ -270,27 +347,28 @@
> **결재 단계에서 토큰 증감을 완전히 제거한다.** 토큰이 결재 순간에 개입하면 "어느 축의 오염을 받을까"라는 질문이 "예산이 부족하니 오른쪽"으로 덮어씌워진다. 손패가 없어 토큰을 배분할 수도 없으므로, 결재 단계의 토큰 수급은 선택을 왜곡하기만 한다.
### 8.2. 토큰 산출 (합본에서만)
### 8.2. 토큰은 1종 (합본에서만 산출)
| 합본 축 | 산출 토큰 |
|---|---|
| 인사 | 인력 |
| 대외 | 예산 |
| 공보 | 정보 |
| 위협 | 플레이어 선택 (또는 소량 전종) |
토큰은 상점 재화이므로 종류를 나눌 이유가 없다. **단일 토큰**으로 통합한다.
> 축마다 산출 토큰이 다르므로 "지금 인력이 말랐으니 인사 합본을 노린다"는 경제적 동기가 축 선택에 추가된다.
**산출량 = 합본에 사용된 카드의 기밀 등급 합계** (가안: 등급 1장당 등급 수치만큼)
> 예: 2급 + 3급 + 3급 합본 → 토큰 8
>
> 축은 명분 종류를, 등급은 토큰 양을 결정한다. 따라서 플레이어는 **"어떤 축을 모을까"(정치)와 "어떤 등급을 모을까"(경제)를 별개로 판단**하게 된다. 고등급 오염은 위험하지만 돈이 된다.
### 8.3. 상점 (정산 단계)
라운드 종료 후, 의회 진입 전에 배치. "예산 집행 내역 결재" 형태로 연출.
| 품목 | 지불 | 비고 |
|---|---|---|
| **자산 구매** | 토큰 | 주 소비처 |
| **오염 카드 직접 처리** | 토큰 | 족보가 안 맞을 때의 탈출구. 명분·실적 없음 |
| **소모품(뉴스 카드) 구매** | 토큰 | 인장·등급 변경 도구 |
| **전례 매입** | 토큰 | 내러티브 태그 획득 |
| 품목 | 비고 |
|---|---|
| **자산 구매** | 주 소비처 |
| **오염 카드 직접 처리** | 족보가 안 맞을 때의 탈출구. 명분·실적 없음 |
| **소모품(뉴스 카드) 구매** | 인장·등급 변경 도구 |
| **전례 매입** | 내러티브 태그 획득 |
모든 품목은 단일 토큰으로 지불한다.
**진열 규칙**: 매 정산마다 무작위 4~6개 진열, 1회 리롤 가능(토큰 소모). 이번 회차 지부장 파벌에 따라 특정 아키타입 자산 등장률 ×3, 가중 파벌이 없는 아키타입은 S급 미등장.
@@ -344,19 +422,25 @@
| 예산 긴축 | 상점 가격 1.5배 |
| 보고 체계 간소화 | (이득) 모든 합본 필요 장수 -1 |
**유형 C. 징벌 규약** — 실적 미달 시 자동 부과, **영구 누적**. 결재당 게이지 추가 상승 / 특정 축 토큰 산출 봉쇄 / 상점 슬롯 감소 등. 해제 수단: 위기 명분, 또는 다음 라운드 실적 초과 달성.
**유형 C. 징벌 규약** — 실적 미달 시에만 자동 부과, **영구 누적, 상한 없음**. 결재당 게이지 추가 상승 / 특정 축 토큰 산출 봉쇄 / 상점 슬롯 감소 등. 해제 수단: 위기 명분, 또는 다음 라운드 실적 초과 달성.
> **상한을 두지 않는 이유**: 매 라운드 부과되는 것이 아니라 실적 미달 시에만 쌓이므로 회복 불가 상태로 직행하지 않는다. 오히려 게이지가 차지 않고 탄핵도 오지 않는 안정 상태에서 런이 무한정 늘어지는 것을 막는 **자연스러운 종료 압력**으로 기능한다. 누적될수록 실적 달성이 어려워지므로 결국 종결로 수렴한다.
>
> **UI 처리**: 누적 5개 초과 시 목록을 접거나 아이콘 스택으로 압축 표시할 것. 상시 전체 나열은 화면을 잠식한다.
**유형 D. 이득 규약** — 드물게 통과. 자산 지급, 족보 완화, 토큰 지급.
### 9.3. 실적 감사
> **라운드당 합본을 강제하지 않는다.** 처리 장수나 합본 횟수를 요구하면 플레이어 선택이 감소하고 전략성이 떨어진다. **다중 통화 결산**으로 여러 경로를 허용한다.
> **라운드당 합본 횟수를 강제하지 않는다.** 처리 장수나 합본 횟수를 요구하면 플레이어 선택이 감소하고 전략성이 떨어진다. **다중 통화 결산**으로 여러 경로를 허용한다.
```
실적 점수 = Σ(족보 점수) + (토큰 납입 × 5) + (명분 납입 × 20)
실적 점수 = Σ(이번 라운드 중 상신한 모든 족보 점수) + (토큰 납입 × 5) + (명분 납입 × 20)
```
- 요구치는 라운드마다 상승 (가안: 1R 25 → 라운드당 +20)
> 한 라운드 안에서 합본(상신)을 몇 번 하든 — 자율 종료 전까지 여러 번 상신할 수도, 버스트로 강제 종료돼 한 번도 못 할 수도 있다 — 그동안 상신한 족보 점수를 전부 합산한다.
- 요구치는 라운드마다 상승 (가안: 1라운드 25 → 라운드당 +20)
- **미달을 감수하는 것도 유효한 선택으로 설계할 것.** 징벌 규약 1개를 받고 자원을 아끼는 판단이 성립해야 실적이 강제가 아닌 협상이 된다.
**UI**
@@ -389,7 +473,7 @@
```
매 회차 지부장 중 1~2명이 실제로는 반대 진영. 표시는 우호이나 실제 표는 반대로 나간다.
**단서 = 표결 이력**: 매 라운드 표결 결과가 기록되고 **언제든 열람 가능한 UI**로 제공된다. "우호 표시인데 반대표를 던진" 이력이 쌓이면 정체가 드러난다. 즉시 확인은 명분 조사 또는 정보 토큰 지불.
**단서 = 표결 이력**: 매 라운드 표결 결과가 기록되고 **언제든 열람 가능한 UI**로 제공된다. "우호 표시인데 반대표를 던진" 이력이 쌓이면 정체가 드러난다. 즉시 확인은 명분 조사 또는 토큰 지불.
> **필수 요건**: 정보가 부족하면 추론이 아니라 운이 된다. 배신자 1명 기준 **3~4라운드면 이력만으로 특정 가능**하도록 표결 빈도와 이력 가시성을 확보할 것.
@@ -582,11 +666,14 @@
| 노선 | 특기 | 상징 연결 |
|---|---|---|
| **이지스 재단** | **정면 대응** — 모든 합본의 필요 장수 -1. 단 명분 산출 없음 (페널티 제거·토큰만) | 방패는 막을 뿐 공세로 나아가지 않는다. 기준선 노선이므로 규칙이 가장 단순 |
| **프로메테우스 랩** | **배양 합본** — 합본 사용 카드 1장을 소멸시키지 않고 '검체'로 남겨 다음 합본에 재사용 | 훔친 불을 가둬 배양한다 |
| **우로보로스 협의회** | **순환 합본** — 단계적 상신 성립 시 마지막 카드가 처음으로 돌아가 연쇄 발동 | 꼬리를 삼키는 뱀 |
| **살롱 드 미다스** | **금빛 치환** — 합본 전 오염 1장의 축 인장을 임의 변경 (라운드당 2회) | 소관 부서를 바꾸는 정치력 = 원하는 명분 제조 |
| **보이드 생텀** | **봉헌** — 합본하지 않고 오염을 안치. 페널티는 유지되나 명분과 처리 배율 산출 | 정리하지 않고 바친다 |
> **이지스 재단 설계 의도 (확정)**: 오염 처리는 가장 쉽지만 명분이 나오지 않아 의회에서 고전하는 구조. "위협은 잘 막지만 정치는 못 하는 조직"이라는 컨셉과 메커니즘이 일치한다. 다만 명분이 완전히 0이면 의회에서 아무 조작도 못 해 답답할 수 있으므로, 그레이박스에서 **「명분 산출 없음」과 「명분 절반(내림)」 두 안을 비교 검증**할 것.
### 13.4. 노선의 의미 부여는 텍스트가 담당
> **메커니즘은 족보, 서사는 텍스트.** 노선을 축에 1:1 매핑하지 않는다. 매핑하면 노선당 축이 고정되어 합본 선택의 폭이 사라진다.
@@ -659,31 +746,39 @@
## 17. 구현 우선순위
> **진행 상황 표기**: `[x]` 완료 · `[~]` 부분 완료(범위 축소·자리표시자 있음) · `[ ]` 미착수.
> 이 체크박스가 진행 상황의 유일한 원본이다(CLAUDE.md에 복제하지 않는다). 상세 이력·미해결
> 사항은 `docs/DEVLOG.md`, 그 배경·근거는 `docs/decisions/`의 결정 노트 참고.
### 1차 — 코어 검증 (여기까지만 되어도 재미 판정 가능)
1. **기호 체계 + 책상 상태 상시 노출 UI** (§3)
2. **책상 적재 + 누진 패시브 페널티 A·B** (§4)
3. **표준 족보 판정 및 합본 실행** (§5)
4. **합본 기반 토큰 산출** (§8.2)
1. [x] **기호 체계 + 책상 상태 상시 노출 UI** (§3)
2. [x] **책상 적재 + 누진 패시브 페널티 A·B** (§4)
3. [x] **표준 족보 판정 및 합본 실행** (§5) — §2.2 주목도 하드 캡(버스트)·자율 정산 로직까지 포함
4. [x] **합본 기반 토큰 산출** (§8.2)
### 2차 — 압박 완성
5. **상점** (§8.3)
6. **규약 시스템 — 유형 A 족보표 변경 우선** (§9.2)
7. **실적 감사 + 다중 통화 결산** (§9.3)
8. **명분 산출 및 규약 개입** (§7)
5. [~] **상점** (§8.3) — "오염 카드 직접 처리"만 구현. 자산 구매·소모품·전례 매입은 3차가
먼저 있어야 성립해서 아직 없음
6. [x] **규약 시스템 — 유형 A 족보표 변경 우선** (§9.2) — 유형 A 7종 + 감사 실패용 유형 C 2종
(5개 초과 시 목록 압축 표시 포함). 유형 B·D는 범위 밖(§20.2 소량 배치 콘텐츠 작업 대상)
7. [x] **실적 감사 + 다중 통화 결산** (§9.3)
8. [~] **명분 산출 및 규약 개입** (§7) — 절차·여론·위기·내부 4갈래 구현. 혼합 명분("표결 1표
뒤집기")은 실제 위원회 표가 없어 "직접 통과 지정"으로 대체한 자리표시자 — 4차에서 13인
위원회가 생기면 재설계 필요. §7.3 ②정보 획득·③임원 직접 관리는 위원회가 없어 미구현
### 3차 — 빌드 및 리플레이성
9. **자산 시스템 + 발동 로그** (§10)
10. **노선 친화도 + 각성 + 합본 특기** (§13)
11. **전례 시스템** (§11)
12. **소모품** (§12)
9. [ ] **자산 시스템 + 발동 로그** (§10)
10. [ ] **노선 친화도 + 각성 + 합본 특기** (§13)
11. [ ] **전례 시스템** (§11)
12. [ ] **소모품** (§12)
### 4차 — 정치 심화
13. **우호도 비공개 + 표결 이력 UI** (§9.5)
14. **이중첩자 + 신임 위원회 지명** (§9.6)
15. **엔딩 분기 + 연대기** (§15, §11.4)
13. [ ] **우호도 비공개 + 표결 이력 UI** (§9.5)
14. [ ] **이중첩자 + 신임 위원회 지명** (§9.6)
15. [ ] **엔딩 분기 + 연대기** (§15, §11.4)
### 5차 — 비주얼 폴리싱
그레이박스 검증 완료 전까지 착수 금지.
그레이박스 검증 완료 전까지 착수 금지. [ ] 미착수
---
@@ -720,17 +815,98 @@
---
## 19. 미결정 사항
## 19. 결정 완료 사항 (기록)
- 토큰 3종 유지 / 2종 축소 / 명분 통합
- 합본 시 사용 카드의 완전 소멸 여부 (등급 강등 후 잔류안 검토)
- 이지스 재단 합본 특기의 최종 형태
- 이중첩자 수 1명 vs 2명
설계 논의로 확정된 항목. 구현 시 임의로 변경하지 말 것.
| 항목 | 결정 | 근거 |
|---|---|---|
| 토큰 종류 | **1종 통합** | 상점 재화이므로 양만 의미 있음. 종류 분화는 번거로움만 추가 |
| 명분 종류 | **4종 유지** | 질의 재화. 통합 시 축 선택의 의미가 소멸 |
| 합본 사용 카드 | **완전 소멸** | 프로메테우스 '배양'이 예외로 성립하려면 기본이 소멸이어야 함 |
| 이지스 합본 특기 | **필요 장수 -1, 명분 없음** | 합본은 쉽고 정치는 어려운 구조가 노선 컨셉과 일치 |
| 징벌 규약 상한 | **없음 (무제한 누적)** | 실적 미달 시에만 부과. 런의 무한 연장을 막는 종료 압력으로 기능 |
| 기밀 등급 범위 | **1~10 (구 1~4에서 확장)** | 4단계로는 족보 성립이 너무 쉬워 조합 선택의 매력이 없었음 (플레이 피드백) |
| 등급 표기 | **점(●) 폐기, 숫자 직접 표기** | 10단계는 점으로 못 셈. 트럼프 랭크+슈트 레이아웃 차용 |
| 족보 기준 장수 | **3장 → 5장** | 10등급 스케일에 맞춰 포커의 "7장 중 5장" 구조로 전환 |
| 페널티 기준 | **카드 장수 → 등급 합계(주목도)** | 등급 편차가 커진 만큼 심각도를 반영해야 압박이 정직해짐 |
| 라운드 종료 방식 | **하드 캡 재도입 — 한도(21+라운드당 +5) 초과 시 강제 종료(버스트)** | 한때 소프트 오버런(하드 캡 없음)으로 바꿨으나, 캡이 없으니 "지금 정리할까 더 모을까"의 실제 리스크가 사라져 핵심 재미(§1.1)가 실종됨. 초반 가혹함은 낮은 초기 한도 + 라운드별 성장 곡선으로 완화. 결정 노트: `2026-09-16-라운드-주목도-하드캡-복원` |
| 라운드/회기 이층 구조 | **폐지 — 단일 라운드로 환원** | 라운드마다 정산·의회를 거치는 게 핵심 재미(합본·상점으로 의회 압박을 넘어서는 것)였는데, 이층 구조는 그 사이클을 회기 단위로 늘려 압박 빈도를 실수로 낮췄음. 결정 노트: `2026-09-16-라운드-주목도-하드캡-복원` |
## 20. 미결정 사항
### 20.1. 플레이 테스트 후 튜닝 (지금 결정 불가)
- 이중첩자 수 1명 vs 2명 (2명이면 추론 난도 급상승)
- 신임 위원회 지명 인원 3명의 적정성
- 실적 요구치 상승 곡선 (라운드당 +20 가안)
- 토큰 납입 5점 / 명분 납입 20점 환산 비율
- 징벌 규약 최대 누적 개수 제한 여부
- 페이즈별 오염 공급량·등급 분포 곡선
- 각성 임계치 15의 적정성
- 규약 상세 목록 (유형 A/B/C/D 각 5~8종) — 소량 배치로 작성
- 자산 상세 목록 — 소량 배치로 작성
- 이지스 재단: 「명분 산출 없음」 vs 「명분 절반(내림)」 비교 검증
- 합본 토큰 산출량 산식 (등급 합계 그대로 vs 계수 적용)
- **§4.2-A/C 게이지 상승·토큰 가산의 누진 구간 수치 전체 (1~15/16~30/31~40/41+ 등)**
- **§5.1 족보표의 명분·실적 점수 배율 (상하위 격차가 지금 과한지 부족한지)**
- **§2.2/§4.2-B 라운드 주목도 한도의 시작값(21)·증가폭(+5) 적정성 — 라운드를 몇 번쯤 버틸 수 있어야 하는지와 연동해서 정할 것**
### 20.2. 콘텐츠 제작 (별도 세션, 소량 배치)
- 규약 상세 목록 (유형 A/B/C/D 각 5~8종)
- 자산 상세 목록
- 오염 카드 및 딜레마 카드 텍스트
- 전례(내러티브 태그) 목록
---
## 21. 데이터 스키마 확정 (Claude Code 조사 후 결정)
기존 `cards.csv`/`assets.json`/`narrative_tags.json`을 새 코어 시스템으로 마이그레이션하며 확정된 사항. 구현 시 임의로 변경하지 말 것.
| 항목 | 결정 |
|---|---|
| 카드 파일 구조 | `cards.csv`(딜레마 카드)와 `pollution_pool.csv`(오염 카드 풀)로 **분리**. 하나의 헤더에 다른 스키마를 공백으로 욱여넣지 않는다 |
| 딜레마 카드 축 매핑 | 구 `res`→인사, `ent`→위협, `pan`→공보, `rsk`→대외 (1:1 대응 확정) |
| 등급 변환 | 원값 1→일반(1) / 2→대외비(2) / 3→2급기밀(3). 4급(1급기밀)은 신규 콘텐츠에서만 사용 |
| 다축 카드 처리 | 2개 이상 축에 값이 걸린 카드는 **자동 변환 금지**. 별도 목록으로 뽑아 소량 배치 수동 재설계 |
| `pollution_pool.csv` 스키마 | `id, axis, grade, name, flavor, tag` |
| 자산 증폭 타입 | §10.3에 **7번째 타입 `periodic`(주기형) 추가**. `every_n_approvals`류의 순수 카운터 트리거가 여기 속함 |
| 고아 effect 2건 | `convert_multiplier`, `quarantine_fail_to_purge` **폐기**. 후자는 §13.3 보이드 생텀 '봉헌' 특기로 대체됨. 재설계 필요 시 §20.2에서 새 effect enum으로 재작성 |
| `faction_link` 필드 | asset 개별 스키마에서 **삭제**. 아키타입↔파벌 가중치(§8.3)는 자산 단위가 아닌 아키타입 단위로 작동하므로, 별도 파일 `archetype_faction_weight.json`으로 분리 관리 |
| 아키타입↔파벌 가중치 | purge→잔해 청소부 길드 / convert→차원 무역당·블랙마켓 카르텔 / quarantine→오컬트 수집가 협회 / skip→부패 관료 연합 (배수 ×3, v2 §7.1과 동일) |
> **주의**: 지부장 파벌(잔해 청소부 길드 등 12개 풀)과 노선(이지스 재단 등 5종, §13)은 서로 다른 레이어다. 파벌은 아키타입에 연결되고, 노선은 족보 패턴에 연결된다. 혼동하여 매핑하지 말 것.
---
## 22. 자산 스키마 확정 (2차 — 마이그레이션 중 발견된 사항)
### 22.1. 트리거 enum 수정 — `on_swipe_left` 제거
> **§10.4 트리거 enum을 다음으로 갱신한다**: `on_pollution_gain` / `on_combine` / `on_combine_{족보}` / `on_token_spend` / `every_n_approvals` / `on_council_end` / `on_purge` / `on_convert` / `manual_charge`
`on_swipe_left`는 폐기한다. §3.3에서 좌/우 스와이프는 "오염 카드 선택지 둘 중 하나"일 뿐 구v1의 좌=수용/우=회피 비대칭이 사라졌으므로, 좌측 한정 트리거는 존재 이유가 없다. `on_pollution_gain`(오염 획득 시, 좌우 무관)이 그 역할을 전부 포함한다. 기존 데이터에서 `on_swipe_left`를 쓰던 자산은 `on_pollution_gain`으로 이관한다.
### 22.2. 증폭 타입 canonical enum 문자열
§10.3의 한글 명칭에 대응하는 구현용 문자열을 다음으로 확정한다.
| 한글 명칭 | enum 문자열 |
|---|---|
| 패턴 반응형 | `pattern_reactive` |
| 적재 반응형 | `pollution_reactive` |
| 누적형 | `cumulative` |
| 재발동형 | `repeater` |
| 토큰 환산형 | `token_scaling` |
| 메타형 | `meta` |
| **주기형** (§21 ③에서 추가) | `periodic` |
### 22.3. 발동 방식 필드 신설 — `activation`
증폭 타입과 별개로, 조건 충족 시 **자동 발동**하는지 **플레이어가 소비 시점을 선택**하는지를 구분하는 필드를 추가한다. 8번째 증폭 타입을 만들지 않고 직교 속성으로 처리한다(전례 효과를 5종으로 제한한 것과 같은 원칙 — 타입 증식 방지).
```json
"activation": "auto" | "manual"
```
`periodic`이면서 `manual`인 조합(충전은 자동, 소비는 수동)이 존재할 수 있다. 예: 결재권 반려 도장.
### 22.4. pollution_pool 태그 충돌 처리
원본 오염 카드 템플릿 행이 좌/우 서로 다른 태그를 가졌던 경우(3건), 하나를 버리지 않고 **동일 축·등급의 별도 풀 엔트리 2개로 분리**한다(id에 `a`/`b` 접미사). 무작위 추첨 풀의 변형 다양성이 늘어나는 것이므로 손실이 아니다.