# task-2604+1 — Track A HOLD REMEDIATION 결과 보고

> Lv.3 · goal_type=hold_remediation_test_harness_invariant · Executor=dev1-team
> 헤르메스 (key c38fb9955616e24d, 1회 한정 — task-2604 원 executor 자가모순 교정)
> · spec SHA256 정합 확인(5e8c46d3…bc26) 후 §3/§8 verbatim 수행.
> 상태: **완료 (HOLD_REMEDIATED — GO_READY, HIGH/CRITICAL 0)**.

## 1. HOLD 원인 (재확인)

`tests/regression/test_cancel_on_success_live_adoption_2604.py` 의 autouse
fixture `_shared_index_byte0_invariant` 가 글로벌
`memory/events/callback_4tuple_index.jsonl` 의 SHA(`885866ee…`)를 절대값으로
하드핀했다. 다른 track(task-2606/2607/2609)의 **정당한 +53/+54 sanctioned
durable-success append** 로 ledger 가 22→28줄·SHA `864556ee…` 로 성장하자
autouse fixture 의 `before == SHARED_INDEX_SHA` baseline-drift assert 가
collection-time 에서 터져 10개 regression 전부 ERROR — 증거가 doc-only 로
무효화. 이는 spec §4/§8 9-R.1("callback_4tuple_index.jsonl = track 미소유
공유 durable 인프라 · +53/+54 sanctioned cross-track append 허용")과
**자가모순**. 기능 로직 자체는 PASS(10 passed).

실증 (fix 전):

```
10 passed, 10 errors
AssertionError: shared index baseline drift (pre §10)
  assert '864556ee7c00…' == '885866eee539…'
```

## 2. 교정 (회장 §3 verbatim 방향)

autouse fixture 를 `_shared_index_track_scoped_invariant` 로 재작성. 글로벌
SHA 동일성 assert 폐기(`SHARED_INDEX_SHA` 상수 제거). track-scoped 검증:

- **(a) 이 track 이 shared ledger 에 task-2604 row append 0** — fixture
  진입 시 라인 스냅샷, 종료 시 신규 append 라인 중 `task_id` 가
  `task-2604`/`task-2604-*`/`task-2604+*` 인 것이 1건이라도 있으면 FAIL.
- **(b) pre-existing line 변조 0** — `after[:n_before] == before`
  (기존 prefix byte 보존). 위반 시 FAIL.
- **(c) append-only 성장만** — `len(after) >= n_before`. 축소/재작성 FAIL.

sibling/authorized 다른 track(2606/2607/2609 등)의 +53/+54 durable-success
append 는 비대상 → **무FAIL**. isolated `/tmp` ledger self-proof
(cron_removed / spy_calls)는 fixture 와 독립인 테스트 본문에 그대로 유지
(본문 로직 무회귀). §10 매핑 docstring 도 track-scoped 로 갱신.

## 3. 실증

**regression 재실행**: `pytest tests/regression/test_cancel_on_success_live_adoption_2604.py`
→ **10 passed, 0 errors** (fix 전 10 passed + 10 errors).

**isolated /tmp self-proof** (track-scoped 의미 검증):

- A. sanctioned cross-track +53/+54 append(task-2607/2609) → **무FAIL** ✅
- B. task-2604 self-row append → **FAIL** ✅
- C. pre-existing line 변조 → **FAIL** ✅
- D. 축소/재작성(append-only 위반) → **FAIL** ✅
- E. task-2604-ut variant self-row → **FAIL** ✅

## 4. 무회귀·격리 검증

- shared `callback_4tuple_index.jsonl` SHA `864556ee…` **전후 byte-0**
  (track 직접 write 0 — track 미소유 공유 인프라, +53/+54 소관 only).
- git HEAD `20456b5f…` · branch `task/task-2553p1-f1-clean-replacement`
  전후 EQUAL (commit/PR/merge/credential 0).
- 자기 deliverable 한정: PASS track(task-2606/2607/2609)·기존 task-2553
  산출물·`anu_v3/cancel_on_success_live_adoption_2604.py`·frozen anchor
  byte-0. expected_files overlap 0. 문서-only 아님(실 regression 재실행 +
  isolated self-proof).
- 테스트 본문(§1~§12 케이스 로직) 무수정 — fixture/§10 docstring/§10
  상수만 교정.

## 5. callback (a) — 독립 ANU key 강제

완료 직후 normal completion callback 은 **독립 ANU key
`c119085addb0f8b7`(chat 6937032012)로만** 등록. executor self key
`c38fb9955616e24d` 의 callback/collector/adjudication/dispatch **미사용**
(+49 코드 정본). 다운스트림(회수·검증·Codex 재audit·adjudication →
HIGH/CRITICAL 0 시 +53 durable-success write-back → +54 → +55 dogfood →
{task-2604,task-2607} all-settled 시 Track E(task-2608) 자연 트리거 +
last-settle consolidated batch summary)은 독립 ANU 세션이 authoritative.

## 6. HOLD_FOR_CHAIR

해당 없음 — Critical7 0 · Codex unresolved HIGH/CRITICAL 0 · self-* 0 ·
expected_files overlap 0 · shared invariant 파손 0 · 문서-only 0.

---

## 7. 독립 ANU collector 회수·검증·Codex 재audit·adjudication (downstream — 2026-05-19 07:24 KST)

> 본 절은 독립 ANU collector 세션(ANU key `c119085addb0f8b7`, chat
> 6937032012)이 추가한 additive 다운스트림 기록이다. authoritative =
> 독립 ANU only · executor self key `c38fb9955616e24d` callback/collector/
> adjudication/dispatch **미사용**(+49 정본).

**회수·독립 검증 (전부 PASS)**
- spec sha256 `5e8c46d3…bc26` 일치 · fixed_test sha256 `ee7024ba…48b3` 일치.
- regression **10 passed, 0 errors** 독립 재현 (pre-+53 28줄 ledger / post-+53 30줄 ledger 양쪽). 30줄 상태에서도 10 passed = 구 global-SHA 하드핀이라면 collection-time 전부 FAIL이었을 sanctioned +53 append를 track-scoped fixture가 정확히 허용 → **HOLD 근본 원인 경험적 해소 확정**.
- isolated /tmp self-proof: A(sanctioned append) 무FAIL · B1(shrink)/B2(prefix tamper)/B3(self-row) FAIL 정상 포착 · tmp cleaned · cron_removed/spy_calls 유지.
- shared ledger pre `864556ee…`(28줄) → post `35c3ba6b…`(30줄), **앞 28줄 prefix byte-0 보존**(append-only 입증) · task-2604 track 직접 write 0 · +53 행은 ANU collector sanctioned mechanism · idempotent reapply = WRITEBACK_IDEMPOTENT_SKIP.
- git HEAD/branch 전후 EQUAL · PASS track(2606/2607/2609)+task-2553+anu_v3 byte-0 · expected_files overlap 0 · 문서-only 아님.

**Codex 재audit → adjudication**: codex-cli 0.106.0 read-only 재audit = **GO_READY · HIGH 0 · CRITICAL 0** (findings none). 독립 ANU 검증과 **CONVERGENT GO_READY**.

**다운스트림 (HIGH/CRITICAL 0 → 진행, 전부 dogfood 실 모듈 entrypoint)**
- **+53 durable-success write-back**: DURABLE_SUCCESS_WRITTEN · additive 2줄(durable_success_writeback.v1 + +44 COMPLETED mirror) · append-only · idempotent · collector_key `c119085addb0f8b7`.
- **+54 runtime event loop**: verdict WAIT · progress_trigger `registry_completed_event` (fixed-time/dead-man 아님) · hold_for_chair false.
- **+55 bounded enactor**: NO_ACTION · authority none · auto_executed false · merge/PR/branch/credential **blocked** · hold_for_chair false.
- **{A=task-2604, D=task-2607} all-settled EVENT = true** → **Track E(task-2608) 자연 트리거**(proposal-only · 실 dispatch 권한 0 · fixed-time/dead-man/fallback 아님) + **last-settle consolidated batch summary candidate** 생성. strict consolidation gate는 ledger verdict-string='PASS'(batch-2604 기존 선례, task-2606/2607/2609와 동일) 때문에 RECORD_AND_DEFER — collector가 gate를 강제 우회/약화하지 않음(task-2609 collector 기록과 정합). 최종 Track E dispatch·최종 consolidation은 chair/coordinator gated.

**산출(additive)**: `memory/events/task-2604+1.{independent-collector-result,writeback-decision,runtime-event-loop-result,enactor-result,independent-collector-adjudication}.json` · `memory/events/task-2604.{track-e-natural-trigger,batch-consolidated-summary-candidate}.json` · `memory/reports/task-2604.batch-consolidated-summary-candidate.md` · shared ledger +2 additive 줄. 기존 HOLD 정본 `task-2604.independent-collector-result.json` byte-0 보존.

**HOLD_FOR_CHAIR = false** (Critical7 0 · Codex unresolved HIGH/CRITICAL 0 · self-* 0 · overlap 0 · shared invariant 파손 0 · 문서-only 0).
