# Milestone Closure — 6

## Milestone
- ID         : 6
- Name       : `00-origin.md` + `04-ops-intent.md`
- PRD        : `.claude/prds/insuniverse-docs-60-history-deprecated.prd.md`
- Plan       : `.claude/plans/insuniverse-docs-60-history-deprecated-m6.plan.md`
- Status     : done
- Closed at  : 2026-09-03
- Closed by  : /mccp:milestone-close (run_id=6b6daf0e-ea1a-467a-a322-363eff05bc5a)

**표 Status 를 `in-progress` → `complete` 로 올렸다.** 전이 근거는 계획서 §NOT Building 의
명시적 위임이다:

> `m6.plan.md` 521 행 — **PRD 의 마일스톤 6 Status 를 `complete` 로 올리지 않는다.**
> 전이는 `/mccp:milestone-close` 소관이며 게이트 `#8` 이 두 상태를 모드로 갈라 받는다.

**이 창은 게이트를 개정하지 않았다.** `#8` 은 착수 시점부터 `in-progress`(모드 A) ·
`complete`(모드 B)를 분기로 받고, 모드 B 에서 산출물 2건 실재를 함께 문다
(`m6.gates.mjs` `CHECKS.prd`). 전이 전 실측이 모드 A 로 초록, 전이 후 실측이 모드 B 로
초록이다 — 두 실행 모두 15/15 완주다.

## Acceptance Condition

이 창의 acceptance 는 계획서 §Acceptance 이고, 기계 검증 대상은 게이트 `#1`~`#15` 가 진다.
사람 판정 4항은 `(미검증)` 으로 계획서가 미리 선언한 것이며 아래 §`(미검증)` 로 남는
Acceptance 4항 에 그대로 옮겼다.

PRD Delivery Milestones `6` 행 Outcome 원문:

> 등급 U · 등급 O 기록 자리가 각각 고지·규약과 함께 열림. 등급 O 는 값 없이 자리만

**Outcome 은 이 창에서 한 글자도 바뀌지 않았다** — `#8` 이 `BASE` blob 과 축자 대조한다.

## Goal Loop Result

**lock 을 조기 exit 했다. 사유를 숨기지 않는다.** `goal-phase-guard` 는 lock 활성 중 Bash 를
default-deny 로 막는다 — 실측 출력 그대로:

```
[mccp:goal-phase-guard] BLOCK — /goal milestone-close 격리 invariant 활성.
  run_id        : 6b6daf0e-ea1a-467a-a322-363eff05bc5a
  milestone_id  : 6
  reason        : Bash no allowlist match (default-deny during goal-phase) — segment: cd "…/60-history-deprecated" (non-owner-write-enforce (F3 absorption))
```

이 창의 acceptance 는 (a) PRD 6행 전이라는 **쓰기**와 (b) 15검사 하네스라는 **실행**을 둘 다
요구하는데 격리가 그 둘을 통째로 막는다. 실측 없이 판정하는 것보다 lock 을 놓고 재는 쪽을
택했다. 격리가 지키려던 대상(closure-doc anchor)은 이 문서를 실측 **이후에** 쓰는 것으로
같게 유지된다. 앞 네 창(M2·M3·M4·M5)과 같은 처리다.

**verdict 의 출처를 정확히 적는다.** 사용자는 이 명령을 `M6을 complete 해줘` 로 호출했고
그것이 전이의 승인이다. Phase 3 의 `goal-done:` grammar 응답은 이 문서를 쓰는 시점까지
**도착하지 않았다** — verdict `done` 은 아래 실측 성립에서 유도한 것이며, 사용자 판정
문면이 도착하면 이 절이 그것으로 교체된다. M5 창과 같은 순서다.

### 전이 후 하네스 15검사 전건 rc 0

블록 1회 완주(`POSTFLIP_RC=0`) 결과다. `#15 tally` 가 완주 14/14 를 집합으로 확인한다.

