riotpiao — Task Breakdown
Next.js portfolio frontend. Cluster-visualization surfaces (topology, delivery, terminal, chat) run against
mock /api/* route handlers backed by lib/clusterMock.ts — no real cluster, no Go
backend, no kubectl in this repo.
Source of truth: docs/PLAN-atlas.md, docs/adr/ADR-0001-atlas-cluster-visualization.md
Supersedes: PLAN.md, IMPLEMENTATION.md (Homarr + Terraform — abandoned)
Status
Mock API layer implemented. Remaining: wire page components to fetch from it, RED specs, REFACTOR passes — see INDEX.md.
Task board
Task board lives in INDEX.md — one row per task, one file per task (<id>-<slug>.md), agent-harness format. That file is the source of truth for execution order; this README is a human overview only.
Everything cluster/backend/infra (GitOps, DNS, RBAC, the real atlas Go service, rate-limiting tiers 1-3, observability) is out of scope for this repo — see REQUIREMENTS.md, a handoff spec for whoever builds that separately.
| Phase | Description |
|---|---|
| 0 — setup | Vitest, Playwright |
| 2 — Surface B: cluster topology | mock-backed |
| 3 — Surface E: delivery tree | mock-backed |
| 4 — Surface C: terminal | mock-backed |
| 5 — Surface D: chat | mock-backed |
Rules carried from the ADR
- I2: browser never talks to an internal API directly — all cluster data flows through this app's own
/api/*routes - I3: redaction is allowlist-only — the mock fixture already excludes denied fields, keep it that way
- TDD: RED (tests named before code) → GREEN (minimal code) → REFACTOR, per phase
- Playwright e2e is a hard requirement for every UI-shipping phase (2, 3, 4, 5) — no surface merges without a passing spec