(plan) convert original implement plan to mock api
This commit is contained in:
+16
-16
@@ -1,4 +1,8 @@
|
||||
# atlas — Task Breakdown
|
||||
# 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](../lib/clusterMock.ts) — no real cluster, no Go
|
||||
backend, no `kubectl` in this repo.
|
||||
|
||||
Source of truth: [docs/PLAN-atlas.md](../docs/PLAN-atlas.md), [docs/adr/ADR-0001-atlas-cluster-visualization.md](../docs/adr/ADR-0001-atlas-cluster-visualization.md)
|
||||
|
||||
@@ -6,29 +10,25 @@ Supersedes: [PLAN.md](../PLAN.md), [IMPLEMENTATION.md](../IMPLEMENTATION.md) (Ho
|
||||
|
||||
## Status
|
||||
|
||||
Not started, Phase 0 partially unblocked. **5 decisions block Phase 1** — see [00-decisions.md](00-decisions.md).
|
||||
Mock API layer implemented. Remaining: wire page components to fetch from it, RED specs, REFACTOR passes — see [INDEX.md](INDEX.md).
|
||||
|
||||
## Task board
|
||||
|
||||
Task board lives in [INDEX.md](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.
|
||||
|
||||
| Phase | Est. |
|
||||
|---|---|
|
||||
| 0 — unblock deployment | — |
|
||||
| 1 — atlas core (RBAC, informers, redaction) | ~4d |
|
||||
| 2 — Surface B: cluster topology | ~3d |
|
||||
| 3 — Surface E: delivery tree | ~3d |
|
||||
| 4 — Surface C: terminal | ~2d |
|
||||
| 5 — Surface D: chat + rate limiter | ~5d |
|
||||
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](REQUIREMENTS.md), a handoff spec for whoever builds that separately.
|
||||
|
||||
**Total: ~17 working days.**
|
||||
| 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
|
||||
|
||||
- I1: `riotpiao.com` is the only public hostname, ever
|
||||
- I2: browser never talks to an internal API directly — atlas is the only origin
|
||||
- I3: redaction is allowlist-only, enforced by DTO construction
|
||||
- I4: no free-form string reaches an internal system (closed enum, snapshot-membership validation)
|
||||
- I5: GPU chat concurrency capped at 6 of 8 sequence slots, disconnect cancels upstream immediately
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user