| 검사 | 출력 요지 |
|---|---|
| `#1 origin` | 고지 축자 1 · 지시 대상 행 1 · 3규칙 3/3 · `[History]` 유도 3 · 블록 3 · 양방향 일치 · 인용 축자 전체 3/3 · 스키마 밖 행 0 · 메타 절 유도 3 · 구획 밖 행 0 · 4주제 4/4 (대표@블록1 추가된@블록2 포인트@블록3 사용처@블록3) · template 없음 |
| `#2 conflict` | 코드 경로 0 · 행 인용 0 · 설정 키 0 · 사정거리 문면 2/2 · 분류 대조 (어긋남 2 · 역전 1 · 합계 3 · 이름 3/3) · 규칙 3 규약만 · 본문 1848자 |
| `#3 opsintent` | 등급 O 고지 1 · 3규칙 3/3 · verdict 유도 6 (등급 O 행 4 ⊆ 유도) · 수록 1 배제 5 · 앵커 규약 1 · 항목 행 0(앵커 열 0/0) · 표 밖 운영 진술 0 · template 없음 |
| `#4 opssource` | 모드=소스 부재(정확 경로 적중 0) · 등재 선언 0 · 항목 행 0 · 모드 문면 1 · PRD 앵커 1 · 형제 관측 레코드 0 (선언 일치) |
| `#5 unmade` | `00-origin.md` 2 (인수처 2/2) · `04-ops-intent.md` 2 (인수처 2/2) · 둘 다 마지막 절 · 관측: `## 연혁` 절 보유 문서 40 중 `00-origin` 링크 0 |
| `#6 tree` | BASE 단언 4/4 (조상 · 허용 경로 14/14 · `BASE == WINDOW_START^` (BASE 허용밖 1) · 워킹트리 서브모듈 포함) · 실 파일 == 기존 3 ∪ 신설 2 (양방향) · 트리 부분집합 7 · 두 트리 정본 등가 5+2 · 트리 펜스 무변동 |
| `#7 nopublish` | `99-deprecated` 실 파일 0 · 창 내 추가 0 · 발행 차단 유도 2 (`60m1-sha-unresolvable` `60m1-adjudication-unproven`) 열림 2 · 판정 어휘 유도 4 |
| `#8 prd` | **M6 complete (모드 B) plan실재** · 타행 1 complete 2 complete 2r complete 2b in-progress 3 complete 4 complete 5 complete 7 pending 8 pending · Outcome 무변동 · OQ 9원소 무변동 |
| `#9 ownership` | R-8 셀 1개만 변동 · 완결 표기 1 · 미완 문면 소멸 · 3규칙 3/3 · R-4 무변동 · 위임 표 23행 무변동 · 회부 표 행 수 9 무변동 |
| `#10 sibling` | `m4 prd` rc0 · `m5 prd` rc0 · 앞행 유도 m4=5 m5=6 · 뒤행 유도 m4=4 m5=3 · (a)rc1 2/2 (b)rc1 2/2 (c)rc1 2/2 (d)rc0 7/7 (e)rc1 6/6(축 m4 2 m5 4 유도) · 중복번호 rc1 2/2 · 변조 바이트 상이 전건 · 사본 경로 증거 전건 · 편집 판본 쌍 2/2 |
| `#11 ledger` | 신설 표제 {F-24 … F-31} == 계획서 열거 8 · 6항목 정본 순서 8/8 · 기준선 23 → 현재 31 · F-30 판본 쌍 2 · backlog 신설 특정 6 · 발행 차단 2 미해소 덧붙임 |
| `#12 golden` | BASE 단언 4/4 · 변동 키 {`fixtask.findings_headings`} == 기대 · 유도 근거 findings 표제 23→31 · `index.*` 3키 불변 |
| `#13 chain` | BASE 단언 4/4 · 허용 경로 = FTC 합집합 면제 14 · 기준선 붉음 25 · 신규 1 전건 귀속 {`m5:findings`(선언 8)} · 설명 밖 0 · 해소 {`m4:prd`(뒤행Status동결 5)} · 인자 형태 89 유도 (7/7 계획서) · 기준선 출처 Task 0 커밋 `6d5cf6e` · `BASE..HEAD` 커밋 3 |
| `#14 selfprobe` | `--help` 15개 == 계획서 마커 15개 · 알 수 없는 이름 rc1 · 음성 프로브 14/14 (rc1 + 진단 토큰) · manifest 기록 |
| `#15 tally` | 완주 14/14 · 번호 집합 1..14 · manifest 14/14 (양성 rc0 · 음성 rc1 · 진단 토큰) · 실행 결속 3/3 |

