---
id: w1/m18/t010
title: "Closeout: verify DoD, mark done, move to done/"
worker: worker1
status: done
estimate: 15m
depends_on: [w1/m18/t009]
---

## Objective

Verify the milestone's Definition of Done actually holds, then close it out: mark every task done, move task files to `done/`, update the milestone `README.md` status, move the whole milestone directory to `w1/done/m18/`, and check its box in `w1/README.md`.

## Context

- DoD (from the milestone README): an App with `spec.rootDir` set builds from that subdirectory (verified against a real monorepo test repo); a push touching files outside `rootDir` doesn't auto-deploy while one touching files inside it does; `rootDir` is settable/readable identically via REST/GraphQL/MCP.

## Steps

1. Stand up (or reuse) a monorepo test repo with an app in a subdirectory; set `spec.rootDir` on a test App via each of REST/GraphQL/MCP in turn and confirm the build succeeds from the subdirectory each time.
2. Push a commit touching only files outside `rootDir` — confirm no redeploy. Push a commit touching a file inside `rootDir` — confirm a redeploy.
3. If the DoD holds: set every task's `status: done`, move each `tNNN.md` to `w1/m18/done/`, mark every row `— DONE` and `**Status:** done` in the milestone README, move `w1/m18/` to `w1/done/m18/`, check `- [x]` in `w1/README.md`.
4. If the DoD does not hold, do not close — file what's missing as a new task instead.

## Files

- `.pm/w1/m18/README.md`
- `.pm/w1/README.md`
- All `.pm/w1/m18/tNNN.md` files

## Acceptance criteria

- [x] Live verification performed against a real monorepo test repo (not just unit tests)
- [x] Milestone moved to `w1/done/m18/` only after DoD is confirmed live

## Out of scope

- Any new implementation work — this task is verification + board bookkeeping only.
