---
id: w2/m12/t003
title: Acceptance — 1→3→1 converges, suspend wins; document m3/m4 replica-semantics compat
worker: worker1
status: done
estimate: 20m
depends_on: [w1/m12/t002]
---

## Objective

On the mock cluster: scale a running App 1→3→1 and watch the Deployment converge each time; suspend at replicas=3 → 0 pods; resume → back to 3. Then write down the replica-semantics contract m3/m4 must honor (`spec.replicas` = desired-when-awake; `suspended` overrides to 0; future autoscaler writes status, not spec — or the chosen alternative), in the m3/m4 READMEs or docs.

## Files

- `scripts/` (extend an existing verify script or inline kubectl checks)
- `.pm/w1/m3/README.md`, `.pm/w1/m4/README.md` (compat note)
- `docs/ADR007-restart-suspend-and-resume.md` (if the contract sentence belongs there)

## Acceptance criteria

- [ ] Scripted 1→3→1 + suspend/resume sequence passes on the mock cluster.
- [ ] The replica-semantics contract is written where m3/m4 will read it.

## Out of scope

- Implementing m3/m4 behavior.