### 전이 전 실측도 15/15 초록이었다

전이 **전** 실행(`HARNESS_RC=0`)이 `#1`~`#15` 를 전건 `ok` 로 냈고 `#8` 만
`M6 in-progress (모드 A)` 로 갈렸다. 나머지 14검사 출력은 두 실행이 같다 — 모드 분기가
실제로 갈린다는 증거다.

### `verify.sh --check` 는 rc 1 이다 — 이 전이의 탓이 아니다

상시 층은 붉다. 실측 마지막 줄 그대로:

```
문서 PRD 를 5종 추출하지 못했다 — .claude/prds/ 파일명 규약이 바뀌었다
```

**원인은 이 창보다 앞선다.** `verify.sh` 는 하류 문서 PRD 를 `.claude/prds/` 파일명에서
정규식 `insuniverse-docs-([2-6]0-...)` 로 유도하고 계수가 정확히 5가 아니면 rc 1 을 낸다.
현재 유도값은 **4** 다 — `20-foundation-access` · `30-contracts-limits` · `50-domain` ·
`60-history-deprecated`. 40축이 완료되어 `archived/` 로 옮겨진 것이 `BASE` 보다 앞선
커밋이고, 70축은 그 정규식의 `[2-6]0` 밖이라 애초에 세어지지 않는다.

**이 전이가 그 계수를 건드리지 않았다는 것은 대조로 확인된다** — 술어의 입력은
`.claude/prds/` 의 **파일명 집합**뿐이고, 이 창의 `2ea61d7..HEAD` 는 그 디렉터리에서
`M .claude/prds/insuniverse-docs-60-history-deprecated.prd.md` 한 건(수정)만 낸다. 추가도
삭제도 0이므로 파일명 집합이 불변이고 계수도 불변이다.

이 사실은 `id=60m6-verify-update-blocked-by-prd-count` 로 이미 올라가 있고 인수처는
`00-protocol`(`verify.sh` 소유 창)이다. 해소는 `verify.sh` 상시 층 개정이라 이 PRD 의
위임 밖이다(UI13).

## 이 전이가 덮지 않는 것

### 적대 리뷰는 받았다 — 다만 라운드가 각각 1이다

| 게이트 | 라운드 | `codex_verdict` | 비고 |
|---|---|---|---|
| `mccp-plan-codex` | 1 | `converged` | 지적 0건 라운드로 종료 |
| `mccp-implement-codex` | 1 | `divergent` | F1 `DEFER_TO_BACKLOG` · F2 `ACCEPT_NOW`. `ACCEPT_NOW` 이면서 HIGH·CRITICAL 인 미해소 0건 |

모델은 `~/.codex/config.toml` 의 `gpt-5.6-sol` 이고 호출은 `codex-invoke.js` 래퍼다.
`security-reviewer` 는 **조건 미성립으로 미호출**이다 — 산출이 마크다운 2건과 저장소 안에서만
도는 검증 하네스라 보안 민감 영역 어느 것도 안 건드린다. auto-fallback 이 아니므로 receipt 에
`security_skipped` 가 실리지 않았다. design 은 `design_signal=false`(렌더 표면 0건).

