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
40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# 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`다. 작업 전 둘 다 따른다.
|
|
|