# 2026-08-19-04 — 구현 전 QA 4라운드 문항지 작성 (회신 대기)

**한 줄**: 사용자 요청으로 `base/` 확정 전체를 "예가 나와야 정상인 문항"으로
전수 문항화해 `qa-request/pre-implementation-qa-round4.md`를 만들었다.
**설계 결정은 하나도 안 내렸고, 정정도 하나도 안 했다** — 회신 대기 상태.

## 사용자 요청 원문

> 요즘 변경이 엄청 많고, 틀려서 정정한게 엄청 많아서, 모든 부분에 있어서 내
> 심사를 좀 받아야할듯. 예 가 되어야하는 질문들을 계속, 모든 확정 부분에
> 있어서 해줘. 표면적 타입계약부터, 실제 내부 구현 계획과 동작 원리 등, 모든
> 부분에 있어서 내가 검토해줄게. 우선 틀린게 있으면, 기록만 해둬. 정정은
> 나중에 틀린 부분을 모아서 한번에 내가 어디가, 어떻게 왜 틀렸는지, 원래 뭐가
> 맞는지 기술해서 Markdown 서식으로 보고해줄게. 따라서, 아니요가 된 부분만
> 모아서 하나의 문서로 만들어줘. 일종의 pre implementation QA 라고 봐도 될듯.
> 파일은 원하는 위치에 둬. 이전 라운드 처럼, qa-request 안에 정리해도 될거야.
> 서브에이전트는 쓰지 말아줘. 한 맥락에서 자연스럽게 흐르는 전체 구조를 보는게
> 필요해보임.

## 작업 방식

- **서브에이전트 금지 지시를 그대로 따름** — `.claude/base/` 26개 문서
  (약 14,900줄)를 메인 컨텍스트에서 의존성 순서로 직접 읽었다. `conventions.md`의
  "소스코드를 많이 읽어야 하는 리서치는 Agent로 위임" 관례에 대한 **이번
  요청 한정 명시적 예외**(사용자가 "한 맥락에서 자연스럽게 흐르는 전체 구조"를
  이유로 지정).
- 읽는 순서는 1라운드가 쓴 의존성 순서를 재사용: architecture → source-state →
  store → bind-system → dispatch-core → lifecycle-pattern → relate → brand →
  modifier → blocker/effect/event/onchange/purity → ref → slot → tag →
  attribute → tween → ui-shorthand → component-composition → module-lifecycle →
  lifecycle-hooks → fallback → typing-limits → debounce-throttle.
- **컨텍스트 유실 대비로 섹션별 증분 기록** — 문서 몇 개를 읽을 때마다 그
  구간의 문항을 파일에 append했다(전부 읽고 나서 한 번에 쓰면 중간에 컨텍스트가
  잘릴 때 통째로 날아감).

## 산출물

`.claude/qa-request/pre-implementation-qa-round4.md` — 문서 코드 26개
(`A`/`S`/`ST`/`BS`/`D`/`LP`/`RE`/`BR`/`M`/`SL`/`BK`/`E`/`EV`/`OC`/`R`/`T`/`AT`/
`TW`/`CC`/`UI`/`ML`/`DT`/`LH`/`FB`/`PE`/`TL`)로 나눈 전수 문항지. 문항 수와
문서별 분포는 그 파일 자신이 소스(여기서 반복 안 함 — `conventions.md`의
"개수·목록·상태는 소스를 하나만 둘 것").

**문항을 쓸 때 지킨 것**:
- 각 문항은 `예/아니오`로 답할 수 있는 **단정문** — "무엇을 확정했나"가 아니라
  "이렇게 확정한 게 맞나"를 묻는 모양.
- **근거까지 같이 넣음.** 결론만 물으면 사용자가 "왜 그렇게 정했더라"를 다시
  찾아야 하고, 근거가 틀렸는데 결론만 맞는 경우를 못 잡는다. 실제로 코퍼스엔
  "결론은 그대로인데 근거가 뒤집힌" 사례가 여럿 있다(`Tag`의 holders 키잉,
  `Blocker` 게이팅의 필요 이유가 크래시→비용으로 바뀐 것 등).
- **⚠️로 열려 있다고 적힌 항목은 "확정이 맞나"가 아니라 "아직 열려 있다는 인식이
  맞나"를 묻는 문항으로 별도 표기**(`S-38`/`ST-3`/`ST-8`/`E-10`/`SL-45`/`SL-74`/
  `AT-3`/`AT-11`/`UI-5`/`ML-9`).
- 문항 자체가 문서를 오독했을 가능성도 회신 대상으로 명시(회신 안내 절).

## 이번 세션이 **안** 한 것 (중요)

- **정정 0건** — 사용자 지시("우선 틀린게 있으면 기록만 해둬")대로 `base/`를
  하나도 안 고쳤다. 읽는 도중 "이건 좀 이상한데" 싶은 게 있어도 문항으로만
  만들었고 임의 판단을 넣지 않았다.
- **감사 루프 안 돌림** — `quad-doc-auditor`는 "중대 변경 후"에 도는 것인데
  이번 변경은 신규 파일 1개 + 인덱스 2줄이라 대상이 아니다. `doc-check.py`는
  돌려 ERROR 0 확인(신규 파일이 처음 낸 절 참조 불일치 1건은 그 자리에서 고침).

## 인덱스 레이어 반영

- `.claude/README.md`의 `qa-request/` 행에 4라운드 항목 추가(**회신 대기** 상태
  명시 — 1~3라운드는 "반영 완료"라 성격이 다름).
- `.claude/todos.md` 00번을 "1·2·3라운드 완료 + 4라운드 회신 대기"로 갱신.
- `question.md`는 **안 건드림** — 아직 사용자 판단이 나온 게 없어서 추가할
  항목이 없다.
