Files
vmall/openspec/config.yaml
T
Chengdong Zhang e10cae5789 docs: API architecture ADRs, tech spec, and marketing capability tracker
Persist the modular-monolith decision (ADR 0001 handler/service/repo,
ADR 0002 keep REST) with the companion tech spec and the api-architecture
OpenSpec capability. Replace the finished mock-migration tracker with
docs/TBD-marketing.md listing the backend-less marketing domains still on
fixtures (coupons, favorites, account stats, seckill, collective, integral,
reviews). README and AGENTS.md point at the new docs.
2026-09-18 16:00:31 +08:00

23 lines
1.5 KiB
YAML

schema: spec-driven
context: |
VMall: B2B2C e-commerce MVP, spec-driven in phases.
Tech stack:
- Backend: Rust (axum 0.8, sqlx 0.8 + Postgres 18, redis 8, JWT, argon2) at apps/api, crate vmall-api. Modular monolith: handler → service → repository under src/modules/<context> (docs/adr/0001, docs/tech-specs/rust-api.md). HTTP REST is the public contract; GraphQL is not the primary API (docs/adr/0002). Money is stored as integer minor units + ISO currency code; never floats.
- Frontends: three Nuxt 3 apps in pnpm workspace: apps/mall (customer storefront, port 3000), apps/shop-admin (merchant console, 3001), apps/admin (platform console, 3002).
- Shared contract: packages/shared (@vmall/shared) — TS types, API client, en/zh locales, ui.css. Frontends must use it; no per-app API reimplementation.
- Dev infra: Postgres + Redis run in local docker (containers pg18, rdb8); databases vmall / vmall_test; API runs migrations on boot (sqlx migrate).
Conventions:
- i18n: product/shop/category content stored as JSONB {"en": "...", "zh": "..."}; UI strings in @vmall/shared locales.
- Multi-currency: currencies table with rate_to_base; prices stored in the SKU's own currency; display conversion via /api/currencies/convert.
- RBAC roles: platform_admin, shop_owner, shop_staff, customer.
- API errors: {"error": {"code", "message"}} with proper HTTP status.
rules:
proposal:
- Keep proposals under 300 words with a Non-goals section
tasks:
- Group tasks by milestone with verifiable checkboxes