3.4 KiB
3.4 KiB
Feature checklist (phases A–E)
Short parity checklist for Descrybe v2. Detailed gaps: status-and-gaps.md. Cutover: cutover.md. Schema: schema-map.md.
Legend: [x] done · [~] partial/stub · [ ] missing
Phase 0 — Scaffold
- Monorepo:
apps/api,apps/web, docs/scripts (migrator underapps/api/cmd/migrator) - Docker Compose PostgreSQL 16
- goose migrations + sqlc generate
cmd/api,cmd/worker,cmd/migrator- SvelteKit shell +
PUBLIC_API_URL+ CSRF-aware client - ID map JSON format documented (schema-map.md)
- CI (
go test, sqlc check,svelte-check) - Automated tests
Phase A — Platform
- Email/password auth (argon2id), login/logout, session cookies (scs)
- Invite accept + set-password (
must_set_password) - Companies + memberships (replace Clerk orgs / profiles)
- [~] Team invite / revoke / remove member (invite + remove yes; revoke/list pending incomplete)
- [~] Settings: profile, company (language, merge-by-GTIN) — company yes; profile update thin
- [~] API keys CRUD (dashboard keys yes;
/api/v1product API missing) - [~] Billing/usage read + credit consume (overview + consume yes; plans/cycles/cron incomplete)
is_platform_admingate + migrator fromadmin_users- Health:
/healthz+/readyz(Postgrespool.Ping) - Svelte: login, accept-invite, settings, billing overview, API keys
- [~] Migrator: companies, users, memberships, plans (+ dry-run) — needs real MySQL validation
- Invite / set-password emails (SMTP)
Phase B — Catalog
- [~] Categories tree + CSV upload (CRUD + formulas API; no tree UI / CSV)
- [~] Attributes hierarchy + category links (CRUD; linking UI incomplete)
- [~] Custom variables + title/description formula editors (API yes; rich UI missing)
- [~] Products list/search/edit (API list/get/patch; UI basic)
- File uploads (products / EANs) + object storage
- [~] Migrator: categories, attributes, variables, products (best-effort; files incomplete)
Phase C — Feeds / export
- [~] Input feeds (URL / file / FTP), mapping, schema extraction (CRUD + mapping JSON; sync/FTP/extract missing)
- [~] Sync jobs via River (DB job row stub; River not wired)
- [~] Export feed builder (XML/CSV) + public URLs (create + stub body)
- Preview APIs
- [~] Migrator: feeds, export feeds (mappings incomplete)
Phase D — AI processing
- Pipeline workers: categorize (vector + LLM taxonomy) → attributes → enhance
- [~] Credits, rate limits, cancel/retry (credits + cancel yes; rate limits/retry incomplete)
- [~] OpenAI / Pinecone behind interfaces (OpenAI + optional Pinecone; LLM categorize when category missing)
- [~] Job controls UI (list/start/cancel basic; no admin visibility)
Phase E — WooCommerce + admin / cutover
- [~] WooCommerce sync (config only; test/sync stubs)
- Admin: users, billing, jobs, stuck cleanup
- Final ETL verification + count reports on real data
- Cutover runbook executed (cutover.md)
- Clerk decommissioned; MySQL retained 30 days
Suggested next milestones
- Validate migrator
-dry-runon production MySQL dump - Implement real feed sync (URL + CSV)
- Implement real export XML/CSV
- AI pipeline MVP behind interfaces
- Port
/api/v1for existing API clients - Catalog CSV + formula UI + product edit parity
- Admin + Woo (if needed) → cutover