---
id: w6/m12/t009
title: "Closeout: verify the DoD holds, mark done, move to w6/done/m12/"
worker: worker6
status: todo
estimate: 15m
depends_on: [w6/m12/t008]
---

## Objective

Close the milestone once — and only once — its definition of done actually holds, including the observable guard behaviors (not merely "code written").

## Context

- Standing closing task. Completing it _is_ the move: `/pm done w6/m12/t009` last triggers the milestone move.

## Steps

1. Re-verify each DoD clause: guarded downgrade rejected with member-guard error, hobby→pro reflected in settings, VIEWER-on-Pro rejected / DEVELOPER accepted, capture artifact exists and copy matches.
2. Set every task `status: done`, mark rows `— **DONE**`, set `**Status:** done`.
3. Move task files to `w6/m12/done/`, move `w6/m12/` → `w6/done/m12/`, check `- [x]` in `w6/README.md`.

## Files

- `.pm/w6/m12/**`, `.pm/w6/README.md`

## Acceptance criteria

- [ ] DoD clauses each confirmed before any move
- [ ] Status synced in all three places; no tombstone left at `.pm/w6/m12/`

## Out of scope

- Closing with unmet DoD clauses
