docs: "커밋된 HEAD에서 읽힌다"도 반증 — 가설 세우지 않고 관측표만 남김
2라운드 감사자 둘이 독립적으로 같은 반증을 가져옴: 그들이 받은 정의
지시문이 어느 커밋과도 일치하지 않는 하이브리드였음(배너는 구버전,
"출력 형식"의 사용자 판단 문단은 신버전). git log -S로 독립 확인 — 그
텍스트는 커밋된 적 없는 중간 워킹트리 상태였다.
이 세션은 같은 문제에 세 번 결론을 냈고 앞의 둘("세션 시작 스냅샷",
"커밋된 HEAD")이 다 틀렸으므로 세 번째 가설을 세우지 않는다. 관측표와
실무 규칙 하나만 남김 — 정의를 고쳐도 반영됐다고 가정하지 말고, 중요하면
마커 문구를 넣어 감사자에게 물어 확인할 것(이 반증이 정확히 그 방법으로
나왔음: 2라운드 프롬프트에 마커 확인을 끼워 물었다).
memory: project → Write/Edit 결론은 유지 — 제거 이후 후보 텍스트가 전부
그 옵션을 안 가지므로 정의 불확실성의 영향을 안 받음. 미해결은 tools:
필드 미반영뿐.
2라운드 감사 발견 반영:
- todos.md 항목 7 헤더가 "남은 건 (d) 하나"인데 본문은 (d) 해소라 자기모순
- README.md의 conventions.md 색인 행에 신설된 "설계 원칙" 절 누락
- conventions.md의 "출처 없는 원칙" 경위 서술 중복 축약
- 사용자 판단 등급 판정 기준을 quad-doc-auditor.md "출력 형식"으로 단일화
- session 로그 §2에 "뒤에서 정정됨" 포인터(구체 결론은 안 적음 — 두 번
뒤집힌 자리라 또 stale해짐)
감사자 모델 재확인: 다섯 실행 전부 message.model=sonnet. 실행마다
message.usage.iterations[]에 opus 항목이 1개씩 붙는 게 오독 원인.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
3721692ed4
commit
1935dd4670
6 changed files with 138 additions and 47 deletions
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
| 파일 | 무엇이 들어있나 |
|
||||
|---|---|
|
||||
| `conventions.md` | 언어/모델 관례 + **작업 방식**(핸드오버 체크리스트, `doc-check.py`, `quad-doc-auditor`, SAFETY 준수 등 에이전트가 따라야 할 절차 전부) |
|
||||
| `conventions.md` | 언어/모델 관례 + **설계 원칙** + **작업 방식**(핸드오버 체크리스트, `doc-check.py`, `quad-doc-auditor`, SAFETY 준수 등 에이전트가 따라야 할 절차 전부) |
|
||||
| `project-context.md` | 이 프로젝트가 뭔지 + 계획 문서 구조(폴더별 성격 요약 — 상세 색인은 이 README가 소스) |
|
||||
| `todos.md` | 지금 할 일(우선순위순). 가장 자주 바뀜 |
|
||||
| `session-summary.md` | 세션별 2~4줄 요약 색인. **`@import` 안 됨(의도적)** — 이만한 분량을 매 세션 컨텍스트에 올릴 이유가 없어 온디맨드로 둠, 선행 맥락이 필요할 때 grep해서 열 것. 자동생성 전환 예정(`research/doc-include-plan.md`) |
|
||||
|
|
|
|||
|
|
@ -17,34 +17,41 @@ model: sonnet
|
|||
너를 호출한 세션이 한다. 이 규칙은 도구 유무가 아니라 **행동 규약**이다 —
|
||||
어떤 이유로 쓰기 도구가 주어지더라도 문서를 직접 고치지 마라.
|
||||
|
||||
> **⭐ [2026-08-16, 재정정] 정의 파일은 워킹트리가 아니라 *커밋된 HEAD*에서
|
||||
> 읽힌다 — 고쳤으면 커밋한 뒤에 감사를 돌릴 것(재시작 불필요).** 이 배너는
|
||||
> 같은 날 감사 라운드들이 남긴 긴 가설 서술을, 그 뒤 실측으로 확인된 것만
|
||||
> 남겨 압축한 것이다(경위는
|
||||
> **⭐ [2026-08-16, 재재정정 — 지금은 "모른다"가 정답] 네가 받는 이 정의는
|
||||
> 디스크의 현재 파일이 아닐 수 있고, 어느 커밋과도 일치하지 않을 수 있다.**
|
||||
> 같은 날 이 문제에 두 번 성급한 결론을 냈다가 두 번 다 반증됐으니, 아래
|
||||
> 관측만 사실로 두고 규칙을 세우지 말 것(경위는
|
||||
> `.claude/session/2026-08-16-02-audit-tooling-verification-and-first-real-run.md`).
|
||||
> - **"세션 시작 시점 스냅샷"이라던 앞선 결론은 틀렸다.** 한 감사 패스가
|
||||
> 자기가 받은 지시문이 blob `92b9484`, 즉 **그 시점 HEAD 커밋의 버전과
|
||||
> 바이트 단위로 같다**고 보고했고, 메인 세션이 `git rev-parse`로 독립
|
||||
> 확인했다 — 그 HEAD는 세션 시작 시점이 아니라 **세션 도중에 만든
|
||||
> 커밋**이었다. 즉 정의는 커밋될 때마다 갱신되고, **커밋 안 된 워킹트리
|
||||
> 편집만 안 보인다**. 앞선 워크플로 관측(실행 스크립트가 세션 시작
|
||||
> 상태와 동일)도 그때 HEAD가 곧 세션 시작 상태였을 뿐이라 이 설명과
|
||||
> 모순되지 않는다.
|
||||
> - **`memory: project`가 Write/Edit을 딸려온다는 진단은 이제 지지된다.**
|
||||
> 그 옵션이 살아있던 정의로 돈 감사자들은 Write/Edit을 받고 실제로
|
||||
> 메모리 파일을 썼고(파일 mtime 확인), 옵션이 빠진 정의가 커밋된 뒤
|
||||
> 돈 감사자는 Write/Edit이 없었고 메모리 쓰기도 없었다. 한때 "옵션을
|
||||
> 뺐는데도 그대로 주어진다"며 반증된 것처럼 보였던 건 **그 제거가 아직
|
||||
> 커밋 안 돼서 반영이 안 됐던 것**이다.
|
||||
> - **`model: sonnet`은 반영된다** — 서브에이전트 트랜스크립트의 최상위
|
||||
> `message.model`이 전부 `claude-sonnet-5`(자기 보고가 아니라 기록 기준).
|
||||
> ⚠️ 확인할 때 `"model"` 문자열만 grep하면 안 된다 —
|
||||
> `message.usage.iterations[].model`에 `claude-opus-5`가 섞여 들어와
|
||||
> 오독을 부른다.
|
||||
> - **아직 안 풀린 것: `tools:` 필드가 그대로 반영되지는 않는다.**
|
||||
> frontmatter에 적힌 Grep/Glob이 실제로는 안 주어지고, 적지 않은
|
||||
> `advisor`가 주어진 라운드가 있었다. 그래서 "파일을 고치지 않는다"는
|
||||
> 위 규칙은 도구 유무가 아니라 **행동 규약**으로 지키는 것이다.
|
||||
>
|
||||
> | 실행 | 실제로 받은 정의 텍스트 |
|
||||
> |---|---|
|
||||
> | 폐기된 워크플로 실행 | 세션 시작 시점 상태 |
|
||||
> | 감사 1라운드 | 그 시점 HEAD 커밋(`1343796`)과 바이트 단위 동일 |
|
||||
> | 감사 2라운드 | **어느 커밋과도 불일치** — 배너는 구버전인데 "출력 형식"의 `사용자 판단` 문단은 신버전인 하이브리드 |
|
||||
>
|
||||
> 2라운드가 받은 텍스트는 메인 세션이 이 파일을 **여러 번에 나눠 편집하던
|
||||
> 중간의 워킹트리 상태**와 일치했고, 그 상태는 커밋된 적이 없다(`git log -S`로
|
||||
> 확인). 그래서 "세션 시작 스냅샷"도, 그 뒤 내놨던 "커밋된 HEAD에서 읽힌다"도
|
||||
> **둘 다 틀렸다**. 반영 지연 폭이 얼마인지, 무엇이 갱신을 트리거하는지는
|
||||
> 지금 모른다.
|
||||
>
|
||||
> **실무 규칙**: 정의를 고쳤다고 그게 반영됐다고 가정하지 말 것. 반영 여부가
|
||||
> 중요하면 **정의에 마커 문구를 넣고 감사자에게 "그 문구가 네 지시문에
|
||||
> 있나"를 물어 확인**할 것 — 위 반증이 정확히 그렇게 나왔다. 확인 전에는
|
||||
> 커밋도 재시작도 반영을 보장하지 않는다고 보는 게 안전하다.
|
||||
>
|
||||
> 이 불확실성에도 **비교적 안정적으로 재현된 것 둘**:
|
||||
> - **`model: sonnet`은 반영된다** — 트랜스크립트 최상위 `message.model`이
|
||||
> 전부 `claude-sonnet-5`. ⚠️ `"model"` 문자열만 grep하면
|
||||
> `message.usage.iterations[].model`의 `claude-opus-5`에 낚인다.
|
||||
> - **`memory: project`가 Write/Edit을 딸려온다** — 그 옵션이 있던 정의로 돈
|
||||
> 감사자들은 Write/Edit을 받고 실제로 메모리 파일을 썼고(mtime 확인),
|
||||
> 옵션이 빠진 뒤의 라운드들은 세 번 다 Write/Edit도 메모리 주입도 없었다.
|
||||
> 어느 텍스트가 실렸든 제거 이후 후보엔 전부 그 옵션이 없으므로 이
|
||||
> 상관관계는 위 불확실성의 영향을 안 받는다.
|
||||
> - **미해결: `tools:` 필드는 그대로 반영되지 않는다** — 적힌 Grep/Glob이
|
||||
> 안 주어지고, 적지 않은 `advisor`가 주어진다. 그래서 위 "파일을 고치지
|
||||
> 않는다"는 규칙은 도구 유무가 아니라 **행동 규약**으로 지킨다.
|
||||
|
||||
## 절차
|
||||
|
||||
|
|
|
|||
|
|
@ -115,9 +115,10 @@ haiku, 일반 작업은 sonnet. 특히 소스코드를 많이 읽어야 하는
|
|||
픽스를 서브에이전트에 위임하지 말 것(위 (2)번 이유). 감사자는 읽기
|
||||
전용이고 발견만 리포트한다.
|
||||
3. **애매하면 임의로 정하지 말고 그 자리에서 사용자에게 보고할 것.**
|
||||
"의심"으로 온 발견, 설계 판단이 섞인 발견, 출처가 불분명한 인용 등이
|
||||
여기 해당 — 메인 세션은 사용자에게 물을 수 있다는 게 서브에이전트
|
||||
대비 유일한 강점이니 그걸 쓸 것.
|
||||
메인 세션은 사용자에게 물을 수 있다는 게 서브에이전트 대비 유일한
|
||||
강점이니 그걸 쓸 것(어떤 발견이 여기 해당하는지 판정 기준은
|
||||
`.claude/agents/quad-doc-auditor.md`의 "출력 형식" 절이 소스 — 여기서
|
||||
다시 나열하지 않음).
|
||||
4. **새 발견이 없는 라운드가 연속 2번 나올 때까지 1~2를 반복**(보통
|
||||
2~3라운드). **수렴 안 하면 조용히 멈추지 말고 사용자에게 보고할 것** —
|
||||
첫 실동이 실제로 6라운드를 소진하고도 수렴 못 했고(새 발견
|
||||
|
|
@ -151,8 +152,8 @@ haiku, 일반 작업은 sonnet. 특히 소스코드를 많이 읽어야 하는
|
|||
그대로 짧게 인용하면 나중에 진위와 맥락을 다 되짚을 수 있다.
|
||||
- **원칙·규칙을 새로 세우는 발언이면 그 자리에서 이 문서(`conventions.md`)
|
||||
나 해당 `base/` 문서에 명문화할 것.** 안 그러면 나중 문서들이 출처
|
||||
없는 원칙을 인용하게 된다 — 위 "설계 원칙" 절의 첫 항목이 실제로 그렇게
|
||||
2026-08-16까지 출처 없이 인용돼온 사례다.
|
||||
없는 원칙을 인용하게 된다 — 위 "설계 원칙" 절의 첫 항목이 그 사례다
|
||||
(경위는 그 항목에만 적어둠, 여기서 반복하지 않음).
|
||||
- **`SAFETY.md` 반드시 지킬 것** — (1) GitHub 등 외부 git 호스팅에 이 레포를
|
||||
push하지 말 것, 모델의 git 작업 공간은 사용자가 별도로 마련해줄 제한 계정
|
||||
(예: git.qwreey.moe) 전용으로 국한됨 — 그 계정/원격이 설정되기 전까지는
|
||||
|
|
|
|||
|
|
@ -1354,3 +1354,17 @@ blob과 바이트 단위로 동일, 메인이 `git rev-parse`로 독립 확인).
|
|||
검토 후 머징)의 마지막 사람 감사가 방어선이라는 것. 커밋 전 노출 스캔은
|
||||
깨끗했고, 메모리 안에 남아 있던 낡은 "캐시 가설" 서술을 커밋된 HEAD 모델로
|
||||
고쳐서 넣음.
|
||||
|
||||
**[같은 세션, 재재정정 — 중요]** 위 "정의 파일은 커밋된 HEAD에서 읽힌다"도
|
||||
**틀렸다.** 2라운드 감사자 둘이 독립적으로, 자기가 받은 정의가 **어느
|
||||
커밋과도 일치하지 않는 하이브리드**(배너는 구버전, 출력 형식은 신버전)임을
|
||||
보고했고 메인이 `git log -S`로 확인 — 그건 커밋된 적 없는 중간 워킹트리
|
||||
상태였다. 이 세션은 같은 문제에 세 번 결론을 냈고 앞의 둘이 다 틀렸으므로
|
||||
**세 번째 가설을 세우지 않고 관측표만 남김**(`agents/quad-doc-auditor.md`
|
||||
상단 배너가 소스). 남는 실무 규칙은 하나 — **정의를 고쳐도 반영됐다고
|
||||
가정하지 말고, 중요하면 마커 문구를 넣어 감사자에게 물어 확인할 것**(이
|
||||
반증이 그 방법으로 나왔음). `memory: project`→Write/Edit 결론은 제거 이후
|
||||
후보 텍스트가 전부 그 옵션을 안 가져서 영향 없이 유지되고, 미해결은
|
||||
`tools:` 미반영뿐. 감사자 모델은 다섯 실행 전부 sonnet으로 재확인했고,
|
||||
실행마다 `message.usage.iterations[]`에 opus 항목이 딱 1개씩 붙는 게
|
||||
"감사자가 opus"로 보이는 원인.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,14 @@
|
|||
시스템 프롬프트를 덤프하라는 지시였으니 정당한 거부). 자기 보고 대신
|
||||
트랜스크립트 파일을 직접 grep하는 쪽이 1차 증거라 더 낫다.
|
||||
|
||||
## 2. ⭐ 워크플로는 `name`으로 부르면 스냅샷, `scriptPath`로 부르면 실시간
|
||||
## 2. 워크플로는 `name`으로 부르면 스냅샷, `scriptPath`로 부르면 실시간
|
||||
|
||||
> **[읽는 순서 주의] 이 절의 "에이전트 정의" 관련 결론은 뒤에서 두 번
|
||||
> 정정됐다** — 최신 상태는 이 문서 끝쪽(§10, §12)과
|
||||
> `.claude/agents/quad-doc-auditor.md` 상단 배너를 볼 것. 여기 구체적인
|
||||
> 결론을 다시 적지 않는 건, 그 결론이 이미 두 번 뒤집혔기 때문이다.
|
||||
> **워크플로 쪽(`name` vs `scriptPath`) 관측은 그대로 유효하다.**
|
||||
|
||||
|
||||
전 세션 감사 라운드들이 "캐시냐 frontmatter 무시냐"로 길게 갈라놨던 것을
|
||||
좁히는 증거가 나왔다. 처음엔 이걸 "정의 파일은 세션 시작 스냅샷으로
|
||||
|
|
@ -268,3 +275,63 @@ Write/Edit이 없었고 `.claude/agent-memory/`에 쓰기도 없었다(파일 mt
|
|||
모델로 다시 쓰고 `MEMORY.md` 색인 줄도 같이 갱신(파일 이름은 그대로 두되
|
||||
frontmatter `name`/`description`을 바꿈). 이 대응 자체가 README가 경고하던
|
||||
"에이전트가 자기 메모리에 stale한 결론을 남긴다"의 실사례다.
|
||||
|
||||
|
||||
## 12. [재재정정] §10의 "커밋된 HEAD"도 틀렸다 — 지금은 "모른다"가 정답
|
||||
|
||||
새 절차의 2라운드에서 감사자 **둘 다 독립적으로** 같은 반증을 가져왔다.
|
||||
그들이 받은 정의 지시문은 **어느 커밋과도 일치하지 않는 하이브리드**였다:
|
||||
상단 배너는 구버전(`1343796` 계열)인데 "출력 형식"의 `사용자 판단` 문단은
|
||||
신버전(`07c77e5`에만 있음)이었다. 메인 세션이 독립 확인:
|
||||
|
||||
- `git log --all -S'당시 있던' -- .claude/agents/quad-doc-auditor.md` → **커밋 없음**
|
||||
- `07c77e5`에는 `사용자 판단` 있고 `당시 있던` 없음 / `1343796`에는 둘 다 없음
|
||||
|
||||
그들이 받은 텍스트는 메인 세션이 이 파일을 **여러 번에 나눠 편집하던 중간의
|
||||
워킹트리 상태**(출력 형식 추가는 했고 배너 재작성은 아직 안 한 시점)와
|
||||
일치하고, 그 상태는 **커밋된 적이 없다**.
|
||||
|
||||
| 실행 | 실제로 받은 정의 |
|
||||
|---|---|
|
||||
| 폐기된 워크플로 | 세션 시작 시점 상태 |
|
||||
| 감사 1라운드 | 그 시점 HEAD 커밋(`1343796`)과 바이트 동일 |
|
||||
| 감사 2라운드 | 어느 커밋과도 불일치 — 커밋된 적 없는 중간 워킹트리 상태 |
|
||||
|
||||
**즉 이 세션은 같은 문제에 세 번 결론을 냈고 앞의 둘이 다 틀렸다**(§2
|
||||
"세션 시작 스냅샷", §10 "커밋된 HEAD"). 세 번째 가설을 세우지 않는다.
|
||||
남기는 건 관측표와 실무 규칙 하나뿐: **정의를 고쳐도 반영됐다고 가정하지
|
||||
말고, 중요하면 마커 문구를 넣어 감사자에게 물어 확인할 것** — 이 반증이
|
||||
정확히 그 방법으로 나왔다(2라운드 프롬프트에 "출력 형식에 `사용자 판단`
|
||||
문단이 있나"를 끼워 물었고, 그 답이 하이브리드를 드러냈다).
|
||||
|
||||
**교훈**: §10에 "자기 보고도 대조 가능한 형태면 1차 근거로 승격된다"고
|
||||
적었는데, 이번엔 그 승격된 근거로 세운 결론이 또 틀렸다. 대조 가능한
|
||||
자기 보고 하나는 **그 실행이 무엇을 받았는지**를 말해줄 뿐 **메커니즘이
|
||||
무엇인지**를 말해주지 않는다 — 관측 하나에서 규칙을 일반화한 게 두 번
|
||||
연속 실패의 공통 원인이다.
|
||||
|
||||
**(d) 결론은 살아남는다.** `memory: project` → Write/Edit 상관관계는
|
||||
제거 이후의 후보 텍스트가 전부 그 옵션을 안 가지므로, 어느 텍스트가
|
||||
실렸든 영향을 안 받는다(제거 이후 세 라운드 전부 Write/Edit 없음 +
|
||||
메모리 주입 없음). 미해결로 남는 건 `tools:` 필드 미반영뿐.
|
||||
|
||||
## 13. [실측 재확인] 감사자 모델 — 다섯 실행 전부 sonnet
|
||||
|
||||
사용자가 "여전히 opus로 돈다"고 재지적해 2라운드 감사자 둘을 같은 방법으로
|
||||
다시 집계했다. 최상위 `message.model` 기준:
|
||||
|
||||
| 실행 | sonnet 턴 | opus 턴 |
|
||||
|---|---|---|
|
||||
| 워크플로 시절 감사자 18개 | 1550 | 0 |
|
||||
| 2라운드 A | 80 | 0 |
|
||||
| 2라운드 B | 58 | 0 |
|
||||
|
||||
**감사자 턴은 전부 sonnet이다.** 다만 감사자 실행마다
|
||||
`message.usage.iterations[]` 안에 `claude-opus-5` 항목이 **정확히 1개씩**
|
||||
붙는다(그 메시지 자신의 `message.model`은 sonnet, 그 턴의 도구는 Bash).
|
||||
감사자가 `advisor`를 부른 것도 아니다 — 도구 사용은 Bash/Read뿐이었다.
|
||||
이게 정확히 무엇인지는 모른다(회계 항목으로 보임). **모델을 표시하거나
|
||||
집계할 때 이 항목을 세면 "감사자가 opus"로 보인다.**
|
||||
|
||||
캐싱으로는 설명이 안 된다 — `model: sonnet`은 이 파일 **최초 커밋(`a1c0e44`)
|
||||
부터** 있었으므로, 아무리 낡은 버전이 실려도 sonnet이다.
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
같은 날 CLAUDE.md 분할로 파일럿이 "`session-summary.md`를 통째로
|
||||
생성"하는 **단방향** 설계로 단순화돼 플랜이 갱신됨(목적지 마커 불필요).
|
||||
여전히 **구현 착수 전**. M0/설계 게이트와 무관.
|
||||
7. **[2026-08-16 신설, 대부분 닫힘 — 남은 건 (d) 하나]** 감사 툴링 검증.
|
||||
7. **[2026-08-16 신설, (a)~(d) 전부 닫힘 — 다만 아래 두 건이 미해결로 남음]** 감사 툴링 검증.
|
||||
(a) `@import` 3개(`conventions.md`/`project-context.md`/`todos.md`)
|
||||
실제 로드 — **확인됨**, (b) `quad-doc-auditor` 레지스트리 등록 —
|
||||
**확인됨**(첫 실측 때 전원 `agentType not found`였던 건 `.claude/agents/`가
|
||||
|
|
@ -132,18 +132,20 @@
|
|||
`tools:` 필드가 그대로 반영되지 않는 건 **여전히 미해결**이라, 읽기
|
||||
전용은 도구 유무가 아니라 프롬프트의 행동 규약으로 계속 지킨다.
|
||||
|
||||
**부수 확정 — 정의 파일(에이전트·워크플로)은 워킹트리가 아니라 커밋된
|
||||
HEAD에서 읽힌다.** 그래서 **정의를 고쳤으면 커밋한 뒤에 감사를 돌릴 것**
|
||||
(재시작 불필요). 앞서 "세션 시작 시점 스냅샷"이라 적었던 건 틀렸음 —
|
||||
감사 패스가 받은 지시문이 *세션 도중 만든* HEAD 커밋의 blob과 바이트
|
||||
단위로 같다는 게 확인됐다. 이 정정으로 위 (d)도 같이 풀렸다: **`memory:
|
||||
project`가 Write/Edit을 딸려온다는 진단은 지지됨**(옵션이 살아있던 정의로
|
||||
돈 감사자는 Write/Edit을 받고 실제로 메모리를 썼고, 옵션이 빠진 정의가
|
||||
커밋된 뒤 돈 감사자는 둘 다 없었음 — "빼도 그대로"로 보였던 건 제거가
|
||||
아직 커밋 안 됐던 탓). **남은 미해결은 `tools:` 필드가 그대로 반영되지
|
||||
않는다는 것**(적힌 Grep/Glob이 안 주어지고, 안 적은 `advisor`가 주어진
|
||||
라운드가 있었음). 상세는 `.claude/agents/quad-doc-auditor.md` 상단 배너가
|
||||
소스.
|
||||
**미해결 1 — 정의 파일이 언제 반영되는지 모른다.** 감사자가 실제로 받은
|
||||
정의 텍스트가 실행마다 달랐다: 세션 시작 상태 → 그 시점 HEAD 커밋 →
|
||||
**어느 커밋과도 일치하지 않는 중간 워킹트리 상태**(커밋된 적 없음,
|
||||
`git log -S`로 확인). 이 세션이 "세션 시작 스냅샷", 이어서 "커밋된
|
||||
HEAD에서 읽힌다"로 두 번 결론을 냈다가 **두 번 다 반증됐으니 세 번째
|
||||
가설을 세우지 말 것.** 실무 규칙은 하나 — **정의를 고쳐도 반영됐다고
|
||||
가정하지 말고, 중요하면 마커 문구를 넣어 감사자에게 물어 확인할 것.**
|
||||
상세 관측표는 `.claude/agents/quad-doc-auditor.md` 상단 배너가 소스.
|
||||
(워크플로 쪽은 `Workflow({scriptPath})`가 디스크에서 실시간으로 읽는 게
|
||||
확인돼 있으나, 지금 워크플로를 안 쓰므로 당장 쓸 일은 없음.)
|
||||
|
||||
**미해결 2 — `tools:` 필드가 그대로 반영되지 않는다**: frontmatter에 적힌
|
||||
Grep/Glob이 안 주어지고, 적지 않은 `advisor`가 주어진다. 그래서 감사자의
|
||||
읽기 전용은 도구 유무가 아니라 프롬프트의 행동 규약으로 지킨다.
|
||||
|
||||
**[2026-08-16 닫힘] 재감사 안 됐던 수정 6건은 확인 완료** — 첫 실동이
|
||||
수렴 못 하고 끊겨 마지막 라운드분이 재감사 없이 커밋됐었는데, 새 절차의
|
||||
|
|
|
|||
Loading…
Reference in a new issue