# Milestone Closure — 2

## Milestone
- ID         : 2
- Name       : `02-reverted-policies.md`
- PRD        : `.claude/prds/insuniverse-docs-60-history-deprecated.prd.md`
- Plan       : `.claude/plans/insuniverse-docs-60-history-deprecated-m2c.plan.md`
- Status     : done
- Closed at  : 2026-08-28T02:05:00Z
- Closed by  : 손 저작 — `/mccp:milestone-close` 가 진입을 거부했다 (아래 §도구가 거부했다)

**표 Status 는 이 창의 Task 4 가 이미 `pending` → `complete` 로 올렸다.** 앞 세 창과 다른
처리 순서다. `2r`·`2b` 는 전이를 못 했고 `3` 은 `/mccp:milestone-close` 가 전이를 했다.
이 창은 계획서 Task 4 Action 이 *"그다음 Status 를 `complete` 로 올린다"* 로 전이를 계획
본문에 묶었고, 그것이 옳았다 — **행과 게이트를 함께 뒤집어야 했기 때문이다**(UI3). 행만
뒤집으면 `m1.gates.mjs` `m2PublishedViolations` 가 산출물 부재로 즉시 붉어지고, 게이트만
뒤집으면 뒤집을 대상이 없다.

## 도구가 거부했다 — `already-closed`

`/mccp:milestone-close 2` 의 Phase 1 DETECT 실측:

```json
{"availability":"available","goal_signal":false,
 "signal_ref":{"row":2,"name":"`02-reverted-policies.md`","plan":null,"status":"complete"},
 "mode":"milestone-close","reason":"already-closed"}
```

`goal_signal=false` 이고 사유가 `already-closed` 다. 그 명령의 Phase 1 결정표는
`available` + `SIGNAL 0` 을 *"reason 안내 후 STOP"* 으로 규정하므로 **Phase 2 LOCK ENTER 에
진입하지 않았고 closure doc 도 쓰지 않았다.** 이 문서는 그 자리를 손으로 채운 것이다.

`signal_ref.plan` 이 `null` 인 것도 같이 기록한다 — M2 행 Plan 셀은 실재하는 경로
(`.claude/plans/insuniverse-docs-60-history-deprecated-m2.plan.md`)를 담고 있고 하네스 `#1`
이 그 실재를 매번 확인한다. 검출기가 그것을 못 읽은 사유는 이 창에서 조사하지 않았다.

**전이 순서를 되돌려 도구를 통과시키지 않았다.** `complete` 를 `pending` 으로 되돌리면
이 창이 방금 뒤집은 네 하네스가 전부 붉어지고, 그 상태로 도구를 돌린 뒤 다시 뒤집는 것은
게이트를 두 번 거짓으로 지나가는 일이다. 도구가 못 하는 것을 사실로 적는 쪽을 택했다.

## Acceptance Condition

PRD Delivery Milestones `2` 행 Outcome 개정문 그대로:

> **판정 결과는 확정 0건이다** — `2r` 창이 `revert_groups` 8그룹 전건에 최소 1축 `fail` 을
> 붙여 그것을 증명했고, `unknown` 만으로 막힌 행이 0이므로 참조 카운트 축이 열려도 결과가
> 바뀌지 않는다. **그래서 이 행은 발행하지 않는다** — 확정 0건이면 `deprecated[]` 가 비어
> 아래 인수 조건의 `check10` 이 문서 자체를 거부하므로, *확정분 발행* 은 현재 계약에서
> 도달 불가다. 발행이 다시 열리려면 revert 축에 **새 확정**이 생겨야 하고 그것은 이 PRD
> 밖의 **인덱스 개정**(`dead-candidates.yaml` 재유도) 소관이다.

## 충족된 것 — 하네스 12검사 전건 rc 0

전이 **후** 재실행 결과다. 계획서 §Validation 블록을 통째로 1회 완주시켰고 `VAL_RC=0`,
`#12 tally` 가 완주 11/11 을 집합으로 확인한다.

