qa: 구현 전 QA 1라운드 — base/ 확정 문서 전수 심사 결과 신설
사용자가 "확정으로 적혀 있는 것"을 전부 다시 심사하겠다고 해서,
base/ 25개 문서를 의존성 순서로 훑으며 표면 타입계약/내부 구현
메커니즘/동작 원리 세 층위로 주장을 뽑아 문항으로 확인받았다.
"아니오"가 나온 것만 .claude/pre-implementation-qa.md에 모은다.
정정은 이 커밋에 없다 — 사용자가 "어디가·어떻게·왜 틀렸고 원래 뭐가
맞는지"를 따로 회신하기로 했고, 그 전까지 해당 항목은 미해결 결함으로
두기로 했다. 에이전트가 임의로 고치면 이 QA를 한 이유가 없어진다.
결함/열린항목 20건 + 신규 요구사항 9건 + 부수 오탈자 2건.
특히 두 건은 그대로 구현하면 반대로 돈다:
- S-1 canBound 게이트 호출부 반전 (정상 첫 바인드가 전부 에러,
이중 바인드는 통과). lifecycle-pattern.md가 진원지고
source-state-plan/ref-plan이 전부 이걸 인용한다.
- RE-1 gcconn/gchold를 SetStrong으로 적은 두 곳. 그대로 짜면
같은 문서가 경고하는 두-Relate 상호 강참조 누수에 걸린다.
이 라운드에서 같이 확정된 이름/표면 결정 둘:
- N-8 DI -> D 리네임 (question.md 1순위였던 항목). 네임스페이스는 D로,
"특수 DI 키"라는 설명 표현은 "특수 키"로 단순화. 라이브 문서
19개 파일 전수 목록을 표로 넣어둠 — onchange-plan.md의 헤딩과
lifecycle-hooks-plan.md의 절 인용이 짝으로 묶여 있어 한쪽만
고치면 doc-check.py가 ERROR로 잡는다.
- N-9 New는 커링(New(name)({...})), D는 전량 코드 생성 산출물.
index<UIInstances, ClassName> 방식으로는 MouseButton1Click이
시그널 타입이 돼 콜백 시그니처가 안 나온다는 게 근거 — BS-2가
요구한 것과 같은 문제의 양면이다. 생성 범위는 GUI에 쓰이는
인스턴스 전부, 그 밖은 any로 열고 필요하면 사용자가 직접 캐스트.
인덱스 2층 갱신: .claude/README.md 색인, todos.md에 M0 착수 전
이 문서부터 읽으라는 최우선 항목(기존 0번의 "착수를 막는 결정은
없음"보다 우선한다는 것까지 명시).
doc-check.py ERROR 0 확인.
Co-authored-by: qwreey <me@qwreey.moe>
This commit is contained in:
parent
99d9f2c4a3
commit
d499a68044
3 changed files with 1231 additions and 0 deletions
|
|
@ -16,6 +16,7 @@
|
|||
| `todos.md` | 지금 할 일(우선순위순). 가장 자주 바뀜 |
|
||||
| `session-summary.md` | 세션별 2~4줄 요약 색인. **`@import` 안 됨(의도적)** — 이만한 분량을 매 세션 컨텍스트에 올릴 이유가 없어 온디맨드로 둠, 선행 맥락이 필요할 때 grep해서 열 것. 자동생성 전환 예정(`research/doc-include-plan.md`) |
|
||||
| `question.md` | 사용자가 답해야 할 열린 질문(우선순위순) |
|
||||
| `pre-implementation-qa.md` | **[2026-08-18 신설]** 구현 전 QA — `base/` 확정 문서 전체를 사용자에게 문항으로 재확인받아, **"아니오"가 나온 항목만** 모은 결함 목록. 사용자가 정정 회신을 주기 전까지 해당 부분은 **미해결 결함**으로 보고 착수하지 않는다. 신규 요구사항(`N-n`)과 부수 오탈자도 같이 담음. 진행 현황/커버리지의 소스는 그 문서 맨 아래 "진행 로그" 절 |
|
||||
|
||||
## 폴더 기준
|
||||
|
||||
|
|
|
|||
1210
.claude/pre-implementation-qa.md
Normal file
1210
.claude/pre-implementation-qa.md
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -5,6 +5,26 @@
|
|||
(`.claude/question.md`, `luau-test/STATUS.md` 등).
|
||||
|
||||
|
||||
00. **⭐⭐ [2026-08-18 신설] M0 착수 전 `.claude/pre-implementation-qa.md`를
|
||||
먼저 읽을 것 — 아래 0번의 "착수를 막는 결정은 없음"보다 이게 우선한다.**
|
||||
사용자가 `base/` 확정 문서 전체를 문항으로 재심사한 결과, **확정으로
|
||||
적혀 있는데 실제로는 틀린 항목**이 여러 건 나왔다. 그 문서가 소스이고
|
||||
여기서 개수도 목록도 세지 않는다 — 다만 성격만 짚으면:
|
||||
- **그대로 구현하면 반대로 도는 것**이 있다(생명주기 게이트 호출부 반전,
|
||||
릴레이션 보관 강/약 반전). 두 건 다 여러 `base/` 문서가 서로를 인용하고
|
||||
있어 한 곳만 고치면 안 된다.
|
||||
- **설계 자체가 바뀌는 것**이 있다(`Dispatch.drive`의 `None` 처리,
|
||||
이벤트 disconnect 센티널, `Ref` 내부 구조, 이벤트 콜백 타이핑 가능
|
||||
여부 등).
|
||||
- **아직 답이 안 난 것**도 있다(중간 State GC 미검증 등) — 그 항목이
|
||||
걸린 마일스톤은 결론 전에 착수하면 안 된다.
|
||||
|
||||
**사용자가 정정 회신(어디가·어떻게·왜 틀렸고 원래 뭐가 맞는지)을 Markdown으로
|
||||
주기로 했음** — 그게 오면 `base/`에 일괄 반영하고, 반영 전까지 그 문서의
|
||||
항목들은 **미해결 결함**으로 취급할 것. 회신이 아직 없으면 사용자에게
|
||||
물어볼 것(임의로 정정하지 말 것 — 이 QA의 목적 자체가 에이전트 추정을
|
||||
사용자 판정으로 바꾸는 것이었음).
|
||||
|
||||
0. **⭐ M0 착수를 막는 결정은 이제 없음 (2026-08-14 열한 번째 세션 기준).**
|
||||
`question.md`의 최우선 항목이 **전부 비었음** — `0-Y`(`:Compute` lazy
|
||||
핸들 계약)는 13차 세션에, `0-Z`(Attribute 이름 소유권)와 `0-A`(재디스패치
|
||||
|
|
|
|||
Loading…
Reference in a new issue