① 반영:
- H-220: BRAND_PROBES specific-first(isPreRef/isPostRef가 isRef 앞) + 손 복사
목록 확장 주의 주석 — 상위 술어가 앞이라 둘이 도달 불능이었음
- H-223: retractor 생략 error에 위반 핸들러 특정 정보(name/priority/k/index)
— h.process 프레임은 반환돼 도달 불가라 메시지가 유일한 단서. 동률 경고도
같은 describeHandler. base 의사코드 동기
- H-227: local Dispatch = {} :: any → 로컬 함수 + 타입 주석 조립로 생산자
표면을 quad-types 선언과 analyze 대조 가능하게
- H-221: ROADMAP 우선순위 체크박스의 stale H-214 주석("§4 대기") 종결로 갱신
- H-224: M4 잔여 몫 문구에 효과 수준 단언(옛 구독 0, stale Set 불전파) 복원
- H-225: 세션 파일에 감사 6라운드 수렴·리뷰 결과 기록
② §4 합류(증상 확정, 처방 대기 — 거짓 사실 주장만 선반영):
- H-218: chains retractor 클로저의 inst 캡처 → H-71 "버킷 값이 weak 키
되참조" 누수 패턴. dispatch-core-plan·ui-shorthand-plan의 "버리면 결국
GC" 주장 정정(retractFrom 의무화 여부는 §4)
- H-219: drive 경로 매치 실패 error의 도착지가 내부 프레임
- H-222: "제공자 계약 위반" level 분류가 계약 표에 없음 — H-212 문단을
잠정 표시로 완화
기각: H-226(process 꼬리 병합 리팩터 — 확정 의사코드 1:1 유지 우선, 실측
병목 아님. 메시지 drift 우려는 H-223 공용 함수로 소멸)
감사 6라운드는 da67a8c diff 전수 점검으로 확실 0건 수렴(의심 1건 표현
정밀도만 정정). 테스트·analyze·doc-check ERROR 0 클린.
Co-authored-by: qwreey <me@qwreey.moe>
Claude-Session: https://claude.ai/code/session_01LF78pXeFGD1ZSVD3ifteYG
5.8 KiB
2026-08-31 (02) — M3 착수: round12 규약 확정 + 단위 1(디스패치 코어) 구현
무엇이 있었나
사용자 지시 *"M3 를 작업 시작하자. m3-implementation-round12 문서를 보면 돼"*로
시작. m3-implementation-round12-brief.md가 §0 회신 대기 상태였고, §6(첫 단위
계획)은 "Q1·Q2가 (a)로 닫히면 채워 사용자 확정을 받는다"였다.
규약 확정 (대화형 선택지)
§6 초안을 먼저 채운 뒤 §0 세 문항과 §6 승인을 한 번의 대화형 선택지로 물었다(밤샘 배치가 아니라 사용자가 자리에 있던 시점). 회신:
- Q1 (a) — M2 골격 그대로 + M3 전용 게이트(새 핸들러 전 "Handler 작성 체크리스트" 필독) 하나 추가.
- Q2 (a) — 단위 넷(코어 → 부기 →
None/Nil핸들러 → Leaf·가드·종합). - Q3 (a) — M2 하자는 규모로 가름(경미 = round12에 ① / 설계 결정 규모 =
그때
m2-implementation-round13신설). - §6 승인 — "승인 — 이대로 착수". 요지:
Dispatch/Handler.luau타입 전용 잎 /InitDispatch(module)팩토리,chains는 인스턴스별Relate, 우선순위 상수도 이 파일 /drive는 단위 1에서 (b) 본체 루프만(⓪⓪'는 단위 2, (a)(c)는 M8) /spec.dispatch+spec.drive(spec-로컬 테스트 핸들러) / 스파이크01재작성은spec.drive가 상시 회귀로 대체.
기록 커밋 f14ba09(brief §0 회신 블록 + round12.md 스켈레톤 + 인덱스 3층).
단위 1 구현 (커밋 590b0fe, a6d0c7f)
- 타입은 quad-types 소유(
Handler/Dispatchexport +Quad.Dispatch필드,H-25),Dispatch/Handler.luau는 재export 잎.H-165를 예고대로 밟았다 — pesde shim이 새 export type을 몰라 analyze가 Unknown type,pesde install재실행으로 해소. Dispatch/init.luau: "Dispatch 체인" 절 의사코드를 그대로 옮김. 옮기다 나온 발견 셋은round12.md가 소스 —H-212(① base 의사코드 error가 한국어·level 없음 — error 계약(08-25)이 미반영, 문서·코드 같은 커밋 정정),H-213(① 우선순위 밴드 리터럴 값은 문서 미정 — 1000/0/-1000/-1000000 채움),H-214(②listHandlers·동률 경고가 원하는 핸들러 이름이 계약 3종에 없음 — §4 문항으로, 코드는 핸들러 객체 배열 반환 +TODO(H-214)마커).- 매치 실패 메시지의 브랜드 출력은 기각된 Brand 역조회를 재도입하지 않고
모듈 공개 술어(
is*) 프로브로(실패 경로에서만). - 신 솔버 타입 이슈 둘:
type(x)=="function"내로잉이 콜러블이 아님(캐스트),table.sort비교자 파라미터 무주석이 unknown — 둘 다 주석/캐스트로. - 테스트:
./scripts/test.sh전부 PASS,luau-analyze클린, selene 에러 0.spec.drive1번이F-4-1언어 동작(일반화for의 배열→해시 순서)을 실측 — 스파이크01폐기·done/이동(STATUS.md·ROADMAP 재검증 대기 절[x]). - ROADMAP M3 체크박스 중 단위 1 몫 여섯을
[x](drive 범위 절단 주석 포함).
단위 끝 절차 — 감사 루프 5라운드 + §4 배치 회신
감사 루프(quad-doc-auditor 한 턴 하나, 라운드마다 각도 변경): 1라운드
4건(CLAUDE.md 볼드 중첩 / STATUS.md 요약 표 7·17 / quad-types-plan M3 완료
표시 / luau-test README 01 행) → 2라운드 2건+판단 1(STATUS.md "합류" 문단
해소 표시·done 나열 갱신 / 스파이크 04 처분 → H-215 §4 등재) → 3라운드
2건(dispatch-core-plan.md Length/Offset 절·주입 op 스텁 error 영어화 —
H-212 확장 / H-214 근거 정정: "이름으로 덤프"는 같은 문서 자기 자신) →
4라운드 회귀 0 + 정보성 1(slot-plan.md 한국어 error 11곳 → H-216 ①로
정리) → 5라운드 2건(H-216 계수 12→11 / 잔여 4곳 → H-217 ①: attribute·
debounce-throttle·ref("PreRef instance reused" 문구 통일)·source-state
(mock 실구현 문구에 맞춤)). base/ 코드 리터럴의 한국어 error 0.
§4 배치 회신(사용자, 감사 5라운드 도중): "배치 문항은 중간확인 완료했어.
전부 권고안에 동의해. 나중에 천천히 반영해줘" — H-214·H-215 전부 (a).
반영: Handler 계약에 선택 필드 name: string?(진단 전용 — quad-types /
동률 경고에 이름 / TODO 마커 제거 / 계약 절 신설 항목 / spec 11번), 스파이크
04 폐기·done/ 이동(잔여 StoreBind 경유 재발행 경로는 ROADMAP M4 mock
항목에 명시). 테스트·analyze·doc-check 전부 클린.
감사 6라운드(수렴 확인) — 회신 반영 커밋 da67a8c의 diff 전수 점검,
새 확실 발견 0건(의심 1건: H-217 요약의 "mock 문구에 맞춤" 표현 정밀도
— "공통 접두를 딴 근사"로 정정). 감사 루프는 여기서 수렴.
/code-review high — 10건 (H-218~H-227)
수렴 직후 리뷰가 10건을 냈다(감사자와 보는 축이 다르다는 관례 그대로).
분류·처리는 round12 요약 표가 소스 — 요지: ① 여섯 반영(H-220 BRAND_PROBES
specific-first / H-221 ROADMAP stale / H-223 retractor 생략 error에 핸들러
특정 정보 / H-224 M4 잔여 몫에 효과 수준 단언 복원 / H-225 이 파일의 루프
서술 stale / H-227 {} :: any → 타입 주석 조립), ② 셋 §4 합류(H-218
chains 캡처 누수 — 거짓 GC 주장 둘은 사실 정정만 선반영 / H-219 drive
경로의 error 도착지 / H-222 제공자 계약 위반의 level 분류), 기각 하나
(H-226 꼬리 병합 리팩터 — 확정 의사코드 1:1 유지 우선).
이 다음
리뷰 반영 커밋 → fable 탐사자(round12.md에 발견 이어붙임) → 사용자에게
"§4를 보라" 한 줄(열린 문항: H-218/H-219/H-222).