<!-- quad-v2 세션 로그 원문 — CLAUDE.md에서 이전됨(2026-08-11 정리 세션). -->
<!-- 이 파일은 quadnomicon 개발로그 소재용 원자료로, 당시 시행착오(정정 전 서술 포함)를 그대로 보존함. -->
<!-- 현재 유효한 설계는 이 파일이 아니라 base//research//archive/가 최종 소스 — 이 파일 안의 판단이 이후 세션에서 뒤집혔을 수 있음. -->

## 2026-08-10 세션 — `Slot:Add`가 삽입 인덱스를 반환하도록 확정, 범위 밖
`index`는 clamp 대신 error

짧은 세션. 사용자가 "`Slot:Add`/`Remove`가 어차피 void인데 삽입된 인덱스를
반환해줘도 되지 않냐"고 제기 — 검토 후 채택, `base/slot-plan.md`의 CRUD
표/에러 조건 절에 반영 완료:

- **`Slot:Add(element, index?): number`로 확정** — `index` 생략(끝에 추가)
  시 호출부가 실제 위치를 모르는 문제를 `Add`가 이미 계산해서 아는 값을
  그냥 반환하는 것으로 공짜 해결(기존엔 `IndexOf`로 O(n) 역조회해야 했음).
  `Move`/`Swap`이 void인 것과 안 부딪힘 — 그 둘은 호출부가 이미 위치를
  알고 부르는 연산이라 새 정보가 없어 void인 거고, `Add`는 반대로 새
  정보(계산된 위치)가 생기는 경우라 "반환값은 실제로 새로 알게 되는
  정보만"이라는 같은 원칙의 연장.
- **`Add`의 `index`가 범위 밖(1..현재 개수+1)이면 즉시 `error()`, clamp
  안 함 — 사용자가 직접 근거 제시.** clamp는 "의도한 위치가 아닌데 조용히
  성공하는" 찾기 힘든 버그 유형을 새로 만들 뿐이고, 이미 `Remove`/
  `Extract`/`Move`/`Swap` 전부가 범위 밖에서 즉시 에러인 fail-fast 톤과도
  맞아야 함.

**다음 세션이 할 일**: 안 바뀜(`ROADMAP.md` M0부터, luau-test 결과 확인이
여전히 먼저) — 이번 세션은 이미 확정된 CRUD 표의 작은 갭 하나만 메운
것이라 우선순위엔 영향 없음.

