decision · wiki/decision-100steps-seed-90-leftover.md
Decision — 100steps seed 90 leftover after 91
**e2e/integration은 90만** 쓴다. **풀 콘텐츠 로컬 DB는 90→91** 이지만, 91은 upsert라 **90 전용 행이 DB에 남을 수 있다**. 그 leftover를 “번들 정본”으로 읽지 않는다. prune 자동화는 **보류**(명시 요청 전 코드 추가 금지).
corpusprojectlayerjudgmenttypedecisiondomaingame-systemsproject100stepsstatusactiveupdated2026-07-18originowned
Decision — 100steps seed 90 leftover after 91
한 줄: e2e/integration은 90만 쓴다. 풀 콘텐츠 로컬 DB는 90→91 이지만, 91은 upsert라 90 전용 행이 DB에 남을 수 있다. 그 leftover를 “번들 정본”으로 읽지 않는다. prune 자동화는 보류(명시 요청 전 코드 추가 금지).
결정
- 층 분리 유지 (decision-100steps-catalog-ssot)
-90= MVP fixture (빠른 테스트)
-91= bundle 물질화 (upsert)
- Godotcatalog_bundle.json= 클라이언트 편집 SSOT - 90→91 합성 DB 숫자를 번들 숫자와 동일시하지 않는다.
- Docker 스모크(2026-07-18, 일회용 PG): 90+91 후 예) cards 441 / styles 16 (번들 435/15보다 큼).
- 대표 leftover:STYLE_WING_CHUN(90),CARD_WC_*일부, 구 mindset/minion/event 코드, 90 전용 room 등. - 스타일 서사 정본은 여전히 FLOW/ADEPT (decision-100steps-style-canon).
DB에 bareSTYLE_WING_CHUN이 보여도 콘텐츠 정본 복귀가 아니다 — seed 층 오염이다. - e2e 경로를 91/prune으로 바꾸지 않는다 (속도·기대값 고정). 풀 콘텐츠가 필요하면 별 프로파일로 90→91을 쓰고, leftover를 문제 삼을 때만 정리한다.
- prune SQL/스크립트는 wiki 결정만 하고 코드는 넣지 않는다 (2026-07-18 작업 되돌림 반영). 도입 시 별도 구현 요청 + verify-all 영향 검토.
대안
| 안 | 결과 |
|---|---|
| A. 90+91 합성을 곧 정본으로 취급 | 기각 — legacy style/card 혼입 |
| B. 90 only / 91 only / 90→91을 층으로 말하고 leftover는 비정본 | 채택 |
| C. 즉시 prune 생성기·CI 강제 | 보류 — 명시 전 소스 변경 금지 |
근거
- decision-100steps-catalog-ssot
- decision-100steps-style-canon
- comparison-100steps-catalog-layers
- brief-100steps-catalog-layer-inventory
- Docker 스모크 실측 (2026-07-18): schema 00–97 +
90+91적용 성공; 90-only 잔여로 cards/styles 등 번들 초과;PAV_AUTUMN_EVENT=event_battle, commotion 이벤트 확인 - 100steps:
db/seed/90_seed_catalog.sql,db/seed/91_seed_catalog_from_bundle.sql,scripts/generate_seed_from_catalog_bundle.py
폐기·재검토
- e2e가 published bundle fixture로 갈아탈 때
- 풀 DB 설치 경로를 91-only(또는 90 base defs + 91 content without MVP cards)로 재설계할 때
- leftover prune을 코드로 도입하기로 명시할 때