44개 스파이크로 question.md 0-Y를 재실측한 결과, 여섯 번째 세션의
"콜백이 raw 값을 받으면 완전 클린" 판정이 틀렸음이 드러남 — 그건 진단
0건만 확인한 것이었고, luau-analyze --annotate로 열어보니 반환 타입이
Unifiable<Error>로 조용히 새고 있었음(틀린 대입도 안 잡힘).
진짜 원인은 콜백 계약이 아니라 Compute가 State<U>(자기 이름을 다른 타입
인자로 감싼 타입)를 반환한다는 것 자체 — RFC relax-recursive-type-restriction이
Promise<T>.andThen으로 예시 든 바로 그 패턴. 사용자 확정: quad가 타입을
비틀 일이 아니라 상위 Luau의 현 한계이고, RFC/이슈 수혜를 받을 때 해결될
일이라 당장 할 수 있는 바 없음.
- base/typing-limits.md 신설 — 흩어져 있던 타입 한계 5건 통합, 대전제
"Luau 한계를 우회하려 타입/API를 비틀지 않는다", 새 API 설계 체크리스트
- audit/type-recursion-issue/ 신설 — REPORT.md + spikes 44개(audit 폴더에
스크립트를 같이 둔 첫 예외, 판정 재현에 개별 실행이 필요해서)
- 0-Y 해소 전파: question.md(최우선 2건→1건) / archive / base 5개 /
research 2개 / 인덱스 4개 / luau-test(08을 done/으로, review-required 비움)
- audit/luau-test-first-run-2026-08-13.md: 판정이 뒤집힌 당사자라 배너뿐
아니라 본문 표·문단·결론까지 전수 수정
- HUMAN_TODO 6번 신설: luau-lsp 기본이 옛 솔버라 CLI와 진단이 다름
교훈: luau-analyze 진단 0건은 타입 해소를 뜻하지 않음 — 타입 스파이크는
--annotate로 실제 추론 타입을 확인하고 음성 대조군을 같이 둘 것.
doc-check.py ERROR 0 유지(WARN 59건, 변경 전과 동일).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KckSawrsJSJmDBcSojJPxZ
서브 에이전트 없이 직접 코퍼스 전체를 순회한 감사(base/research/reference/
luau-test/audit/archive 전부 확인, doc-check.py ERROR 0 유지). 발견한
부정확성은 전부 9~10차 세션의 문서 재편 이후 반영이 누락된 stale 카운트/
포인터:
- question.md 0-Z/0-A: 반영 대상 문서 개수가 "6개"로 남아 ref-plan.md가
누락돼 있던 것을 "7개"로 정정(dispatch-redispatch-diff-plan.md 6절과
일치).
- HUMAN_TODO.md 4번: 동일한 6→7 stale 카운트 정정.
- ROADMAP.md 백로그: 2026-08-13 세 번째 세션에 이미 불필요로 해소된
objectListClass.__newIndex 재현 테스트가 여전히 할 일로 남아있던 것 정정.
세션 로그(session/2026-08-13-11-...)와 CLAUDE.md 세션 히스토리 요약도 추가.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6hzeUi5QdLPEk69B6cXFa
가장 중요한 발견은 HUMAN_TODO.md — 6라운드 감사가 한 번도 안 건드린 파일:
- 헤더가 "설계 질문은 question.md에 따로 있음, 그건 안 봐도 진행에 지장
없고"라고 단언하고 3번 항목도 "막고 있는 항목은 없음"으로 끝남. 그런데
0-Y/0-Z는 M0 착수를 실제로 막고 있고, 둘 다 **사용자가 직접 판단하겠다고
명시 이관한** 항목 — 즉 정확히 이 문서가 담아야 할 성격인데 빠져 있었음.
사람이 "지금 내가 뭘 해야 하나"를 이 문서로 판단하면 아무것도 안 해도
되는 것처럼 읽힘. 4번 항목으로 신설(선택지/파급 범위 포함).
- 5번 신설 — Studio 전용 스파이크 `10`의 남은 A-1/A-2/B/C도 사람만 할 수
있는 일인데 이 문서에 없었음(첫 실측으로 나머지가 다 닫히면서 이것만
남은 건데 반영이 안 됨).
"열린 질문 없음" 계열 자기모순 2건(tag-plan.md는 이미 캐비엇을 달았는데
같은 처리가 안 된 곳):
- tween-plan.md "열린 질문 — 전부 해소됨" — `Animate`가 lazy 핸들 계약
위에 서 있어 0-Y의 직접 영향 대상인데, 0-Y 포인터가 코드 주석 한 곳에만
있고 정작 사람이 확인하러 오는 이 절엔 없었음
- bind-system-plan.md "남은 열린 질문 ... 남은 건 순수 API 표면 이름뿐" —
이 문서 자신의 계약 둘(0-Y 콜백 계약, 0-Z 재디스패치)이 열려 있는데
"이름만 남았다"로 읽힘
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6hzeUi5QdLPEk69B6cXFa
quad(Roblox DOMless UI 렌더러) v2 재작성을 위한 .claude/ 계획 구조를 세우고
핵심 아키텍처 결정을 정리함:
- quad v1 / rbvm / tbox / Fusion / Vide / 폐기된 quad2-try 프로토타입 리서치
- Store 책임 분리(base vs provider), process/retract 핸들러 디스패치 모델,
Ref 역할, Slot/Tween 설계 방향 등 핵심 결정 확정
- .claude/{base,research,qa-request,archive,feedback}, question.md, README.md
구조 마련 (code-docker/webmanager 패턴 참고)
- 루트 CLAUDE.md/HUMAN_TODO.md 작성
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>