- [ ]**0.2** Point `infra/argocd-apps.yaml``repoURL` and image reference at real hostnames (fix NXDOMAIN)
- Verify: `kubectl get pods -n portfolio` → `2/2 Running`
- [ ]**0.3** Replace `:latest` tag with commit-SHA tag in `infra/portfolio/base/deployment.yaml`; keep `imagePullPolicy: IfNotPresent` (correct once tags are immutable)
- Verify: new commit → new tag → Argo rolls out automatically, no manual `kubectl set image`
- [ ]**0.6a** Add Playwright (`pnpm create playwright`); add `test:e2e` script to `package.json`; wire into CI as a hard gate (build fails if `test:e2e` fails)
- Playwright is a hard requirement, not optional, for every phase that ships a UI surface (Phase 2, 3, 4, 5) — no surface merges without a passing e2e spec