웹 프레임워크(React/Vue/Solid/Svelte/MobX) + Fusion/Vide/quad v1 소스 근거로
현재 확정된 프리미티브(Source/State/Store/Ref/Observer/Modifier/Slot/DI)만으로
충분한지 조사. 가장 명확한 빈 자리는 키 기반 동적 컬렉션 재조정(Fusion
ForPairs/Vide indexes()류) — Slot은 CRUD 껍데기일 뿐 diff 엔진이 아님.
Effect/cleanup 공개 API, Batch, Context는 부차적 후보로 확인.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
사용자 확정 사항 반영: 브리지는 v2→v1 단방향만, 패키지명 quad-roblox-v1-compat.
v1 mount.lua/class.lua(Update 재렌더 시 __child 재부모, Clone 트리거 조건,
cascading destroy 의존)와 v2 slot-plan.md(단일 마운트 소유권, retract=폐기,
foreign Instance 처리 미명시)를 대조 조사해 두 임베딩 방향(v2 트리에 v1 리프
박기 / v1 트리 요소를 v2로 점진 교체)에 대한 구체적 안전 규칙을 도출.
Slot이 quad 밖에서 만들어진 Instance를 어떻게 다루는지만 Slot 코어 구현
시점까지 결정 불가로 남겨 question.md에 교차 참조 추가.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
사용자가 "v1 런타임을 v2 위에 재구현" 대신 "v1을 그대로 병행 실행하고
경계에서만 값을 리졸브해 넘기는 브리지"를 제안 — 검토 결과 기존에 설계된
state:Observer()(무인자="계속 관측" 유틸)와 v1의 공개 프로퍼티 재대입
API만으로 조립 가능함을 확인, DOMless/엔진값 원칙 덕에 구조적 합성도
이미 공짜라 3-2("얇게 안 됨") 문제를 재구현이 아니라 회피로 해결하는
유력 방향으로 수렴. 조사 중 target()/Linker를 "양방향 바인딩"으로
서술한 이전 오류도 정정(실제로는 named child 등록 + 시그널 중계).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
사용자 질문(v2가 v1에 얇은 compat 래퍼를 제공할 수 있는가)에 답하기 위한
조사. quad2-try의 quad-compat 서브패키지는 빈 폴더로 실제 시도된 적 없었음을
확인 — 반복 조사 금지 대상이 아니라 새로 검토 가능한 주제. 결론: 이벤트 self
관습 등 표면 문법은 opt-in 패키지로 얇게 재현 가능하지만, Class.Extend()의
자동-store+자동재렌더 같은 핵심 런타임은 v1/v2가 컴포넌트 정체성 모델 자체를
다르게 정의해서 얇게 안 됨. 방향 결정(부분 compat vs 마이그레이션 가이드)은
question.md에 열린 질문으로 반영.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
재고 결과: 저빈도 UI 이벤트의 조건부 처리는 Connect/Disconnect 없이
"핸들러 하나 계속 연결 + 내부 분기"로 이미 공짜로 되고 더 쌈 — 이걸
기본 권장 패턴으로 명시. store-bind(false 센티널)는 고빈도 신호/로직
자체가 바뀌는 드문 케이스를 위한 부차적 옵션으로 격하, 자주 재계산되는
State에 물리면 숨은 churn 비용이 생긴다는 캐비엇 추가. 메커니즘 자체는
일관성을 위해 그대로 유지(예외로 빼서 막을 근거는 약함). 향후
documentation-plan.md 3번 문서에 두 패턴 대조 예정으로 기록.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- research/debug-tooling-plan.md 신설: 런타임 디버깅 플러그인 quad-debug
설계 — BindableEvent/Function이 Studio 플러그인↔Play 중 게임 경계를
넘는지 실측 검증 완료, 채널 위치/페이로드 제약/UUID 기반 on-demand
compute/Element Inspector/Explorer-플러그인 트리 동기화까지 정리
- research/ui-shorthand-plan.md 신설: v1 Corner/PaddingAll/Scale 인라인
숏핸드 조사, quad-v2 포팅 확정(RoundSize만 네이티브 UICorner로 대체돼
불필요), quad-roblox 코어 직접 포함 원칙 확정
- research/documentation-plan.md 신설: UI 네이밍 컨벤션 + Store 부작용을
게임 시스템에서 쓰는 패턴 문서화 뼈대
- base/bind-system-plan.md: Attribute 특수 키 타입 파라미터화 신규 논의 추가
- base/modifier-plan.md, README.md, question.md, ROADMAP.md, CLAUDE.md:
위 신규 문서 색인/요약 반영
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 6차 라운드: 태그 네임스페이싱(Ref로 충분), Store가 Store를 담지 않음 확정
- Modifier 메커니즘 전체 확정(정적 merge, immutable+clone 체이닝, State
필드 지원, "관측해야 실체화된다" 전역 원칙) — base/modifier-plan.md 신설
- 컴포넌트화 논의 시작(research/component-composition-plan.md) — 컴포넌트=
플레인 함수, State/Source 읽기·쓰기 경계, StoreSource 프록시까지 수렴,
modifier/Ref의 컴포넌트 경계 통과 방식은 열린 채로 남김
- .claude/ 코퍼스 전체(약 15개 문서)를 서브에이전트로 감사해 여러 라운드에
걸쳐 쌓인 모순/중복/stale 마커/끊긴 참조 다수 수정
- purity-and-effects-plan.md를 research/에서 base/로 승격
- CLAUDE.md: 라운드별 인수인계 메모 3개를 하나로 통합, 오래된 "더 이상 열린
질문 없음" 모순 제거
- question.md: 시간순도 우선순위순도 아니던 구조를 "지금 열려있는 것" 중심
으로 재정리, 용어 정리 제안(State/DI/PerInstanceState 등 우선순위) 추가
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 확정 사항 전체를 AskUserQuestion으로 하나씩 재검증. 대부분
그대로 확인됐으나 State 프리미티브 존재 여부(있어야 함으로 정정), Pipe
copy-on-write 후보(폐기, state(state) 조합으로 대체), Slot retract 시
동작(폐기로 확정) 등 실제 정정이 발생 — Store/State/Source 온톨로지가
다음 세션 최우선 열린 설계 스레드로 새로 부상.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>