| 검사 | 출력 요지 |
|---|---|
| `#1 prd` | M2 complete · 비발행선언(`발행하지 않는다`, M1 소스 유도) · Outcome 문면 6/6 · 인수 조건 2 보존 · 백틱 1경로 plan실재 · 2r complete 2b in-progress 3 complete |
| `#2 m1bind` | m1 `check10` rc0 · Status=complete 방향=비발행 · 4방향 {선언O미발행 pass · 선언O발행 fail · 선언X미발행 fail · 선언X발행 pass} |
| `#3 m1anchor` | 2r complete 결박 · `2r=pending` 사본 rc1 사유=2r 미종료 · 복원 후 양성 재실행 rc0 (실 PRD 무변) |
| `#4 m2check10` | 방향=비발행 · 0파일 통과 rc0 · **발행 프로브 rc1** · 복원 후 양성 재실행 rc0 · `docs/99-deprecated` 잔재 0 |
| `#5 m3frozen` | m3 `#7` rc0 · `2 complete` 기대 · `2=pending` 사본 rc1 (단언 보존) |
| `#6 m2bfrozen` | m2b `#4` rc0 · `2 complete` 기대 · `2=pending` 사본 rc1 (단언 보존) |
| `#7 chain` | **귀속** — 신규 붉음 0 · 기준선 낡음 0 (앵커 `03fe2541`) · m1 5/10 · m2 9/10 · m2b 7/10 · m3 13/13 · 소관 4검사 rc0 |
| `#8 nopublish` | `docs/99-deprecated` 0건 · 차단 이월 2/2 **열림** (m1 유도 2원소) |
| `#9 backlog` | 신설 5 == 기준선 차집합 · 표 헤더 아래 · Source plan 전건 이 계획서 · 미해소 2 덧붙임 · 앞 창 id 26 무변 |
| `#10 golden` | 변동 키 0 · `docs/**` 변경 0파일 미추적 0파일 (golden 102키 대조) |
| `#11 selfprobe` | `--help` 12개 == 계획서 마커 12개 (셸 유도 12) · 알 수 없는 이름 rc1 |
| `#12 tally` | 완주 11/11 · 번호 집합 1..11 (자기 `#12` 제외) |

### 상시 층 — 관측으로 닫았다

계획서 Acceptance 가 `(미검증)` 으로 남겨 둔 자리다. stdout(정본 종단행)과 stderr(진행
로그)를 파일로 갈라 받았다:

```
VERIFY_RC=0 stdout_bytes=12090 stderr_bytes=3050
grep -c '^check PASS$' stdout → 1
stdout tail: … findings/12-index-runtime.md 형식 전환 유예 …|check PASS
```

## 이 창이 계획서에서 벗어난 자리 — `#7`

계획서 Task 6 Action · 검사 `#7` 술어 · Acceptance 한 줄은 *"m1·m2·m2b·m3 네 하네스가 전건
rc 0"* 을 요구한다. **착수 전부터 거짓이었다.** 이 창이 한 파일도 안 건드린 시점 실측:

| 하네스 | 결과 | 붉은 검사 |
|---|---|---|
| m1 | 5/10 | `verify.sh(rc 2)` `check1` `check3` `check4` `check6` `check7` |
| m2 | 9/10 | `check7` |
| m2b | 7/10 | `findings` `golden` `tally` |
| m3 | 13/13 | — |

원인은 전부 이 창 밖이고 둘은 저장소 backlog 가 이미 **영구 · 위임 밖**으로 기록해 두었다
(`60m3-m1-bootstrap-expired` · `60m3-m1check6-deferred-residual`). 뒤엣것은 *"닫으면 m3
`#11`(a) 가 붉어진다"* 고 그 행이 못 박고 있다. 도달하려면 이 계획서 §NOT Building 이 금지한
일(`docs/_meta` 개정 · golden 재동결 · ownership 수정)을 해야 한다.

**사용자에게 세 선택지를 제시했고 "귀속 검사로 구현" 을 선택받았다.** 그래서 `#7` 은 회귀가
아니라 귀속을 판정한다 — 기준선 실패 집합을 Task 0 커밋 blob(`03fe2541`)에 동결하고 현재
집합과 **양방향** 대조하며(늘어도 줄어도 떨어진다), 이 창이 방향을 뒤집은 4검사는 rc 0 을
강제한다. 잔여는 `id=60m2c-sibling-harness-baseline-red` 로 이월했다.

## 이 종료가 덮지 않는 것

