docs: 감사 1라운드 반영 — todos 5번 해소, quad-types-plan Quad 블록을 코드 포인터로, smoke.init에 M2 탑레벨 값 확인
Co-authored-by: qwreey <me@qwreey.moe>
This commit is contained in:
parent
d9898d6629
commit
9ef44ca1e2
3 changed files with 22 additions and 11 deletions
|
|
@ -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, P>(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` — 실측] 이 레코드는 **닫혀
|
||||
있고**, 마일스톤마다 서브시스템 필드를 여기 추가해야 한다.**
|
||||
|
|
|
|||
|
|
@ -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 기준]**
|
||||
|
|
|
|||
|
|
@ -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 ===")
|
||||
|
|
|
|||
Loading…
Reference in a new issue