No description
- Brand.get 역조회는 불필요로 확정(코퍼스가 쓰는 건 전부 isX 멤버십 질문). - "포함 관계가 생성자로 흩어진다"는 에이전트 착오라 철회 — 자기 등록이 여러 브랜드 등록을 강제하지 않으므로 isRef = PreRefBrand:is(x) or ... 처럼 predicate 합성으로 지금과 똑같이 한 곳에 쓸 수 있다. - Epoch는 Source가 구조적으로 만족하는 것으로 확정(State를 만족하는 기존 패턴과 같은 모양). - 리비전 필드는 공개로 확정. 근거가 정확하다 — 비공개면 구조적 만족이 타입 레벨에서 성립하지 않는다. Store와 달리 Source는 키가 사용자 것이 아니라 예약 이름이 늘어도 무방. 이름은 코퍼스 PascalCase 관례를 따라 Revision (숫자안) 또는 Token(테이블안) 권고. - 계약은 "직전 값과 다르다"만 요구(순서 비교는 규칙 어디에도 안 쓰임). ⚠️ 다만 "오버플로가 나든 이전값과 다르다"는 근거는 정정 — Luau 숫자는 double이라 랩어라운드가 아니라 포화하고, 2^53에서 n+1 == n이 되어 보장이 정확히 그 지점에서 깨진다. 도달 불가능해서 문제가 아닌 것이므로 근거를 "도달 불가능"으로 적어둠. - Brand 전환 범위/마일스톤 해소 — 커밋된 M1 코드는 Brand를 아직 안 쓴다 (quad-base/src는 init/Relate/Debug뿐) 전환 비용은 문서뿐. 남은 열린 항목 셋: 숫자 리비전 vs 테이블 토큰(권고는 숫자 — 테이블은 Set 한 번마다 할당이라 매 프레임 Set하는 소스에서 GC 압력), State가 EpochMap을 둘 들고 :Sync가 필요한지, Observer 클로저 인자. doc-check.py ERROR 0. Co-authored-by: qwreey <me@qwreey.moe> Claude-Session: https://claude.ai/code/session_01TiW21rnti9SbLgF6twtn6D |
||
|---|---|---|
| .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 | ||