- TypeScript + Fastify skeleton under project/ (src/modules, shared, infrastructure, app) - scripts/check-module-boundaries.mjs enforcing module public-API rules (tested with fixtures) - GET /health endpoint, error envelope without stack leakage - specs/F-001-scaffold (SPEC/DESIGN/TASKS/TESTS), spec/tech.md dependency justification - 30-ticket MercadoDeVida roadmap in backlog/features.json, spec/roadmap.md - All gates approved: reviewer, security, qa; verify.sh green
2.2 KiB
MercadoDeVida vNext — Roadmap
Source of truth for intent: project/design_prompt.md Source of truth for execution: backlog/features.json (one feature at a time, gates before done)
Stack decisions (fixed, boring):
- Backend: TypeScript + Node.js + Fastify (modular monolith)
- Frontend: Next.js + React + TypeScript + Tailwind (SSG/ISR for SEO pages)
- Database: PostgreSQL (source of truth) + Redis (cache only)
- Product code lives in project/
Waves
Wave 0 — Foundation (F-001 … F-004)
Skeleton, migrations, request context, config/flags. Nothing business yet. Exit: build/lint/typecheck/test green, dev DB up with one command.
Wave 1 — Identity & Users (F-005 … F-006)
Accounts, sessions, RBAC. Exit: customer and admin identities work.
Wave 2 — Catalog (F-007 … F-012)
Categories → products → brands → variants/rich data → images → search. Exit: full catalog model behind public module APIs, search replaceable.
Wave 3 — Storefront & SEO (F-013 … F-015)
Next.js shell → catalog pages (SSG/ISR, stable URLs) → structured data, sitemap, redirects. Exit: SEO-critical public surface is live and crawlable.
Wave 4 — Commerce core (F-016 … F-023)
Inventory → pricing → cart → promotions → shipping → orders → checkout → payments. This is the money path. Order matters; do not skip dependencies. Exit: customer pays, order becomes PAID, stock is correct under concurrency.
Wave 5 — Post-purchase & cross-cutting (F-024 … F-030)
Notifications, reviews, CMS, caching, security hardening, observability, E2E. Exit: production-grade cross-cutting concerns with the money path protected end to end.
Execution rules (from design_prompt.md)
- NO FEATURE WITHOUT SPEC: each ticket produces specs//SPEC.md, DESIGN.md, TASKS.md, TESTS.md during the design stage.
- Smallest possible change; no unrelated refactors.
- Every change reports expected blast radius before coding.
- Modules communicate only through public interfaces or domain events.
- Never trust frontend for price, stock, discount, payment status or user identity.
- ./scripts/verify.sh green is a precondition for closing any ticket.