**`santa-loop` 은 돌지 않았다.** `STATE.md` 의 `Escalation Pending` 이
`decision: insuniverse-docs-60-history-deprecated-m6` 로 열린 채이고 `Next: /mccp:santa-loop`
를 가리킨다. 이 전이는 그 사실 위에서 내려졌다.

### 두 receipt 가 stale 이다 — 귀속을 이름으로 적는다

`plan_hash` 이력을 커밋마다 재유도한 결과다:

| 커밋 | 계획서 `plan_hash` |
|---|---|
| `6d5cf6e` (Task 0 · 봉인 시점) | `sha256:1e1fc843be97ebc024ed1fa1f639c67fabe3d2dfe6799ddf630bd5498c87b807` |
| `7544546` (리뷰 지적 6건 흡수) | `sha256:a3e3089d64b9f531c6452123ba2751e55f71e0137be027de5dc0175b338688c4` |
| `b0a2f3c` (F-31 재현 절차) | `sha256:a3e3089d64b9f531c6452123ba2751e55f71e0137be027de5dc0175b338688c4` |

두 receipt 는 `1e1fc843…` 에 봉인돼 있으므로 **`7544546` 에서 stale 이 됐다.** 흡수가 봉인
뒤에 온 정상 경로이며 이 전이가 만든 것이 아니다. 재봉인은 `/mccp:pr` 진입 전 별도 절차다.
두 receipt 의 `head_sha` 도 `2ea61d7`(= `BASE`)라 창 커밋 3건보다 앞선다.

### 잔여 이월

| id | 성격 |
|---|---|
| `60m6-base-can-advance-past-violation` | `BASE` 가 허용 밖 경로를 건드린 커밋을 지나 전진할 수 있다. 값싼 절반(F-29 문면 확대 + `#13` 커밋 목록 출력)만 닫힘 |
| `60m6-gate-blob-not-bound-by-receipt` | receipt 가 하네스 blob 을 안 묶어 승인 판본과 편집본 사이에 감사 연결이 없다. mccp 본체 층위 |
| `60m6-window-end-anchor-absent` | 앞 창 하네스가 뒤 행 Status 동결을 놓아 그 축의 정본이 비었다 |
| `60m6-verify-update-blocked-by-prd-count` | `verify.sh --check`·`--update` 가 PRD 5종 요구로 저장소 전체에서 불가. 위 절이 실측 |
| `60m6-report-artifact-outside-exemption` | `/mccp:prp-implement` Phase 5 리포트 경로가 면제 표 밖이라 리포트를 notes 안에 넣었다 |
| `60m6-chain-baseline-anchored-inside-window` | `#13` 의 붉음 기준선 앵커만 변경 창 안에 있다 (F-31) |
| `60m1-sha-unresolvable` | 발행 차단 · 미해소 덧붙임 |
| `60m1-adjudication-unproven` | 발행 차단 · 미해소 덧붙임 |

`docs/99-deprecated/` 발행 0건은 이 창이 미리 선언한 상태다 — 발행 차단 이월 2건이 열린
채이고 이 창은 폐기 축이 아니다. `#7` 이 실 파일 0 과 창 내 추가 0 을 함께 문다.

### `(미검증)` 로 남는 Acceptance 4항

계획서가 미리 그렇게 선언한 것들이고 이 창에 검사 대상이 없다.

- O-5 판정 후 `04-ops-intent.md` 규칙 2 를 고칠 것인가의 **사용자 판정**
- `00-origin.md` 서사 4원소가 담당자 이해와 일치하는가의 **확인**
- 구술 어긋남(머니/FAX)의 운영 현실이 어느 쪽인가의 **판정**
- 다른 문서의 `## 연혁` 절이 `00-origin.md` 링크를 언제 거는가의 **형제 창 일정**

### plan body 스탬프도 PRD 스탬프도 넣지 않았다

