No description
사용자 요청으로 6라운드에 두 패스를 더 이어붙였다. 3차는 *"지금 나온거 이외에 더 문제될만한게 있는지 … 그러고 나서 모든 요소들이 진짜 실존하는 문제인지 사실확인을 해줘"*, 4차는 *"문제를 계속 쌓고, 한번에 몰아 처리하는게 효율적이라, 한번 더 순회하고"*. **`base/`는 여전히 한 줄도 안 고쳤다** — 전부 발견 보고이고 회신 대기. ## 3차 패스 (`H-21`~`H-38`) — 1·2차가 한 번도 안 연 문서 전체 `store-plan.md`/`source-state-plan.md` 코어, `modifier-plan.md`/ `component-composition-plan.md`/`bind-system-plan.md`, `event-plan.md`/ `onchange-plan.md`/`relate-plan.md`/`module-lifecycle-plan.md`/ `fallback-plan.md`/`lifecycle-hooks-plan.md`, `tween-plan.md`/ `debounce-throttle-plan.md`, `typing-limits.md`/`quad-types-plan.md`/ `project-setup-plan.md`와 **실제 커밋된 M1 코드**, `slot-plan.md`의 공개 CRUD·`:Single`·래핑·`dispose` 계층 + 통합 시나리오 넷. **이번부터 추론으로 끝내지 않고 로컬 `luau` 0.734 / `luau-analyze`로 직접 재현했다.** 그 결과 **기존 `H-2`의 크래시 주장이 틀렸음이 드러났다** — `table.insert(t, 0, x)`는 Luau에서 안 터지고 조용히 `t[0]`에 쓴다. 결론과 고칠 방향은 유효하지만 실제 결과는 크래시가 아니라 **영구 고아**다(claim은 됐는데 모든 walk가 `ipairs`라 아무도 안 닿음). 🔴 다섯: `unwrapElement`가 Instance에서 크래시(Roblox는 없는 멤버 인덱싱이 에러) / 기본 identity `updateFn`이 `KeyGone`을 그대로 반환해 항상 error / 전파 도중 새 구독자가 붙으면 **구독자 하나가 누락되고 다른 하나가 두 번 발화**(실측, 실행마다 결과가 다름) / `Tween<T>:Mapped` 재귀 제네릭 타입 누수(`luau-analyze` 0 진단) / `New(): Quad`가 닫힌 타입이라 M2가 붙일 `quad.Dispatch`가 타입에러(`luau-analyze`로 재현). ## 4차 패스 (`H-39`~`H-54`) — 문서 단위가 아니라 축 전환 핸들러 레지스트리 전수 / `ref-plan.md`·`attribute-plan.md` 심층 / **`luau-test` 스파이크 실제 재실행** / 프리미티브 조합 매트릭스 / `reference`·`archive`·로드맵 M3~M9 / **엔진·언어 사실 주장 전수 검증**. **`H-39`(🔴)는 세 축에서 독립적으로 같은 결론에 도달했다** — 배열 자리를 차지하는 말단 핸들러 4종(`TagHandler`/`AttributeGroupHandler`/ `RefLeafHandler`/`ObserverEffectLeafHandler`)이 `setLength`/ `setOffsetSource`를 **아예 등록하지 않아** `Frame { Tag("x"), Child{} }` 같은 흔한 배치가 첫 마운트에 `recompute`의 명시적 error로 죽는다. 문서를 하나씩 읽는 방식으로는 구조적으로 안 보이는 종류(등록 의무는 디스패치 코어 문서에만 있고 각 핸들러 문서는 자기 로직만 서술). 그 외 🔴 둘: 공개 `Slot:Add` 의사코드가 CRUD 절이 확정한 가드 넷을 하나도 안 함(`H-37`은 이 문제의 반쪽이었다) / `groupClaimKeys` 확정이 `AttributeGroupHandler` 의사코드에 배선 안 됨. **엔진 사실 검증의 성과 둘** — `H-21`의 전제가 공식 문서로 **확인**됐고, 반대로 **`PreRef`의 존재 근거가 `Workspace.SignalBehavior`에 조건부**임이 드러났다(`H-42`, 신규 템플릿 place는 이미 `Deferred`가 기본이고 코퍼스에 이 단어가 0건). **스파이크는 깨끗하다** — `done/` 16개 전원이 `STATUS.md` 주장과 실행 결과 일치, GC 스파이크는 3회 반복에도 수치 동일, 설계 드리프트 0건. 색인 두 곳(`README.md`의 `qa-request/` 행, `todos.md` 00번)도 같이 갱신. `doc-check.py` ERROR 0. Co-authored-by: qwreey <me@qwreey.moe> Claude-Session: https://claude.ai/code/session_01TPzatFCEs1CfWNPxF1pidr |
||
|---|---|---|
| .claude | ||
| .vscode | ||
| quad-base | ||
| quad-roblox | ||
| quad-types | ||
| type-version-check | ||
| .gitignore | ||
| .luaurc | ||
| CLAUDE.md | ||
| default.project.json | ||
| HUMAN_TODO.md | ||
| mise.toml | ||
| pesde.lock | ||
| pesde.toml | ||
| ROADMAP.md | ||
| SAFETY.md | ||