decision · wiki/decision-100steps-catalog-ssot.md
Decision — 100steps catalog SSOT layers
**클라이언트 편집 정본** = `catalog_bundle.json`. **온라인** = published bundle. **`90` seed** = e2e MVP. **`91` seed** = 번들에서 생성한 DB 전체 콘텐츠 층.
corpusprojectlayerjudgmenttypedecisiondomaingame-systemsproject100stepsstatusactiveupdated2026-07-18originowned
Decision — 100steps catalog SSOT layers
한 줄: 클라이언트 편집 정본 = catalog_bundle.json. 온라인 = published bundle. 90 seed = e2e MVP. 91 seed = 번들에서 생성한 DB 전체 콘텐츠 층.
결정
- 콘텐츠 수정 절차: 번들 수정 →
export_catalog_bundle.py검증 →generate_seed_from_catalog_bundle.py로 91 재생성 → (배포 시) draft/approve/publish. - 숫자는 층 이름을 붙여 말한다 (comparison 표).
- e2e/integration 기본은 여전히
90(9장). 풀 DB는90다음91— leftover 주의 (decision-100steps-seed-90-leftover). - fixture 9장은 회귀 앵커로 유지 가능 (의도적 최소).
- seed 자동화 (이행):
91≈ 번들 관계형 카탈로그 전량( cards…events ).verify-all1.5--check. migrations 096 event_battle, 097 commotion.
대안
| 안 | 결과 |
|---|---|
| A. seed를 유일한 SSOT | 기각 — Godot 파일 정본화 이미 완료 |
| B. 번들 SSOT + seed 픽스처 + publish 서빙 | 기본 채택 |
| C. seed←bundle 생성 파이프 | 부분 이행 — 91 생성+check; e2e는 90 유지 |
근거
- brief-100steps-file-ssot-publish-excerpt
- brief-100steps-catalog-layer-inventory
- comparison-100steps-catalog-layers
- concept-100steps-catalog-publish
- brief-100steps-godot-readme
- 100steps repo:
scripts/generate_seed_from_catalog_bundle.py,db/seed/91_seed_catalog_from_bundle.sql,db/seed/README.md
폐기·재검토
- e2e가 published/91 풀 콘텐츠를 직접 쓸 때
90축소 가능 - backend 통합 테스트가 91을 기본 적용할 때
- leftover prune 도입 여부 — decision-100steps-seed-90-leftover