# task-2665 보고서 — V3_6_PRETOOLUSE_SHADOW_MODE_PACKET_READY (Track C-1 · Phase 2)

- task_id: task-2665
- 담당: **dev3 다그다** (★ 회장 verbatim 지정 · task-2657~2664 chain 모두 다른 봇)
- chair_authorization_id: `CHAIR-AUTH-V3-6-SHADOW-MODE-PACKET-20260525-JJONGS-PHASE-2-001`
- base_commit: origin/main `2752182a` (PR #148 merged)
- worktree: `/home/jay/workspace/.worktrees/task-2665-dev3` (branch `task/task-2665-dev3`)
- 단일소스: 본 task md + task-2664 packet 4종 (★ read-only 참조)
- 범위: **Phase 2 shadow-mode packet/spec only · live 적용 0 · commit/push/PR/merge 0**

## Situation (S)

ANU v3.6 Runtime Harness Enforcement Layer의 PreToolUse hook을 활성화하기 위한 chain이 진행 중.

- task-2664 (Track C dev4 비슈누) `V3_6_PRETOOLUSE_LIVE_ENFORCEMENT_PACKET_READY` 확정 (★ 4 source 교차 PASS · safety counts all 0 · Track A-1/B-1/C-1 overlap 0).
- 회장 verbatim 결정: task-2665 Phase 2 shadow-mode packet 진행 → dev3 다그다 (Track C-1).
- 병행 Track A-1 (PR #149) / B-1 (Axis 3 observer chain) / D-1 (task-2666 backlog separation) 진행 중.
- 본 task-2665는 **plan only** — 실 hook 배포 / settings.json 수정 / shadow-mode 활성화 0.

## Complication (C)

shadow-mode 활성화는 live BLOCK 0 이지만, hook 자체가 ANU normal task 동작에 영향을 줄 수 있는 잠재 위험 존재.

- hook crash → ANU 마비 위험 (fail-open 정책 필수)
- false-positive → 정상 작업 차단 가능 (★ task-2664 packet rollback section 2 verbatim 인용)
- normal callback 차단 → ANU collector chain 영향 (★ critical)
- latency 초과 → 도구 호출 속도 저하

본 task는 **plan only** 범위로, 위 위험에 대비한 4종 plan (activation / smoke / rollback / false-positive audit) + 1 통합 packet 박제만 수행.
실 활성화는 **본 packet 박제 후 별도 회장 verbatim signature 강제** (★ ANCHOR-4 영구 anchor).

## Question (Q)

본 task-2665 종결 시점에서 다음 7 항목이 회장 보고 형식과 일치하는가?

1. shadow-mode activation plan summary
2. shadow-mode smoke plan summary
3. shadow-mode rollback plan summary
4. false-positive audit plan summary
5. file overlap 여부 (★ task-2662 / 2663 / 2664 / 2666 / Track A-1 / B-1 / D-1 모두 0)
6. forbidden_action_count (target 0)
7. recommended next action (★ live 적용 전 회장 verbatim 강제 anchor 명시)

## Answer (A)

**모두 일치. 본 task-2665 = `V3_6_PRETOOLUSE_SHADOW_MODE_PACKET_READY` 충족.**

### A.1 보고 #1 — shadow-mode activation plan summary

- 산출물: `memory/specs/v3_6_pretooluse_shadow_mode_activation_plan_260525.md`
- 단계: S1 (hook script 작성) → S2 (fixture) → S3 (settings.json 추가) → S4 (활성화 명령) → S5 (24h observation) → S6 (Phase 3 진입 결정)
- 사전 게이트: PG-1 ~ PG-6 (★ PG-1 ~ PG-5 본 task 시점 PASS / PG-6 chair verbatim signature PENDING)
- 활성화 전 검증: AV-1 ~ AV-8 (★ task-2664 sha256 / chair id verbatim / base / overlap / forbidden_paths / settings change 0 / commit/push 0)
- shadow marker schema: `anu.v3_6.pretooluse_shadow_marker.v1`
- ★ **본 task-2665 적용 = plan only · 실 활성화 0**

### A.2 보고 #2 — shadow-mode smoke plan summary

- 산출물: `memory/specs/v3_6_pretooluse_shadow_mode_smoke_plan_260525.md`
- 시나리오 총 **23**:
  - DENY pattern smoke 10 (RG-1 ~ RG-10 · task-2664 packet 5.1 verbatim re-anchor)
  - ALLOW smoke 4 (SM-A1 ~ SM-A4 · task-2664 packet 5.2 verbatim re-anchor)
  - LATENCY smoke 1 (SM-L1 · p99 ≤ 500ms 목표 · task-2664 packet 5.3 verbatim re-anchor)
  - Allow contract PASS smoke 4 (SM-C1 ~ SM-C4)
  - Allow contract FAIL smoke 4 (SM-CF1 ~ SM-CF4 · F-1 ~ F-4 fail)
- PASS criteria: PC-1 ~ PC-10 정의 (★ 모두 PASS 시에만 24h observation gate 통과 권장)
- ★ **본 task-2665 적용 = plan only · 실 smoke 실행 0**

### A.3 보고 #3 — shadow-mode rollback plan summary

- 산출물: `memory/specs/v3_6_pretooluse_shadow_mode_rollback_plan_260525.md`
- Stage 정의: Stage-0 (본 task 시점 · rollback N/A) / Stage-1, 2, 3 (별도 task)
- Shadow false-positive trigger: SFP-1 ~ SFP-8 (★ task-2664 rollback FP-1 ~ FP-7 + shadow-mode 추가 trigger)
- 절차: STR-1 ~ STR-7 (IMMEDIATE DISABLE / GRADED DISABLE / IMMEDIATE FULL DISABLE)
- critical 회장 보고 trigger: STR-4 (callback 차단) / STR-5 (unintended BLOCK) / STR-6 (settings.json fail)
- 보존 정책: shadow marker / hook script / fixture / spec packet / chair_authorization_id ledger / rollback marker history 영구 보존
- ★ **본 task-2665 적용 = plan only · 실 rollback 명령 0**

### A.4 보고 #4 — false-positive audit plan summary

- 산출물: `memory/specs/v3_6_pretooluse_shadow_mode_false_positive_audit_plan_260525.md`
- 분류: FP-1 ~ FP-7 (★ task-2664 rollback section 2 verbatim re-anchor)
  - FP-4 critical (★ normal callback 차단) / FP-7 catastrophic (★ 전반 차단)
- 분석 dimension: 8개 (D-1 deny rule 분포 / D-2 owner 분포 / D-3 contract 분포 / D-4 verdict 분포 / D-5 latency / D-6 crash / D-7 callback 영향 / D-8 hour-by-hour)
- audit marker schema: `anu.v3_6.pretooluse_shadow_audit.v1`
- recommended action 4종: PROMOTE_TO_PHASE_3 / EXTEND_SHADOW_OBSERVATION / ROLLBACK_AND_REFINE / IMMEDIATE_DISABLE
- ★ 모든 action에 회장 verbatim signature 강제
- ★ **본 task-2665 적용 = plan only · 실 audit 실행 0**

### A.5 보고 #5 — file overlap 여부

| Track / task | overlap |
| --- | --- |
| Track A-1 (PR #149) | **0** |
| Track B-1 (Axis 3 observer chain) | **0** |
| Track D-1 (task-2666 backlog separation) | **0** |
| task-2662 | **0** |
| task-2663 | **0** |
| task-2664 (★ read-only 참조 / 수정 0) | **0** |
| task-2666 | **0** |
| worktree 충돌 | **0** |
| forbidden_paths 정합 | **PASS** |

★ 검증 방법: 본 task 산출물 5종 spec + result marker + report + done marker 모두 `task-2665.*` / `v3_6_pretooluse_shadow_mode_*.md` 전용 prefix 사용. task-2664 packet 4종 sha256 박제 후 read-only 참조만 수행.

### A.6 보고 #6 — forbidden_action_count

**0** (★ target 0 충족)

```
live settings.json 변경                 = 0
PreToolUse full live enforcement       = 0
BLOCK 정책 확대                          = 0
policy 승격                              = 0
Axis 3 RUNNING 자동 선언                 = 0
HARNESS_ENFORCED 전체 선언               = 0
Axis 1/2 runtime 변경                    = 0
dispatch.py 변경                         = 0
commit / push / PR / merge              = 0
task-2662 / 2663 / 2664 / 2666 파일 충돌  = 0
hooks/** 변경                            = 0
실 hook 배포                             = 0
실 shadow-mode 활성화 명령              = 0
실 smoke 실행                            = 0
실 rollback 명령                         = 0
실 audit 도구 작성                       = 0
watcher_contracts 디렉터리 생성          = 0
chair_authorization_id 자체 발급         = 0
```

### A.7 보고 #7 — recommended next action (★ live 적용 전 회장 verbatim 강제 anchor 명시)

**★ live 적용은 본 packet 박제 후 별도 회장 verbatim signature 강제 (★ ANCHOR-4 영구 anchor)**

본 task-2665 종결 후 권장 next action:

1. ★ **회장 verbatim signature 발행 강제** — `CHAIR-AUTH-V3-6-SHADOW-MODE-LIVE-ACTIVATION-<YYYYMMDD>-JJONGS-001` 형식 권장
   - **반드시 회장 직접 verbatim 발급** (★ ANU 본체 자체 발급 시 DR-12 위반 = chair_authorization 자기발급)
   - 본 packet 4 plan + 통합 packet sha256 회장 인용 후 발급
2. ★ **별도 dev bot dispatch** (★ 본 task-2665 dev3 다그다 외 다른 봇 권장 · 페르소나 격리)
3. ★ **S1 hook script → S2 fixture → S3 settings.json → S4 활성화 → S5 24h observation → S6 Phase 3 진입 결정** 순차 진행
4. ★ shadow-mode 활성화 후 **smoke PC-1 ~ PC-10 모두 PASS 확인**
5. ★ 24h observation 후 **false-positive audit plan 적용** (FP-1 ~ FP-7 분석)
6. ★ audit recommended action 결정도 **회장 verbatim signature 강제** (PROMOTE / EXTEND / ROLLBACK_AND_REFINE / IMMEDIATE_DISABLE 모두 chair gate)

★ **회장 verbatim signature 없이 settings.json 변경 / hook 배포 / shadow-mode 활성화 / Phase 3 진입 시도 0** (★ 본 packet 영구 anchor)

## 산출물 목록 (★ expected_files 7건 일치)

| # | 경로 | sha256 |
| --- | --- | --- |
| 1 | `memory/specs/v3_6_pretooluse_shadow_mode_activation_plan_260525.md` | `fd785b188ad56ff586ad92270463e3a222bc4d927e990f40c884a6a5b0f02d4f` |
| 2 | `memory/specs/v3_6_pretooluse_shadow_mode_smoke_plan_260525.md` | `51a99782808cc6a11bb4221e413b1097ed48a18755494f63b43360a6eb58c0c7` |
| 3 | `memory/specs/v3_6_pretooluse_shadow_mode_rollback_plan_260525.md` | `e3086a149aba858f3f2051b6ab702befd01b7bf65c132767fd7b2ffcaff4c547` |
| 4 | `memory/specs/v3_6_pretooluse_shadow_mode_false_positive_audit_plan_260525.md` | `dab52243560cc1e48915224ce32bbd2587d1fae1fa2dc65146fcd20014cbdefe` |
| 5 | `memory/specs/v3_6_pretooluse_shadow_mode_packet_260525.md` | `0d39b502e5c0bc97b95f7fda2142f17ffa293d665e8ce059127f27da07011e8b` |
| 6 | `memory/events/task-2665.v3-6-pretooluse-shadow-mode-packet-result-260525.json` | (result marker · 보고 6 필드 박제) |
| 7 | `memory/reports/task-2665.md` | (★ 본 문서) |
| 8 | `memory/events/task-2665.done` | (finalize 단계 발행) |

## task-2664 packet 4종 read-only 참조 fingerprint (박제)

| 파일 (★ 수정 0) | sha256 |
| --- | --- |
| `v3_6_pretooluse_live_enforcement_packet_260525.md` | `a3cda54a84ec79191ea0af536383e1fd647d384f3347c29d24626e2cad5f33c5` |
| `v3_6_pretooluse_deny_rule_candidates_260525.md` | `7ce1d11b043d71e71f1dcae48ceb8806af7438d5a7ee420ad43df1d4b4001a66` |
| `v3_6_pretooluse_allow_contract_candidates_260525.md` | `6eee7f640465e282c1ce8fe5b9ed86b4986a47bae421c35ed3f1ae65664d1da7` |
| `v3_6_pretooluse_rollback_plan_260525.md` (★ task-2664) | `590c916956ce3fda59a9369e22e4ca691ab31419585027bc26e634626cb74c02` |
| `memory/events/task-2664.v3-6-pretooluse-live-enforcement-packet-260525.json` | `8ee6122b5d0731b9b7293ea8395d444f353bb7ca93b80af5b3de23d38b42f05f` |

★ 모두 본 task-2665 작업 중 수정 0 (read-only).

## frozen anchors 일치 검증 (task md verbatim 1:1)

| ANCHOR | 일치 | 근거 위치 |
| --- | --- | --- |
| 1. Phase 2 shadow-mode packet/spec only · live enforcement 적용 0 · live settings.json 변경 0 | ✅ | A.1 / A.6 |
| 2. Track A-1 / B-1 / D-1 파일 충돌 0 · task-2664 packet read-only 참조 | ✅ | A.5 / 참조 fingerprint 표 |
| 3. shadow-mode activation/smoke/rollback/false-positive audit 4종 plan 필수 | ✅ | A.1 ~ A.4 + 통합 packet |
| 4. live 적용은 본 packet 박제 후 별도 회장 verbatim signature 강제 · 본 task는 plan only | ✅ | A.7 |
| 5. Axis 1/2/3 runtime · dispatch.py · live settings.json · hooks/* 변경 0 · commit/push/PR/merge 0 | ✅ | A.6 |
| 6. Axis 3 RUNNING 자동 선언 0 · HARNESS_ENFORCED 전체 선언 0 · BLOCK 정책 확대 0 | ✅ | A.6 |

## 머지 판단

- **머지 필요**: No (★ 본 task 범위는 plan only · commit/push/PR/merge 0 · 본 packet은 worktree 보존)
- **브랜치**: `task/task-2665-dev3` (★ 본 worktree 전용)
- **워크트리 경로**: `/home/jay/workspace/.worktrees/task-2665-dev3`
- **머지 의견**: 본 task md 회장 verbatim 금지 항목 9 `commit/push/PR/merge` 적용 → 머지 0. 본 packet은 다음 chair verbatim signature 단계에서 별도 별도 dispatch로 처리 권장. worktree만 보존 (★ task-2664 worktree와 동일한 운영 패턴).

## 모델 사용 기록

- 본 task = packet/spec only · 회장 verbatim 강제 anchor 매우 엄격 (★ 변경 0 anchor 16종).
- spec 5종 모두 팀장 (Opus 4.7) 직접 작성. **팀원 위임 0**.
- 정당화: (1) 회장 verbatim anchor 위반 위험 회피, (2) task-2664 packet 4종 read-only 참조 fingerprint 박제 정밀도 필수, (3) packet/plan 문서는 비창작 메타-기록 (★ 회장 직접 verbatim re-anchor 비중 60% 이상) → 위임 시 anchor drift 위험.
- 코딩 작업 0 (★ hook script 작성 / fixture / settings.json / 실행 명령 모두 별도 task).

## 발견 이슈 및 해결

- **이슈**: 없음. task md 정독 후 회장 verbatim 6 ANCHOR + 허용 7 / 금지 10 모두 일치 검증 통과.
- **read-only 참조 검증**: task-2664 packet 4종 + final_verdict marker 1종 = 5 파일 sha256 fingerprint 본 packet 박제 (★ section 12 activation plan · section 3 통합 packet · 본 보고서). 본 task worktree 내 수정 0 (★ source path 별도 worktree `/home/jay/workspace/.worktrees/task-2664-dev4/` 읽기만).
- **base origin/main HEAD `2752182a` 일치 검증**: `git fetch origin main` 후 `2752182ad679024dcbcdbf090165387fb822be67 task-2661 Phase 2b — callback normal fire delay → absolute timestamp (PR #148 squash · CHAIR-AUTH-CALLBACK-DELAY-P2B-20260525)` 확인. 본 worktree create 시 동일 commit 적용.
- **task md sha256 일치 검증**: `8b0b7b88cec8d7daf6df0d891803e5c767a733ab0ce8375bd799403399165a3c` 일치.
- **chair_authorization_id verbatim 일치 검증**: `CHAIR-AUTH-V3-6-SHADOW-MODE-PACKET-20260525-JJONGS-PHASE-2-001` 본 보고서 / 산출물 5종 / result marker 모두 verbatim 1:1 일치.

## ANU normal callback 정책

- 본 task finalize 단계에서 ANU normal callback cron 발사 예정 (★ helper · ANU key `c119085addb0f8b7` · self-key 0 · UTF-8 ≤ 3900 bytes · envelope only · PR #148 merge 후 absolute timestamp 30s 적용).
- callback payload는 result marker (★ envelope only) 참조.

## 최종 verdict

```
V3_6_PRETOOLUSE_SHADOW_MODE_PACKET_READY
```

★ Phase 2 산출물 5종 (activation / smoke / rollback / false-positive audit 4 plan + 본 통합 packet) 박제 완료.
★ Phase 2 실 활성화 / Phase 3 이상 진입은 **별도 chair verbatim signature 필수** (★ 본 task 절대 시도 0).

끝
