docs: 단위 3 감사 3라운드 반영 — round11 §5 색인 약호 인용 정정, Subscribed 옛 이름 둘째 자리, luau-test README 16 현황, 밤샘 병렬 2 허용 명문화(conventions·세션)

Co-authored-by: qwreey <me@qwreey.moe>
This commit is contained in:
qwreey-agent-selene 2026-08-29 02:18:00 +09:00
parent 5b09c05e8b
commit 9e1fbbd785
No known key found for this signature in database
5 changed files with 14 additions and 4 deletions

View file

@ -1474,7 +1474,7 @@ no-op. 한때 검토했던 "`isInit=false`면 허용, `isInit=true`+생존확인
**weak 아닌 강참조**로 둠 — 여기서 weak면 "구독해서 살려둔다"는 목적 **weak 아닌 강참조**로 둠 — 여기서 weak면 "구독해서 살려둔다"는 목적
자체가 무의미해짐. 위 자동 케이스의 weak table과 역할이 명확히 갈림 자체가 무의미해짐. 위 자동 케이스의 weak table과 역할이 명확히 갈림
(weak table=자동/리프 전용, 강참조 레지스트리=수동 구독 전용). (weak table=자동/리프 전용, 강참조 레지스트리=수동 구독 전용).
**`:Unsubscribe()`는 이 레지스트리에서 반드시 `SubscribedObservers[observer] **`:Unsubscribe()`는 이 레지스트리에서 반드시 `Subscribed[observer]`(옛 표기 `SubscribedObservers[observer]`
= nil`까지 해야 함** — `Subscribed` 플래그만 내리고 강참조를 안 끊으면 = nil`까지 해야 함** — `Subscribed` 플래그만 내리고 강참조를 안 끊으면
GC 대상이 안 되는 반쪽짜리 해제가 됨. GC 대상이 안 되는 반쪽짜리 해제가 됨.
**⭐ [2026-08-26 정정, 8라운드 `H-111`]** 여기 한때 *"둘은 항상 같이 **⭐ [2026-08-26 정정, 8라운드 `H-111`]** 여기 한때 *"둘은 항상 같이

View file

@ -234,7 +234,11 @@ haiku, 일반 작업은 sonnet. 특히 소스코드를 많이 읽어야 하는
서술을 새로 만들어냄**, (3) 서브에이전트는 사용자에게 물을 수가 없어서 서술을 새로 만들어냄**, (3) 서브에이전트는 사용자에게 물을 수가 없어서
판단이 필요한 항목이 그냥 임의 처리됨. 지금 절차: 판단이 필요한 항목이 그냥 임의 처리됨. 지금 절차:
1. **`quad-doc-auditor`는 한 턴에 하나만 호출한다 — 병렬 금지** 1. **`quad-doc-auditor`는 한 턴에 하나만 호출한다 — 병렬 금지**
(Agent 도구 직접 호출, Workflow 안 씀). **사용자 지침(2026-08-18): (Agent 도구 직접 호출, Workflow 안 씀). **[2026-08-29 예외]** 사용자가 밤샘 자율
구간에 한해 완화 — *"내가 자는동안 많은 작업을 수행해도 좋아 … 2개 정도까지
병렬로 돌려도 토큰 비용 문제 없어"*(근거가 토큰 비용이었으므로 비용을 허용하면
완화된다). 그 구간엔 감사자 2개 병렬까지, 단 같은 파일을 고치는 작업은 여전히
병렬 금지. 평상시 기본은 그대로 하나씩. **사용자 지침(2026-08-18):
"시간이 걸려도 상관 없으니, 차라리 병렬 에이전트를 덜 써줘. 그냥 한 "시간이 걸려도 상관 없으니, 차라리 병렬 에이전트를 덜 써줘. 그냥 한
턴에 하나씩만 사용하고, 0 이 나올때 까지 턴 수를 늘리는게 나아보임. 턴에 하나씩만 사용하고, 0 이 나올때 까지 턴 수를 늘리는게 나아보임.
토큰을 너무 많이 소비해서 다른 작업을 못 하고, 세션 한도에 닿더라고."** 토큰을 너무 많이 소비해서 다른 작업을 못 하고, 세션 한도에 닿더라고."**

View file

@ -11,7 +11,7 @@
| 폴더 | 뜻 | 누가 처리 | | 폴더 | 뜻 | 누가 처리 |
|---|---|---| |---|---|---|
| `review-required/` | **설계가 걸림 — 사람 결정 필요**(**[2026-08-13 13차 세션] 현재 비어 있음** — 마지막 한 건이던 `08`이 해소돼 `done/`으로 감) | ⭐ 사용자 | | `review-required/` | **설계가 걸림 — 사람 결정 필요**(**[2026-08-13 13차 세션] 현재 비어 있음** — 마지막 한 건이던 `08`이 해소돼 `done/`으로 감) | ⭐ 사용자 |
| `rewrite-required/` | 스파이크가 낡음 — 코드가 깨졌거나(`13`/`15`), **설계가 바뀌어 옛 모델을 검증 중**(`04`/`19`, 2026-08-13 14차 세션 하강 diff / `10`, **[2026-08-14 5차 세션]** `canExecute` 1-인자 재정정 / `05`, **[2026-08-14 8차 세션]** "emit은 항상 전파" 정정 → 재작성 통과했다가 **[2026-08-21]** 소스 에포크 채택으로 다시 합류) — **`16`은 [2026-08-15] 통과로 `done/`있음**(아래 참고); **[2026-08-29] `13`·`15`·`05`도 지금은 `done/`에 있다**(`15`는 `H-176`으로 폐기, `05``spec.state`/`spec.effect`가 대체 — 여기 나열은 폴더가 왜 생겼는지의 예시일 뿐, 현황은 `STATUS.md`) | 에이전트 | | `rewrite-required/` | 스파이크가 낡음 — 코드가 깨졌거나(`13`/`15`), **설계가 바뀌어 옛 모델을 검증 중**(`04`/`19`, 2026-08-13 14차 세션 하강 diff / `10`, **[2026-08-14 5차 세션]** `canExecute` 1-인자 재정정 / `05`, **[2026-08-14 8차 세션]** "emit은 항상 전파" 정정 → 재작성 통과했다가 **[2026-08-21]** 소스 에포크 채택으로 다시 합류) — `16`은 [2026-08-15] 통과로 `done/`갔다가 **[2026-08-25] Store 재설계로 `rewrite-required/`에 재합류**(`STATUS.md`); **[2026-08-29] `13`·`15`·`05`는 지금 `done/`에 있다**(`15`는 `H-176`으로 폐기, `05``spec.state`/`spec.effect`가 대체 — 여기 나열은 폴더가 왜 생겼는지의 예시일 뿐, 현황은 `STATUS.md`) | 에이전트 |
| `not-run/` | 이 환경에서 못 돌림 — **[2026-08-14 5차 세션] 스파이크는 0건**(`10`이 `rewrite-required/`로 감), GC 헬퍼만 남음 | 사용자 or MCP 연결 후 | | `not-run/` | 이 환경에서 못 돌림 — **[2026-08-14 5차 세션] 스파이크는 0건**(`10`이 `rewrite-required/`로 감), GC 헬퍼만 남음 | 사용자 or MCP 연결 후 |
| `done/` | 통과 or 판정 끝, 더 할 일 없음 | — | | `done/` | 통과 or 판정 끝, 더 할 일 없음 | — |

View file

@ -292,7 +292,7 @@ lazy 하게 읽으면 되는거 아냐? Set 재진입 같은 경우는, 반복
- **`onDestroying` 스텁의 자리**: `LifetimeHandle.luau``Init`이 생명주기 4종과 같이 에러 - **`onDestroying` 스텁의 자리**: `LifetimeHandle.luau``Init`이 생명주기 4종과 같이 에러
스텁을 설치(주입 op 목록의 소스는 `architecture.md` EngineOps 줄 — 스텁 파일 배치는 코드 스텁을 설치(주입 op 목록의 소스는 `architecture.md` EngineOps 줄 — 스텁 파일 배치는 코드
배치). mock은 `installLifetime``inst.Destroying:Connect(fn)`으로 채운다. 배치). mock은 `installLifetime``inst.Destroying:Connect(fn)`으로 채운다.
- 색인이 짚은 문서 긴장(`ss:1197` "Effect의 내부 Observer가 설치 발화를 `from == nil` - 색인이 짚은 문서 긴장(`base/source-state-plan.md` "`state:Observer(fn)`" 절의 *"Effect의 내부 Observer가 이 설치 발화를 `from == nil`로 거르는 이유이기도 하다"* — 한때 여기 `ss:1197`이라는 색인 약호로 적혀 있었다 —
거른다" vs `H-164`)은 코드에서 모순 없음 — Observer 계약은 `nil` = 출처 없음이고, Effect의 거른다" vs `H-164`)은 코드에서 모순 없음 — Observer 계약은 `nil` = 출처 없음이고, Effect의
`fire`가 그걸 `Update` 못 하는 값으로 **자기 사정**으로 거를 뿐이다. `fire`가 그걸 `Update` 못 하는 값으로 **자기 사정**으로 거를 뿐이다.
- 테스트 작성 함정: `table.insert(t, nil)`은 길이를 안 늘린다 — `emitFrom == nil` 발화를 셀 땐 - 테스트 작성 함정: `table.insert(t, nil)`은 길이를 안 늘린다 — `emitFrom == nil` 발화를 셀 땐

View file

@ -83,6 +83,12 @@
## 2026-08-29 새벽 — 컨테이너 이사 뒤 재개 (사용자: *"내가 자는동안 많은 작업을 수행해도 좋아"*) ## 2026-08-29 새벽 — 컨테이너 이사 뒤 재개 (사용자: *"내가 자는동안 많은 작업을 수행해도 좋아"*)
사용자 원문(01:00 KST): *"내가 자는동안 많은 작업을 수행해도 좋아. 코퍼스 전체를 순회하거나
구현을 계속하거나 등, opus 모델을 잘 섞어서 수행하면 괜찮아. 2개 정도까지 병렬로 돌려도
토큰 비용 문제 없어. … 내일 2시에서 4시 사이에 내가 돌아오게 될거야."* — 그래서 이 구간은
감사자 2개 병렬(`conventions.md`의 2026-08-18 "하나씩" 규칙의 비용 근거를 사용자가 걷음,
예외로 명문화). 감사자 모델은 sonnet 유지, 색인·탐사엔 opus.
- 이사 검증: `upstream/main`에서 26커밋 fast-forward, `pesde install`, ALL PASS. Studio MCP - 이사 검증: `upstream/main`에서 26커밋 fast-forward, `pesde install`, ALL PASS. Studio MCP
연결(`Place1`, Edit) — M5 전까지 안 씀. 연결(`Place1`, Edit) — M5 전까지 안 씀.
- 단위 2 감사 4·5라운드 반영(`442d800`, `67fb61e`: `implFor` 호출자 정정, `EpochMap`도 공유 잎, - 단위 2 감사 4·5라운드 반영(`442d800`, `67fb61e`: `implFor` 호출자 정정, `EpochMap`도 공유 잎,