Reorganises tracker-web docs to match the NoteLett + FlowMonk sibling-repo
convention. Old root ROADMAP.md replaced by full docs/ scaffold:
docs/
├── ROADMAP.md (master phase tracker, v3)
├── PRD.md (product requirements doc)
├── PRODUCTION_READINESS_HANDOFF_ROADMAP.md (adapted from NoteLett)
├── IMPLEMENTATION_TRACKER.md (per-slice tracker w/ commit SHAs)
└── roadmaps/
├── 00_MASTER_EXECUTION_PLAN.md
└── 01_FOUNDATIONS_AND_DECISIONS.md
Incorporates production-readiness learnings from recent work in sibling
repos (May 22-23, 2026):
From learning_ai_notes:
- UI primitives migration via Primitives.tsx adapter (UI5-UI8 pattern)
- UI drift ratchet CI gate (one-way enforcement, hard-zero categories)
- Docker hardening: NEXT_PUBLIC bake-time, standalone static-chunks fix,
corp-proxy build args, tarball-based docker-prep.sh
- Cosmos emulator smoke job for partition-key path coverage
- Live shared-service smoke (pnpm smoke:local)
- MEK rotation + secret-management runbooks
- React+React-DOM pnpm.overrides pin
- Backend domain events emission (item.created, status_changed, etc.)
- Workspace-path canonicalization
From learning_ai_flowmonk:
- @axe-core/playwright accessibility tests in CI
- E2E cleanup traps (prevent orphan resource accumulation)
- Playwright deployed-stack support (BASE_URL switch)
- IPv4 healthcheck (127.0.0.1, not localhost)
- Mobile palette centralization (theme/colors.ts)
- Release guards CI workflow
- Runtime replay preview pattern (for webhook event replay)
Adds 5 new bugs to known-issues table (B-019..B-023) for hardcoded
colors, direct ui imports, NEXT_PUBLIC runtime hardcoding, no mobile
layout, no i18n.
New Phase 6 expanded to cover mobile + a11y + i18n + theming.
Phase 4 expanded with cross-product routing + import wizard.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.8 KiB
Tracker Dashboard — Implementation Tracker
Created: 2026-05-25
Source: docs/ROADMAP.md · docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md
Companion docs: docs/PRD.md, AGENTS.md
How to Use This Document
- Each task has a checkbox. Check it off and add the commit SHA in parentheses when done.
- Run the verification commands listed in each phase before marking it done.
- Dependency chain: Phase 1.A → 1.B → 1.C → 1.D → 1.E → 1.F (Phase 1 is sequential).
- After Phase 1: Phases 2 and 3 can be parallelised by different agents; Phase 4 depends on Phase 3 webhooks; Phases 5 and 6 can be parallelised after Phase 4.
Baseline (May 25, 2026)
| Surface | Typecheck | Tests | Build | Container health |
|---|---|---|---|---|
| tracker-web | unverified | unverified | unverified | ⚠️ unhealthy (B-001/B-002) |
| platform-service | unverified | unverified | unverified | ⚠️ unhealthy (B-001 cascade) |
| valkey | n/a | n/a | n/a | ⚠️ unhealthy (B-001 root) |
Action: Establish baseline by running pnpm run verify in dashboards/tracker-web and recording results here before starting Phase 1.A.
Phase 1.A — Container Health Restoration
Goal: All tracker-related containers report (healthy).
Estimated effort: 2–4 hours.
Dependencies: None — start here.
- 1.A.1 Diagnose
valkeyunhealthy status (______) - 1.A.2 Restart
platform-serviceafter valkey is green (______) - 1.A.3 Implement real
/healthroute in tracker-web (______) - 1.A.4 Add
restart: unless-stoppedto all tracker services (______) - 1.A.5 Add 8 GB swap to VM (
______) - 1.A.6 Cap Gitea CI runner concurrency to 2 (
______)
Verification: docker ps | grep tracker-web shows (healthy). Record output below.
[paste docker ps output here after 1.A is complete]
Phase 1.B — Workspace Health
Goal: Green pnpm run verify with no React-instance warnings.
Estimated effort: 1–2 hours.
Dependencies: None — can run in parallel with 1.A.
- 1.B.1 Pin React + React-DOM via
pnpm.overrides(______) - 1.B.2 Verify
pnpm-workspace.yamlcanonical paths (______) - 1.B.3 Clean
pnpm installto relink (______) - 1.B.4 Typecheck passes (
______) - 1.B.5 Lint passes (
______) - 1.B.6 Test passes (
______) - 1.B.7 Build passes (
______) - 1.B.8 Resolve React-compiler advisories (
______) - 1.B.9 Remove dead code from lint pass (
______) - 1.B.10 Add dedicated
e2e/tsconfig.json(______)
Phase 1.C — Docker Hardening
Goal: Self-contained Docker image, healthy in compose, correct runtime URLs. Estimated effort: 3–5 hours. Dependencies: 1.A complete (valkey + platform-service healthy).
- 1.C.1 Adopt
scripts/docker-prep.sh(______) - 1.C.2 Add
.docker-deps/to.gitignore(______) - 1.C.3 Bake
NEXT_PUBLIC_*at build time (______) - 1.C.4 Fix standalone static-chunks 404 (
______) - 1.C.5 IPv4 healthcheck (
______) - 1.C.6 Corp-proxy build args (
______) - 1.C.7
docker-compose.override.ymlfor sibling services (______) - 1.C.8 Verify
docker compose up -d --buildbrings tracker-web up healthy (______)
Phase 1.D — UI Drift Ratchet
Goal: One-way CI gate preventing UI regressions. Estimated effort: 2–3 hours. Dependencies: 1.B complete.
- 1.D.1 Add
scripts/ui-drift-audit.sh(______) - 1.D.2 Add
scripts/ui-drift-ratchet.sh(______) - 1.D.3 Hard-zero categories enforced (
______) - 1.D.4 Add
audit:release-guardsscript (______) - 1.D.5 Wire into Gitea CI workflow (
______)
Phase 1.E — Test Hardening
Goal: Tests that catch real regressions. Estimated effort: 6–10 hours. Dependencies: 1.C complete (compose stack up).
- 1.E.1 Vitest unit ≥ 80 % on
src/lib/(______) - 1.E.2 Playwright E2E happy path (
______) - 1.E.3 Playwright E2E public flow (
______) - 1.E.4 Docker compose E2E test script (
______) - 1.E.5 Seed scripts (
______) - 1.E.6 Port-conflict-proof Playwright (
______) - 1.E.7 E2E cleanup traps (
______) - 1.E.8 Playwright
BASE_URLswitch (______) - 1.E.9
@axe-core/playwrightinstalled + wired (______) - 1.E.10 API contract tests (
______) - 1.E.11 Cosmos emulator CI job (
______) - 1.E.12 Live shared-service smoke (
______)
Phase 1.F — Observability + Security
Goal: Visible signals + locked-down ingress. Estimated effort: 4–6 hours. Dependencies: 1.A complete; can run in parallel with 1.D / 1.E.
- 1.F.1 Global React error boundary (
______) - 1.F.2 Structured logging via
@bytelyst/logger(______) - 1.F.3 Loki log forwarding (
______) - 1.F.4 Prometheus
/metricsendpoint (______) - 1.F.5 Grafana alert wired (
______) - 1.F.6 Client error tracking (
______) - 1.F.7 Security headers audit (
______) - 1.F.8 CSRF tokens on mutating routes (
______) - 1.F.9 Audit log on item mutations (
______) - 1.F.10 PII scrubbing in logs (
______) - 1.F.11 MEK rotation runbook (
______) - 1.F.12 Secret management runbook (
______)
Phase 1 Exit Criteria
All boxes checked + verifications recorded above + the following live-system checks pass:
docker ps | grep tracker— all(healthy)for > 24 hpnpm run verifyexits 0 with no warningspnpm run audit:release-guardsexits 0pnpm test:e2e:ciexits 0 against deployed stackpnpm smoke:localexits 0 end-to-end- Bugs B-001, B-002, B-005, B-009, B-010, B-019, B-020, B-021 marked closed
- Grafana synthetic-error test fires alert within 5 min
Phase 1 sign-off commit: ______
Phases 2–6
Detailed task lists for Phases 2–6 will be expanded into per-phase trackers as each phase begins.
See docs/ROADMAP.md for current scope and docs/roadmaps/ for
focused execution plans.
| Phase | Tracker file | Status |
|---|---|---|
| 2 | to be created when Phase 2 starts | 🔲 Planned |
| 3 | to be created when Phase 3 starts | 🔲 Planned |
| 4 | to be created when Phase 4 starts | 🔲 Planned |
| 5 | to be created when Phase 5 starts | 🔲 Planned |
| 6 | to be created when Phase 6 starts | 🔲 Planned |