From 09b22d0e80a264e32553816c945882f5f6de2375 Mon Sep 17 00:00:00 2001 From: qwreey Date: Thu, 13 Aug 2026 17:48:11 +0900 Subject: [PATCH] =?UTF-8?q?docs(audit):=207=EC=B0=A8=20=EA=B0=90=EC=82=AC?= =?UTF-8?q?=202=EB=9D=BC=EC=9A=B4=EB=93=9C=20=E2=80=94=200-Z=20=EB=B0=98?= =?UTF-8?q?=EC=98=81=20=EB=AA=A9=EB=A1=9D=EC=97=90=EC=84=9C=20architecture?= =?UTF-8?q?.md/ROADMAP=20=EB=88=84=EB=9D=BD=20=EB=B0=9C=EA=B2=AC,=20?= =?UTF-8?q?=EB=A7=81=ED=81=AC=20=EC=A0=84=EC=88=98=20=EA=B2=80=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. `research/dispatch-redispatch-diff-plan.md` 6절(0-Z 확정 시 파일별 반영 목록)이 base 4개만 나열 — 그런데 `architecture.md`와 `ROADMAP.md`도 같은 ⚠️ 배너를 달고 있음(전자는 소스트리의 chains/retractFrom 서술, 후자는 M2/M4/M6/M10 체크리스트). 목록대로만 옮기면 이 둘이 옛 모델로 남는 실제 핸드오버 갭이라 6절에 추가하고, "배너 단 파일 = 반영 대상, 반영 후 배너 제거" 규칙으로 명문화. CLAUDE.md 0번/question.md 0-Z·0-A의 "4개" 표기도 6개로 동기화. ※ architecture.md는 모든 세션이 "먼저 읽으라"고 지목하는 진입점이라 누락 시 파급이 가장 큼. 2. CLAUDE.md 세션 히스토리(2026-08-09 열두 번째)의 "**아직 결과 미확인** — M0 착수 전 최우선 확인 대상"이 현재형으로 읽히던 것 정정. 전수 검증해 문제 없던 것: - 문서 간 파일 참조 152개 링크 체크 — 라이브 문서(base/research/reference/ README/ROADMAP/question/CLAUDE) 깨진 링크 0건. 깨진 참조는 전부 session/(원문 보존 대상), initreq/(읽기 전용 클론), archive/ 히스토리 안. - luau-test README/STATUS 파일명 ↔ 실제 파일 일치(04 개명, gc-trigger 헬퍼 포함) - Handler 계약 정의부(process가 retractor 반환, 반환 생략 불가) 일관 - Dispatch.process/retractFrom 의사코드 손 트레이싱 — 점유 마커 선행, #list hole 없음, hint가 target 인덱스에만, index>#list일 때 no-op 정상 - Relate API arity(Set 3인자/Get 2인자) 문서 간 일치 - 폐기된 이름(retractUnder/processAs/retractSelfAndUnder) 잔존 8건은 전부 "옛 이름은 X였음" 형태의 의도된 히스토리 표기 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Y6hzeUi5QdLPEk69B6cXFa --- .claude/question.md | 9 ++++++--- .claude/research/dispatch-redispatch-diff-plan.md | 15 +++++++++++++++ CLAUDE.md | 10 +++++++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/.claude/question.md b/.claude/question.md index eef1779..91199e4 100644 --- a/.claude/question.md +++ b/.claude/question.md @@ -63,7 +63,8 @@ API 전부에 걸리며, 2026-08-07 일곱 번째 세션(커링 스타일 확정 **이게 지금 유일하게 `base/` 반영을 막고 있는 결정.** 아래 0-A의 재디스패치 모델은 나머지가 전부 확정됐고, 이 항목 하나만 정해지면 -`bind-system-plan.md`/`tag-plan.md`/`slot-plan.md`/`attribute-plan.md`를 +⚠️ 배너를 단 **6개 문서**(`bind-system-plan.md`/`tag-plan.md`/ +`slot-plan.md`/`attribute-plan.md`/`architecture.md`/`ROADMAP.md`)를 한 번에 옮기면 됨. **문제**: 새 모델(핸들러 선비교)에서는 그룹 A가 잡아둔 @@ -124,9 +125,11 @@ Attribute가 직접 해야 함.** 그 하나 외에는 이 항목에 결정할 게 없음. **실행 규모**: `base/`의 `bind-system-plan.md`/`tag-plan.md`/`slot-plan.md`/ -`attribute-plan.md` 의사코드 재작성 — 0-Z 하나만 정해지면 한 번에 옮기면 +`attribute-plan.md` 의사코드 재작성 + `architecture.md` 소스트리 서술과 +`ROADMAP.md` M2/M4/M6/M10 체크리스트 — 0-Z 하나만 정해지면 한 번에 옮기면 됨(어디를 어떻게 고칠지는 `research/dispatch-redispatch-diff-plan.md` 6절에 -파일별로 적어둠). **그때까지 `base/`의 현행 `hintValue` 서술이 유효** — +파일별로 적어둠 — 뒤 둘은 2026-08-13 7차 감사에서 그 목록에 빠져 있던 걸 +발견해 추가). **그때까지 `base/`의 현행 `hintValue` 서술이 유효** — 아직 안 옮겼다는 걸 잊고 base만 읽으면 옛 모델로 구현하게 되니 주의. ### 0-B. `dispose(any)` — 시그니처/범위 (2026-08-13 여섯 번째 세션 신설, 사용자 제안) diff --git a/.claude/research/dispatch-redispatch-diff-plan.md b/.claude/research/dispatch-redispatch-diff-plan.md index 3cd92a7..3f9e5dd 100644 --- a/.claude/research/dispatch-redispatch-diff-plan.md +++ b/.claude/research/dispatch-redispatch-diff-plan.md @@ -240,3 +240,18 @@ Dispatch.process(inst, k, realv, index + 1) -- retractFrom 선행 호출 없 - `slot-plan.md` — 4절대로 "해제 짝 필요" 서술 정정, 언마운트 경로에 `setLength(0)`/`setOffsetSource(None)` 명시. - `attribute-plan.md` — 5절 결정 반영, `process`/클로저 모양 재확정. +- **[2026-08-13 7차 감사에서 누락 발견 — 추가]** `architecture.md` — + 소스 트리의 `Dispatch/init.luau` 항목(`chains`/`retractFrom` 서술)과 + `Attribute.luau` 항목("`retractFrom`에 재귀 위임")이 현행 모델 전제로 + 쓰여 있음. **이 파일도 최상단에 0-Z 배너를 달고 있는데 이 목록엔 + 빠져 있었음** — 모든 세션이 "먼저 읽으라"고 지목하는 진입점이라 + 누락되면 파급이 큼. +- **[같이 추가]** `ROADMAP.md` — M2/M4/M6/M10에 "0-Z 먼저 해소할 것" + ⚠️ 배너가 달려 있고, 그 배너가 가리키는 체크리스트 항목들(특히 + M6의 "`SlotHandler.process`는 claim 실패 시에도 파괴적 클로저를 + 반환해야 함")이 선행 `retractFrom` 전제로 쓰여 있음 — base 4개를 + 옮길 때 같이 갱신하고 배너를 걷을 것. + +**요약**: 배너를 달고 있는 파일 = 반영 대상. 위 6개(`bind-system-plan`/ +`tag-plan`/`slot-plan`/`attribute-plan`/`architecture`/`ROADMAP`)가 +전부이고, 반영이 끝나면 각 파일의 ⚠️ 배너도 같이 제거할 것. diff --git a/CLAUDE.md b/CLAUDE.md index 556007c..17c0588 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -139,8 +139,11 @@ modifier/Ref의 컴포넌트 경계 통과 방식) 논의도 2026-08-04 세션 - **`base/`의 현행 `hintValue` 서술은 아직 옛 모델(철거 선행)이다.** 새 모델은 `research/dispatch-redispatch-diff-plan.md`에만 있음 — base만 읽고 구현하면 옛 모델로 짜게 됨. 0-Z가 정해지면 그 문서 6절의 - 파일별 반영 목록대로 `bind-system-plan.md`/`tag-plan.md`/ - `slot-plan.md`/`attribute-plan.md`를 **한 번에** 옮길 것. + 파일별 반영 목록대로 **한 번에** 옮길 것 — 대상은 ⚠️ 배너를 달고 + 있는 **6개**(`bind-system-plan.md`/`tag-plan.md`/`slot-plan.md`/ + `attribute-plan.md` + **`architecture.md`/`ROADMAP.md`** — 뒤 둘은 + 2026-08-13 7차 감사에서 6절 목록에 빠져 있던 걸 발견해 추가), + 반영 후 각 배너도 같이 제거. - 반대로 **`base/slot-plan.md`의 "언마운트/`dispose`/해제 순서"는 이미 확정 반영됨**(재디스패치 모델과 독립적인 결정이라 먼저 들어감). - 이 세션에서 같은 날 두 차례 급하게 쓴 의사코드가 각각 버그를 냈다는 @@ -396,7 +399,8 @@ lazy하게 구독하도록 변경, Destroy 후 재실행 gap 해소. (`session/2026-08-09-12-luau-test-spikes.md`) M0가 검증해야 할 스파이크 항목을 독립 실행 스크립트 15개로 미리 작성 — 사용자가 `luau`/`luau-analyze`/`luau-lsp`/Studio로 직접 돌려보기로 함. -**아직 결과 미확인** — M0 착수 전 최우선 확인 대상. +(당시엔 결과 미확인 — **[2026-08-13 여섯 번째 세션에 첫 실측 완료]**, +현재 상태는 `luau-test/STATUS.md`가 소스.) **2026-08-10 세션 — `Slot:Add`가 삽입 인덱스 반환** (`session/2026-08-10-01-slot-add-return-index.md`)