- H-182 (a): Effect `_dying` — Destroying 콜백이 세우고 재바인드·Subscribe류가 내림, rawRerun 홀드 조건 합류(Slot `_destroyed`와 다른 이름은 의도 — 재바인드 가능) - H-183 (a): Observer `_running` — 모든 fn 실행 둘레 + 네 진입점 첫 줄 가드 (H-147 대칭; error 시 잔류는 설계상 인정) - H-184 (a): `_assertBindable` 훅 — bindLifetime이 부기 커밋 전에 문의(level 3), H-147 가드는 _bindDestroying에서 이 훅으로 이동. mock + lifecycle-pattern (1) - H-185: 권고 기각 — cleanup은 하나만(목록 소진은 표면 확대), 문서·타입 주석 명시 - H-187 (a): 타입 별칭 이름 넷 승인(quad-types-plan 기록, 마커 해소) - H-200 (b): Gate 생성이 setup 동안 상류 _subs에서 떼고 성공 후 재등록(pcall 없음) - H-203 (a): Blocker 순회가 핸들마다 IsBlocked 재확인 — 재차단 시 잔여는 다음 Off로 - H-168~H-170 재확인 반영: H-170 한계 공개 문서화(ref-plan + content-map 22번) - 스펙: spec.effect 10 / spec.observer 9 / spec.gate 1 확장 / spec.blocker 8 - 감사 3라운드(3+2 → 3 → 0 수렴): 필드 목록 _running/_dying, CLAUDE.md· project-context.md M2 배너(목록은 todos.md 00번 단일 소스), session-summary - 남은 코드 마커 셋: H-186/H-198(재질문 — §4 회신 2 블록에 메인 답변), H-205(보류) Co-authored-by: qwreey <me@qwreey.moe> Claude-Session: https://claude.ai/code/session_01LF78pXeFGD1ZSVD3ifteYG
4.6 KiB
CLAUDE.md
Roblox 엔진용 DOMless UI 렌더러 quad를 처음부터 다시 짜는 프로젝트.
[2026-08-24 기준] M0(스파이크 검증)/M1(스캐폴딩)까지 완료, 다음은
M2(반응형 코어 — Source/State/Store) — ⭐ [2026-08-28] M2 착수, 자율 구현
구간 진행 중(규약은 .claude/qa-request/pre-implementation-handtrace-round11-brief.md,
발견·배치 문항은 -round11.md; [2026-08-29] 단위 넷 전부 구현 완료 — ROADMAP.md M2
체크박스 전부 [x], 단위 3·4 끝 절차 완료; [2026-08-31] 단위 2 /code-review와
§4 배치 회신 1차 처리까지 완료 — 남은 문항 셋(재질문·보류)의 목록은
.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-150~H-157까지 전량 결정·반영, 그중
H-143과 H-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.
후자들은 과거 시점 서술이라 더 최근 결정이 안 반영돼 있을 수 있음.