최종 갱신 (KST)

← 일감 목록
T-093

T-093 — 아이템 설명 보간

진우 New 우선순위 보통 목표 261010

번호 변경 (2026-09-25) — 처음엔 T-086 였다. 원격에 같은 번호의 다른 일감이 먼저 올라가 T-093로 옮겼다. 이미 만든 커밋 메시지의 (T-086)는 이 일감을 가리킨다.

엑셀 설명문에 숫자를 직접 적지 않고, 같은 행의 컬럼 값을 생성 시점에 치환한다.

엑셀에 적는 것 .bytes에 들어가는 것
인챈트 부여 {SuccessPermille:permille} 인챈트 부여 50%
농사 +{Value:permille} 농사 +4%

왜

GameDesign/CLAUDE.md가 "로직에 쓰는 수치를 Description에 적지 않는다" 고 금지해 뒀다 — 확률·배수를 메모로 적으면 실제 컬럼과 따로 놀다가 조용히 어긋나기 때문이다. 보간이 그 금지를 푸는 열쇠다: 숫자는 실제 컬럼 한 곳에만 존재하고, 값을 고치면 설명이 따라온다.

결과가 GameDesign/DataLog/*.json에 찍히므로 diff 리뷰로 확인된다. 클라·서버는 이미 문자열을 읽을 뿐이라 코드를 안 고친다.

할 일

  • [ ] 토큰 문법 확정 — {컬럼명} · 포맷 지정자 :permille(천분율 → %) 등
  • [ ] Server/ExcelGenerator에 치환기 추가 (같은 행 컬럼만)
  • [ ] 플레이어용 설명 컬럼 신설 — Description은 기획 메모로 남긴다(로직이 안 읽는다)
  • [ ] 미지정 토큰·없는 컬럼은 fail-fast (조용히 빈 문자열이 되지 않게)
  • [ ] GameDesign/CLAUDE.md의 Description 절 갱신

하지 않는 것

  • 엑셀 수식(="…"&C2/10&"%"). format-excel.py가 openpyxl로 저장할 때 수식 캐시값이 날아가고, 그러면 ClosedXML 평가에 의존하게 된다 — 서식 정리를 돌릴 때마다 터질 수 있다.
  • 다른 시트 값 참조. "어느 행인지"를 지정하는 문법이 필요해 급격히 복잡해진다. Ref로 이미 연결된 경우에만 나중에 연다.
  • 런타임 보간. 치환기를 클라·서버 양쪽에 두게 되고 미러가 2곳이다. 다국어나 레벨별 가변 수치가 생기면 그때 재검토한다.

선행

T-092 인챈트 이후 (2026-09-23 사용자 결정 — 인챈트 작업에 끼워 넣지 않는다). 모든 테이블이 혜택을 보는 파이프라인 기능이라 독립 일감으로 뗐다.