`/mccp:milestone-close` Phase 4 는 계획서 body 에 `## Milestone Closure Provenance` 를
덧붙이라고 지시하지만 **넣지 않았다.** plan body 는 `planAwareMarkdownHash` 의 유일한
입력이라 스탬프가 `plan_hash` 를 다시 움직여 재봉인 대상을 하나 더 늘린다.

PRD §Milestone Closure Provenance 절에도 **넣지 않았다.** 그 절은 `2r`·`2b`·`3`·`2` 네
항목에서 멈춰 있고 마일스톤 4·5 도 항목을 갖지 않는다 — 이 창은 M4·M5 선례를 따랐다.
custody anchor 는 이 문서 본문과 그 sha256 이 진다.

### 이 문서 자신이 창 범위 게이트를 붉힌다

`.claude/milestone-closures/` 는 계획서 §Files to Change 에도 §게이트 산출물 면제 표에도
**없다.** `baseAssert` 는 `BASE..HEAD` 커밋 경로와 **워킹트리 변경**의 합집합을 허용 집합과
대조하므로, 이 파일이 존재하는 순간부터 `#6`·`#12`·`#13` 이 `허용 경로 밖` 으로 붉다. 위
15/15 는 이 파일을 쓰기 **전에** 잰 것이고, 그 순서를 숨기지 않는다.

§NOT Building 이 *게이트 산출물 면제를 계획서 밖에서 넓히지 않는다* 로 못박았으므로 면제를
늘리지 않았다. M5 창(`fc2a9bc`)이 같은 처리를 했고 그 붉음은 이 창의 `#13` 기준선 25건에
이미 포함돼 있다. 구조적 답은 계획 저작 시점에 면제 표가 closure doc 경로를 함께 싣는
것이며 `.claude/templates/plan-kit/` 층위다 — `id=60m6-report-artifact-outside-exemption`
과 같은 부류다.

### 대상 결박 — 커밋이 아니라 내용으로

커밋 SHA 는 이 문서를 쓰는 커밋에서 다시 움직인다. 그래서 **내용 해시**로 묶는다. EOL 은
정규화한다 — `autocrlf` 체크아웃에서 raw 바이트 스탬프는 전건 붉는다.

| 대상 | sha256 (CR 제거 후) |
|---|---|
| `.claude/plans/insuniverse-docs-60-history-deprecated-m6.gates.mjs` | `159c87285cdef2b249bd14706169e9dfc5361404e3ca00036e33399a07bebe3d` |
| `docs/90-history/00-origin.md` | `4fb9ea535260966efc43611acf85db9e0c068fda7048f6b336cd54614e4a884d` |
| `docs/90-history/04-ops-intent.md` | `23383e7ab47da20725ece12c7b6410e0bbf8b90116be42e380e69baa749dd885` |
| `.claude/prds/insuniverse-docs-60-history-deprecated.prd.md` (전이 후) | `ee77172f5c67bab95c5ff987bfb4570c41263e6f4216240794eb07143c7f3e0c` |

위 15/15 는 **이 네 해시의 내용**을 잰 것이다. 하나라도 바뀌면 이 절은 무효이고 그
리비전에서 다시 재야 한다.

## Provenance
- Lock run_id        : `6b6daf0e-ea1a-467a-a322-363eff05bc5a`
- Lock owner session : `unknown` (`CLAUDE_SESSION_ID` 미설정)
- Lock 처리          : enter 후 조기 exit (전이·하네스 실측 목적 · 위 §Goal Loop Result 에 사유)
- Plan source        : `.claude/plans/insuniverse-docs-60-history-deprecated-m6.plan.md`
- Detection signal   : `{"row":6,"name":"00-origin.md + 04-ops-intent.md","plan":".claude/plans/insuniverse-docs-60-history-deprecated-m6.plan.md","status":"in-progress"}`
- 전이 시점 HEAD     : `b0a2f3c`
- mccp version       : 1.33.1
