From 9ef44ca1e2e0fe71e433a56475dd39ac28b07b9a Mon Sep 17 00:00:00 2001 From: qwreey Date: Fri, 28 Aug 2026 18:16:17 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EA=B0=90=EC=82=AC=201=EB=9D=BC?= =?UTF-8?q?=EC=9A=B4=EB=93=9C=20=EB=B0=98=EC=98=81=20=E2=80=94=20todos=205?= =?UTF-8?q?=EB=B2=88=20=ED=95=B4=EC=86=8C,=20quad-types-plan=20Quad=20?= =?UTF-8?q?=EB=B8=94=EB=A1=9D=EC=9D=84=20=EC=BD=94=EB=93=9C=20=ED=8F=AC?= =?UTF-8?q?=EC=9D=B8=ED=84=B0=EB=A1=9C,=20smoke.init=EC=97=90=20M2=20?= =?UTF-8?q?=ED=83=91=EB=A0=88=EB=B2=A8=20=EA=B0=92=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: qwreey --- .claude/base/quad-types-plan.md | 14 +++++--------- .claude/todos.md | 4 ++-- quad-base/test/smoke.init.luau | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/.claude/base/quad-types-plan.md b/.claude/base/quad-types-plan.md index ecbfaba..f2ea01f 100644 --- a/.claude/base/quad-types-plan.md +++ b/.claude/base/quad-types-plan.md @@ -70,15 +70,11 @@ type-version-check/ # 워크스페이스 네 번째 멤버, quad에 종속 ## `Quad` 타입 — 확정된 표면 -```lua -export type Quad = { - Version: "0.0.0", -- quad-base/pesde.toml의 version과 항상 맞출 것 - debug: boolean, - New: () -> Quad, - RunInit: (self: Quad, initFn: (Quad) -> any) -> (), - AddPlugin: (self: Self, pluginFn: (Self) -> P) -> Self & P, -} -``` +**[2026-08-28] 필드 목록의 소스는 실제 코드 `quad-types/src/init.luau` 하나다** — +여기 있던 M1 시점 코드 블록(`Version`/`debug`/`New`/`RunInit`/`AddPlugin`)은 M2 첫 +단위가 `Relate`/`Void`/`Ref`/`is*`/생명주기 4종을 얹으면서 stale해져 지웠다(감사가 +발견). 마일스톤별로 무엇이 추가돼야 하는지는 `ROADMAP.md`의 `H-80` 체크박스가 +소스이고, 이 문서는 아래처럼 **왜 그 모양인지**만 적는다. **⭐⭐ [2026-08-24 신설, 6라운드 손 트레이싱 `H-25` — 실측] 이 레코드는 **닫혀 있고**, 마일스톤마다 서브시스템 필드를 여기 추가해야 한다.** diff --git a/.claude/todos.md b/.claude/todos.md index 20ecc25..fafbb6a 100644 --- a/.claude/todos.md +++ b/.claude/todos.md @@ -437,8 +437,8 @@ 패턴으로 `quad-roblox` 전체 대신 그 타입만 필요한 모듈을 위한 패키지)도 같은 성격의 백로그로 신설 — 사용자가 지금 만들 필요는 없다고 명시적으로 후순위 지정, 상세는 `base/quad-types-plan.md`의 "남은 것" 절. -5. 자율 작업 루프/스케줄 설정 여부는 사용자 결정 대기 중 - (`HUMAN_TODO.md` 2번 항목). +5. **[2026-08-28 해소]** 자율 작업 루프/스케줄 설정 여부 — M2가 세션 안 + 자율 구현 구간으로 확정되며 닫힘(`HUMAN_TODO.md` 2번, 규약은 위 00번). 6. **[신규 백로그, 2026-08-14 열네 번째 세션]** 문서 stale 감소용 include 도구 `doc-include.py`(가칭, `doc-check.py`와 짝) — `research/ doc-include-plan.md` 참고(상태의 소스는 그 문서). **[2026-08-16 기준]** diff --git a/quad-base/test/smoke.init.luau b/quad-base/test/smoke.init.luau index c769deb..1157001 100644 --- a/quad-base/test/smoke.init.luau +++ b/quad-base/test/smoke.init.luau @@ -63,5 +63,20 @@ do print("PASS") end +print() +print("=== 5. [2026-08-28 M2 첫 단위] 탑레벨 값이 New()마다 실려 있음 ===") +do + local m = Quad.New() + assert(type(m.Relate) == "function" and type(m.Void) == "function" and type(m.Ref) == "function", "Relate/Void/Ref constructors") + for _, name in { "isEpoch", "isSource", "isState", "isStore", "isObserver", "isEffect", "isBlocker", "isModifier", "isRef", "isPreRef", "isPostRef" } do + assert(type((m :: any)[name]) == "function", name .. " must be a function") + end + for _, name in { "bindLifetime", "unbindLifetime", "canBound", "canExecute" } do + assert(type((m :: any)[name]) == "function", name .. " stub must be installed") + end + assert(m.Void == Quad.Void and m.Ref == Quad.Ref, "leaf modules are shared across instances") + print("PASS") +end + print() print("=== ALL PASS ===")