refactor(cb): codeblock 메서드 모듈화 Phase 1b (cb/*.mjs 17종, 바이트 동일) #71

Merged
gahusb merged 5 commits from feature/cb-modularization into feature/gen-modularization 2026-06-16 08:34:53 +09:00
Owner

요약

Phase 1b — gen-slaydeck.mjscodeblock 메서드 161개를 cb/*.mjs 17 모듈로 분리. 출력 SlayDeckController.codeblock 바이트 동일(순수 리팩터·무위험). Phase 1(#70) 위에 스택(base=feature/gen-modularization).

문서: docs/superpowers/specs|plans/2026-06-16-codeblock-modularization*.

변경

  • tools/deck/lib/codeblock.mjs: method·prop·codeblock 헬퍼 + writeCodeblocks 상수 9개(RUN_LENGTH·GOLD_PER_WIN·CARD_PRICE·REST_HEAL·RELIC_PRICE·ACT_COUNT·ACT_MAPS·LOBBY_MAP·LOBBY_SPAWN)
  • tools/deck/cb/*.mjs (17): 메서드 연속런 모듈 — boot·state·soul·charselect·run·deckturn·deckview·hand·combat·jobs·runend·render·reward·items·tooltip·map·shop
  • tools/deck/gen-slaydeck.mjs: 오케스트레이터로 축소(3,546 → 405줄; writeCodeblocks = props 배열 + [ ...17 spread ])
  • RULES.md §1: cb/·lib/codeblock 반영
  • prop 103개는 오케스트레이터 writeCodeblocks 유지(범위 밖)

검증

  • 매 추출 diffcheck: SlayDeckController.codeblock IDENTICAL(바이트 동일). 산출물 변경 0(커밋 안 함).
  • 미러 테스트 sim-balance·rogue-map exit 0.
  • 안전 근거: 메서드 원본 순서 보존(연속런 spread-concat) → codeblock 직렬화 동일. 단방향 의존 orchestrator→{hud,cb}→lib.

참고

  • common.gamelogicEnergy:0.0 등은 Phase 1 머지에서 origin/main을 채택한 기존 staleness(생성기는 정수 0 생성) — Phase 1b와 무관(patchCommon 무변경).
  • base=feature/gen-modularization(#70 스택). #70 머지 후 main으로 리타겟.

🤖 Generated with Claude Code

## 요약 Phase 1b — `gen-slaydeck.mjs`의 **codeblock 메서드 161개를 `cb/*.mjs` 17 모듈로 분리**. 출력 `SlayDeckController.codeblock` **바이트 동일**(순수 리팩터·무위험). Phase 1(#70) 위에 스택(base=`feature/gen-modularization`). 문서: `docs/superpowers/specs|plans/2026-06-16-codeblock-modularization*`. ## 변경 - **`tools/deck/lib/codeblock.mjs`**: `method`·`prop`·`codeblock` 헬퍼 + writeCodeblocks 상수 9개(RUN_LENGTH·GOLD_PER_WIN·CARD_PRICE·REST_HEAL·RELIC_PRICE·ACT_COUNT·ACT_MAPS·LOBBY_MAP·LOBBY_SPAWN) - **`tools/deck/cb/*.mjs` (17)**: 메서드 **연속런** 모듈 — boot·state·soul·charselect·run·deckturn·deckview·hand·combat·jobs·runend·render·reward·items·tooltip·map·shop - **`tools/deck/gen-slaydeck.mjs`**: 오케스트레이터로 축소(**3,546 → 405줄**; writeCodeblocks = props 배열 + `[ ...17 spread ]`) - **`RULES.md` §1**: cb/·lib/codeblock 반영 - prop 103개는 오케스트레이터 writeCodeblocks 유지(범위 밖) ## 검증 - **매 추출 `diffcheck`: `SlayDeckController.codeblock` IDENTICAL**(바이트 동일). 산출물 변경 0(커밋 안 함). - 미러 테스트 `sim-balance`·`rogue-map` exit 0. - 안전 근거: 메서드 **원본 순서 보존**(연속런 spread-concat) → codeblock 직렬화 동일. 단방향 의존 orchestrator→{hud,cb}→lib. ## 참고 - `common.gamelogic`의 `Energy:0.0` 등은 **Phase 1 머지에서 origin/main을 채택한 기존 staleness**(생성기는 정수 `0` 생성) — Phase 1b와 무관(patchCommon 무변경). - base=`feature/gen-modularization`(#70 스택). #70 머지 후 main으로 리타겟. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
gahusb added 5 commits 2026-06-16 08:03:51 +09:00
writeCodeblocks의 메서드 161개를 연속구간별 cb/*.mjs 모듈로 분리(바이트 동일).
prop 103개는 오케스트레이터 유지. 헬퍼+공유상수는 lib/codeblock.mjs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
writeCodeblocks의 메서드를 연속-런 17 모듈(boot/state/soul/charselect/run/
deckturn/deckview/hand/combat/jobs/runend/render/reward/items/tooltip/map/shop)로
분리, methods 배열은 spread-concat(원본 순서 보존). prop 103개는 오케스트레이터 유지.
산출물 무변경(diffcheck: SlayDeckController.codeblock IDENTICAL).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gahusb merged commit 3dd016e16d into feature/gen-modularization 2026-06-16 08:34:53 +09:00
gahusb deleted branch feature/cb-modularization 2026-06-16 08:34:54 +09:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gahusb/maplecontest#71