# MAS-WP-0015 — Wave-2 resource right-sizing from the 2026-10-21 allocation review
Receiving workplan in `mail-address-semantics` for the wave-2 request changes below.
Origin: the 2026-10-21 node allocation review (`RESOURCE-WP-0008-T03`, feeding `CUST-WP-0071-T03`). Per the founder's 2026-10-21 delivery interview (`the-custodian/docs/decisions/2026-10-21-cust-wp-0071-delivery-interview.md`) the small adjustments form wave 2: one receiving task per owner repo, applied later in a batch. Applying wave 2 needs a separate founder approval, so every cluster-write task here is a human-gated `wait`. This file changes no manifest.
-`mas/mas-mx`: Deployment `mas-mx`, container `mx`, `deploy/railiance/manifests.yaml` (`requests: {cpu: 20m, memory: 64Mi}`, memory limit 256Mi). The container has no CPU limit; leave that as is unless the owner wants one.
Evidence: resource-control `docs/evidence/2026-10-21-node-allocation-review/2026-10-21-node-budget.md` (+ `.json`, commit `3d9b1bd`). Rule: CPU = max(floor, p95x1.5, peakx0.5) rounded up to 5m; memory request = 7d p95 working set x1.15 (only when the change is at least 64Mi).
Steps:
1. Map the pod-aggregate proposal onto the named container(s) in the source file; where a workload has several containers or pods, split by the per-pod figures in `2026-10-21-workload-usage.json` and keep the sum at the proposed value.
2. Prepare the source change as a reviewed commit (no push, no sync) and record the before values here.
3. Apply only inside the batched wave-2 rollout, after founder approval, through the owner's normal deploy path (ArgoCD sync or documented helm/kubectl apply).
Verification: `kubectl -n <ns> get pod -o jsonpath='{..resources}'` shows the new requests; pods Ready with no new restarts or OOMKilled over 24h; for CPU decreases the throttle ratio and request latency stay at or below the 7d baseline; node request total drops by the expected delta.
Rollback: revert the source commit and re-sync/re-apply; the before values in the table above are the rollback target. Keep before/after `kubectl get -o yaml` captures as the receipt.
Status stays `wait` / `needs_human`. Local commit only: not pushed, not applied. Diff = full owner render vs live (`kubectl diff`, object names and changed key paths only, Secret objects skipped).
- Live source: `deploy/railiance/manifests.yaml`, applied client-side, with `IMAGE` substituted at apply time. Live image is `docker.io/library/mas-live:v0.2-480e69a`.
- Change: mail-address-semantics `a75efd0`: mas-mx CPU request 20m -> 5m. No CPU limit was added.
- Diff, with IMAGE set to the live image: resource fields only.
Applied under the founder's wave-2 authorization (the-custodian docs/decisions/2026-10-21-cust-wp-0071-delivery-interview.md), after a full-render diff against live that showed resources only. Applied with the live image substituted; mas-mx and mas-statute are Ready, and the ExternalSecret is synced. Evidence: the-custodian docs/evidence/2026-10-22-wave2-apply.md.