quad/.claude/base
qwreey 1221512341
fix(dispatch,docs): 7차 감사 4라운드 — retractFrom의 nil 가드가 계약 위반을 조용히 삼키던 것, CLAUDE.md 문서 지도 누락
실제 의사코드 결함 1건(문서 정합성이 아니라 로직):
- `Dispatch.retractFrom`이 `if retractor then ... end`로 감싸고 있어서,
  핸들러가 계약을 어기고 `nil`을 반환해도 조용히 넘어감. 그런데 문서
  두 곳(핸들러 계약 절, Handler 작성 체크리스트 7번)은 "생략하면
  `attempt to call a nil value`로 크래시"라고 서술 — 그 가드 때문에
  크래시조차 안 나는 게 실제였음.
  더 나쁜 건 실제 결과: `list[index] = nil`로 **배열에 구멍**이 나서
  (a) `#list`가 Lua 명세상 미정의가 되어 retractFrom의 순회 시작점이
  어긋나고, (b) 그 자리가 비어 보여 `Dispatch.process`의 점유 체크를
  통과 → **소유권 충돌 감지가 조용히 꺼짐**(0-Z가 다루는 바로 그 안전망).
  가드에 걸리는 유일한 경우가 계약 위반뿐이므로(정상 경로는 process가
  NOOP 마커를 먼저 박음) 프로젝트의 "즉시 error" 원칙대로 error로 전환,
  서술 두 곳도 실제 실패 모드로 정정.

CLAUDE.md "계획 문서 구조"에 `luau-test/`와 `audit/`가 통째로 누락돼
있던 것 추가 — 항상 로드되는 진입점인데, 지금 스파이크 상태의 소스
(`luau-test/STATUS.md`)와 0-Y의 근거(`audit/`)로 가는 길이 이 지도에
없었음. README의 `audit/` 행에도 파일 2개 명시(gcconn-trick-verification.md는
README 어디에도 등재돼 있지 않았음).

색인 완전성 전수 확인: base 17 / research 10 / archive 17 / reference 3
전부 README 등재됨(누락은 위 audit 1건뿐이었고 이번에 해소).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y6hzeUi5QdLPEk69B6cXFa
2026-08-13 17:53:00 +09:00
..
architecture.md docs(audit): 코퍼스 5차 감사 — 0-Y/0-Z 포인터 4곳 + 파괴 용어 잔존 5곳 전수 정리 2026-08-13 17:20:45 +09:00
attribute-plan.md docs(audit): 코퍼스 4차 감사 — 0-Y/0-Z 포인터 누락 + 파괴/언마운트 용어 잔존 정정 2026-08-13 17:14:58 +09:00
bind-system-plan.md fix(dispatch,docs): 7차 감사 4라운드 — retractFrom의 nil 가드가 계약 위반을 조용히 삼키던 것, CLAUDE.md 문서 지도 누락 2026-08-13 17:53:00 +09:00
blocker-plan.md docs: Blocker/Effect를 base/additional-primitives.md에서 별개 파일로 재분리 2026-08-07 14:45:57 +09:00
component-composition-plan.md audit(dispatch,slot): c33ae04 전체 감사 — 실제 버그 4건 수정, Slot 언마운트 전환, 재디스패치 모델 재설계안 2026-08-13 16:01:49 +09:00
effect-plan.md docs(audit): 코퍼스 5차 감사 — 0-Y/0-Z 포인터 4곳 + 파괴 용어 잔존 5곳 전수 정리 2026-08-13 17:20:45 +09:00
lifecycle-pattern.md docs(audit): 스파이크 상태판 신설 + 코퍼스 전반 모순·stale 감사 정정 2026-08-13 16:48:32 +09:00
modifier-plan.md docs(audit): 6라운드 코퍼스 감사 수렴 — 검증 라운드 마무리 + 세션 기록 2026-08-13 17:31:20 +09:00
module-lifecycle-plan.md audit(dispatch,slot): c33ae04 전체 감사 — 실제 버그 4건 수정, Slot 언마운트 전환, 재디스패치 모델 재설계안 2026-08-13 16:01:49 +09:00
onchange-plan.md audit(dispatch,slot): c33ae04 전체 감사 — 실제 버그 4건 수정, Slot 언마운트 전환, 재디스패치 모델 재설계안 2026-08-13 16:01:49 +09:00
purity-and-effects-plan.md 6차 라운드 + 컴포넌트화/Modifier 논의, 문서 코퍼스 전체 정리 결과 반영 2026-08-04 15:49:28 +09:00
relate-plan.md docs(audit): 스파이크 상태판 신설 + 코퍼스 전반 모순·stale 감사 정정 2026-08-13 16:48:32 +09:00
slot-plan.md docs(audit): 7차 감사(직접 검증) — 실측 반영 누락 3건 + Slot 언마운트 미반영 6건 정정, 역전 서사 archive 이전 2026-08-13 17:44:26 +09:00
store-semantics.md docs(audit): 코퍼스 3차 감사 — 자기모순/stale 실측결과 미반영 7건 정정 2026-08-13 17:08:49 +09:00
tag-plan.md docs(audit): 코퍼스 4차 감사 — 0-Y/0-Z 포인터 누락 + 파괴/언마운트 용어 잔존 정정 2026-08-13 17:14:58 +09:00
tween-plan.md docs(audit): 7차 감사 3라운드 — HUMAN_TODO가 0-Y/0-Z를 안 짚던 것, "열린 질문 없음" 자기모순 2건 2026-08-13 17:50:34 +09:00
ui-shorthand-plan.md audit(dispatch,slot): c33ae04 전체 감사 — 실제 버그 4건 수정, Slot 언마운트 전환, 재디스패치 모델 재설계안 2026-08-13 16:01:49 +09:00