Files
maplecontest/docs/codex-workflow.md
gahusb 1100cbeb08 docs(codex): codex-workflow.md에 하네스 규칙 동기화 (kind·검증·revert)
codex-working-rules.md에 넣은 규칙을 codex-workflow.md에도 동일 반영:
- 쓰기 원칙: 카드 kind↔효과 일치(데미지=Attack/유틸=Skill/지속=Power) +
  새 효과필드 Lua·JS 미러 양쪽 구현.
- 신규 "검증·통합 원칙" 섹션: 변경 후 검증 스위트(cardkinds·cbprops·
  cbgap·미러테스트) · main 머지 전체 revert 금지(#98/#99 사고) ·
  RULES.md/codex-working-rules.md 권위.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUvHKjrt8jqLzDeCsRRGmj
2026-06-30 23:48:54 +09:00

2.4 KiB

Codex Workflow

이 저장소에서 작업할 때는 토큰과 변경량을 아끼는 쪽을 기본으로 둔다.

작업 원칙

  • 이미 확인한 사실은 다시 읽지 않는다.
  • 같은 내용을 통째로 지우고 새로 쓰지 않는다.
  • 수정은 가능한 한 apply_patch로 섹션 단위만 한다.
  • 문서는 전체 재작성보다 부분 수정으로 유지한다.
  • 카드 구현은 한 번에 하나씩, 공용 필드 우선으로 넣는다.
  • 새 기능은 데이터 1곳 + 런타임 1곳 + 테스트 1곳 순서로 맞춘다.

읽기 원칙

  • 파일은 필요한 것만 읽는다.
  • 비슷한 파일은 병렬로 한 번에 확인한다.
  • 같은 정보를 여러 번 요약하지 않는다.

쓰기 원칙

  • 공용으로 표현 가능한 효과는 카드 전용 분기로 만들지 않는다.
  • 같은 의미의 효과는 같은 필드 이름을 쓴다.
  • 문서는 카드별 상태표와 공용 필드 사전을 분리해서 유지한다.
  • 카드 kind는 효과와 맞춘다 — 데미지 카드=Attack, block·유틸만 있으면=Skill, 지속효과=Power(powerEffect 또는 power 필드 필수). 안 맞으면 사용 불가/死카드가 된다(Power 분기는 damage/aoe 무시, Attack은 몬스터 드롭 라우팅).
  • 새 효과 필드는 Lua(cb/*.mjs)와 JS 미러(tools/balance/sim-balance.mjs) 양쪽에 구현한다(한쪽만 = 게임↔시뮬 드리프트).

응답 원칙

  • 중간 보고는 짧게 한다.
  • 바뀐 점과 남은 점만 말한다.
  • 불필요한 재설명은 줄인다.

검증·통합 원칙

  • 카드/cb 변경 후 검증 스위트를 돌린다: node tools/verify/cardkinds.mjs(kind↔효과)·cbprops.mjs(미선언 self.X 필드)·cbgap.mjs(UI 경로) + node --test tools/balance/sim-balance.test.mjs(이중구현 미러). 이상 0을 확인한 뒤 산출물을 갱신한다.
  • 작업 브랜치에 main을 머지했다가 충돌·문제가 나도 그 머지 커밋을 통째로 git revert하지 않는다 — main에 먼저 들어간 타인 작업이 collateral로 사라진다(2026-06-30 #98/#99#96 11개 수정을 이렇게 날린 사고). 소스 충돌만 해소하고 산출물(codeblock 등)은 재생성한다.
  • 하네스 규칙의 최종 권위는 RULES.md(§1 산출물 읽기/수정 금지·§4 git/PR·§6 이중구현 동기화·§9 카드 kind)이고, codex 전용 하드룰은 docs/codex-working-rules.md다. 작업 전 둘 다 따른다.