quad/CLAUDE.md
qwreey-agent-selene f14ba09cd6
docs: M3 자율 구현 규약 확정 — round12 §0 전량 (a)·§6 첫 단위 계획 승인
- §0 회신 기록: Q1(M2 골격 + Handler 체크리스트 게이트)/Q2(단위 넷)/
  Q3(M2 하자는 규모로 가름) 전부 권고 (a) 사용자 채택
- §6 신설·승인: Dispatch/Handler.luau(타입 전용 잎) + Dispatch/init.luau
  (InitDispatch(module), chains는 인스턴스별 Relate, HANDLER_PRIORITY_* 상수
  정의+재노출) + quad-types Dispatch 필드(H-25) / drive는 단위 1에서 (b) 본체
  루프만 — 배치 게이팅은 단위 2, pre-pass·postRefList는 M8 / 스파이크 01
  재작성은 spec.drive.luau 상시 회귀로 대체
- round12.md 스텁을 실 스켈레톤(요약 표/§4/§5/§6)으로 교체, H-212부터
- 인덱스 3층 갱신: README qa-request 행, CLAUDE.md·project-context 머리말,
  todos.md 00번 — "M3 진행 중"

Co-authored-by: qwreey <me@qwreey.moe>
Claude-Session: https://claude.ai/code/session_01LF78pXeFGD1ZSVD3ifteYG
2026-08-31 14:59:23 +09:00

4.7 KiB

CLAUDE.md

Roblox 엔진용 DOMless UI 렌더러 quad를 처음부터 다시 짜는 프로젝트. [2026-08-31 기준] M0(스파이크 검증)/M1(스캐폴딩)/M2(반응형 코어 — Source/State/Store)까지 완료, M3(디스패치 엔진) 진행 중 — M2는 자율 구현 구간(규약 .claude/qa-request/m2-implementation-round11-brief.md, 발견·배치 문항 -round11.md)으로 돌아 2026-08-28 착수08-31 종결: 단위 넷 구현·감사· 리뷰·탐사 완료, ROADMAP.md M2 체크박스 전부 [x], §4 문항·코드 마커 0. M3도 같은 방식의 자율 구간 — 규약은 .claude/qa-request/m3-implementation-round12-brief.md(2026-08-31 §0·§6 사용자 확정, 단위 넷·발견 H-212부터 -round12.md), 진행 상태는 .claude/todos.md 00번이 소스. ⚠️ [2026-08-24] M2와 M3의 번호·순서가 맞바뀌었다 — 예전엔 M2=디스패치, M3=반응형이었는데 의존이 한 방향(디스패치 → 반응형)이라 반응형을 먼저 짓기로 확정했다. 그래서 2026-08-24 이전에 쓰인 session/·archive/·qa-request/ 문서의 M2/M3는 옛 의미로 읽을 것(라이브 문서는 전부 새 번호로 맞춰뒀음). 경위는 .claude/archive/question-resolved.md의 "마일스톤 경계" 절, 새 구성은 ROADMAP.md의 M2 배너. [2026-08-26] 8라운드 손 트레이싱까지 처리 완료 — M2 착수를 막는 항목이 하나도 없다. 결정의 소스는 .claude/qa-request/pre-implementation-handtrace-round8-followup.md (7라운드 몫은 -round7-followup.md; **[2026-08-27] 9라운드 몫은 -round9-followup.md — Q1Q10·H-138·H-139·H-142, 그리고 /code-review가 낸 H-143H-146까지 전량 반영 완료**; [2026-08-28] 10라운드 몫은 -round10-followup.md — 광범위 탐사 H-150H-157까지 전량 결정·반영, 그중 H-143H-146 루트 예외는 하루 만에 뒤집힘 — 후자는 같은 날 다시 좁혀 복원)이고, 같은 날 Claim 갈래까지 전량 확정돼 research/에서 base/claim-plan.md로 승격.claude/question.md 최우선 절은 비어 있다. 같은 상태를 .claude/project-context.md도 서술하니 마일스톤이 넘어갈 때 두 곳을 같이 고칠 것. 진행 상황의 소스는 항상 루트 ROADMAP.md.

이 파일에 내용을 직접 쌓지 말 것 — 짧은 진입점으로 유지한다. 새 서술은 아래 import된 파일 중 맞는 곳에 넣을 것(어디에도 안 맞으면 그건 매 세션 로드될 내용이 아닐 가능성이 높음 — .claude/ 아래 해당 문서로).

항상 로드되는 컨텍스트

관례와 작업 방식 @.claude/conventions.md

프로젝트 컨텍스트와 문서 구조 @.claude/project-context.md

지금 할 일 @.claude/todos.md

온디맨드 자료 (자동 로드 안 됨 — 필요할 때 직접 열 것)

무엇이 궁금할 때 어디를 볼 것
지금 유효한 설계 — 어떤 결정이 확정돼 있는가 .claude/base/ (먼저 .claude/base/architecture.md)
문서 전체 색인 — 어느 파일이 뭘 다루는가 .claude/README.md
사용자가 답해야 할 열린 질문 .claude/question.md
구현 순서 / 마일스톤 루트 ROADMAP.md
사람만 할 수 있는 일 루트 HUMAN_TODO.md
어떤 결정이 왜 그렇게 됐나 / 전에 뒤집힌 적 있나 .claude/session-summary.md를 grep (세션별 2~4줄 요약 색인)
그 결정의 논쟁 과정 원문 .claude/session/YYYY-MM-DD-NN-slug.md
뒤집히거나 기각된 설계의 원문 .claude/archive/

주의: session-summary.md는 의도적으로 @import 안 함 — 계속 자라는 히스토리 문서라 통째로 올릴 이유가 없음(그 문서 스스로 "항상 읽을 필요 없음, 지금 유효한 설계는 base/가 소스"라고 명시). 필요해지면 그때 가서 열 것.

충돌 시 우선순위: .claude/base/ > 여기 요약이나 session-summary.md. 후자들은 과거 시점 서술이라 더 최근 결정이 안 반영돼 있을 수 있음.