### 발행 0건 — 이 마일스톤은 문서를 내지 않았다

`docs/99-deprecated/` 는 디렉터리 자체가 없다. 발행 차단 이월 2건
(`60m1-sha-unresolvable` · `60m1-adjudication-unproven`)이 열린 채이며, 두 행의 인수처가
*"이 PRD 의 M2"* 였다. **M2 가 그 둘을 닫지 못하고 종료한다** — 확정 0건이라 판정할 실 sha 도
실 폐기 노드도 0건이기 때문이다. 두 행에 그 사실을 덧붙이고 인수처를 *revert 축에 새 확정이
생기는 창* 으로 옮겼다(`id=60m2c-blocking-deferrals-carried`).

### 완료 정의를 사후에 고쳤다

M2 행 Outcome 이 요구하던 *"확정분 발행"* 은 도달 불가였고 이 창이 그것을 *비발행 확정* 으로
바꿨다. **마일스톤의 완료 정의 자체를 고친 것이다.** 게이트를 약하게 하지 않으려고 반대 이빨을
함께 물렸다 — 비발행 선언 + 발행 실재 = 거부 · 선언 없음 + 발행 없음 = 거부 · `2r` 미종료 =
거부(`#2` 4방향 · `#3`). 그래도 *완료 조건을 고쳐 초록을 만들었다* 는 부류의 위험은 남고 그
판정은 사람이 진다 — `id=60m2c-m2-outcome-contract-amended`.

### 적대 리뷰 0라운드

`MCCP_CODEX_DISABLED=1` 이 사용자 전역 설정에 박혀 있고 워크트리
`mccp/tmp/codex-policy.json` 이 `codex_disabled=true` 로 봉인돼 있다. plan 축과 implement 축이
함께 접혔다. 대체 경로인 L2 패널·santa-loop 은 Agent 툴이 필요한데 이 세션은 그것도 금지다.
**두 문 다 사용자 소관이라 이 명령이 열 수 없다.** 돌아간 것은 기계 1패스(mccp L1
`verdict=converged` · plan-kit lint PL1~PL10 위반 0 · 셸 펜스 `bash -n` rc 0)와 이 창의
12검사이고, 둘 다 형식·계약 검사이지 적대 리뷰가 아니다. **이 종료는 그 사실 위에서 내려진
것이다.** UI6 이 *"claude 판단으로 진행, 전역 설정을 대신 바꾸지 않는다"* 이므로 기록만 남긴다.

### 2b 행은 그대로다

`unknown` 전용 331행은 판정 미결이지 판정 완료가 아니다. 삭제 축은
`60m2b-refcount-measurement-point` 가 닫혀야 열리고 그것은 이 창의 위임 밖이다(UI5).

### 잔여 이월 5건 — 이 창이 신설

| id | 성격 |
|---|---|
| `60m2c-nonpublish-token-surface` | 비발행 방향이 문자열 토큰 하나로 켜진다 (층위 6). 완화 방향 우회는 닫혀 있다 |
| `60m2c-blocking-deferrals-carried` | 발행 차단 2건의 인수처가 M2 였는데 M2 가 못 닫고 넘긴다 |
| `60m2c-m2-outcome-contract-amended` | 완료 정의를 사후에 고쳤다 — 사람 판정 사항 |
| `60m2c-sibling-harness-baseline-red` | 형제 하네스 3종이 착수 전부터 붉어 Task 6 전제가 거짓이었다 |
| `60m2c-anchor` | Task 0 기준선 앵커도 변경 창 안 (CI·보호 ref 부재) |

## Provenance
- Plan source      : `.claude/plans/insuniverse-docs-60-history-deprecated-m2c.plan.md`
- 기준선 앵커      : `03fe2541` (Task 0 단독 커밋 — 하네스 한 경로)
- 구현 커밋        : `a616fea`
- Detection signal : `{"availability":"available","goal_signal":false,"reason":"already-closed","signal_ref":{"row":2,"status":"complete","plan":null}}`
- Lock run_id      : 없음 — Phase 2 LOCK ENTER 에 진입하지 않았다
- 적대 리뷰        : 0라운드 (`codex_verdict=skipped` · `intent_gate_verdict=skipped`)
