diff --git a/.convoys/redesign-scanner-flow.md b/.convoys/redesign-scanner-flow.md index 198c3d6..8383808 100644 --- a/.convoys/redesign-scanner-flow.md +++ b/.convoys/redesign-scanner-flow.md @@ -7,7 +7,7 @@ success_metric: | to destinations; "you already own N" ownership badge via /api/cards/[id]/ownership; captured frame persisted to Vercel Blob and attached to user_cards. skip: [] -status: open +status: closed created: 2026-05-27 depends_on: - server-side-scan-pipeline @@ -67,13 +67,13 @@ that block efficient bulk scanning at the table. ## Todos -- [ ] IA: stack-destination information architecture -- [ ] UX: condition/foil/quantity controls + ownership badge -- [ ] Architect: brief decomposition + API body-param contract -- [ ] Brief 1 — destination picker + session state -- [ ] Brief 2 — metadata + ownership (after Brief 1) -- [ ] Brief 3 — Blob persistence (after Brief 1) -- [ ] Design-system: verify theme tokens on new components +- [x] IA: stack-destination information architecture +- [x] UX: condition/foil/quantity controls + ownership badge +- [x] Architect: brief decomposition + API body-param contract +- [x] Brief 1 — destination picker + session state (#42) +- [x] Brief 2 — metadata + ownership (#43) +- [x] Brief 3 — Blob persistence (#44) +- [x] Post-PR audit — `audit-redesign-scanner-flow-44` (see `.convoys/redesign-scanner-flow/audit-redesign-scanner-flow-44.md`) ## Operator action required diff --git a/.convoys/redesign-scanner-flow/audit-redesign-scanner-flow-44.md b/.convoys/redesign-scanner-flow/audit-redesign-scanner-flow-44.md new file mode 100644 index 0000000..daa4547 --- /dev/null +++ b/.convoys/redesign-scanner-flow/audit-redesign-scanner-flow-44.md @@ -0,0 +1,42 @@ +--- +convoy: redesign-scanner-flow +multitask_group: audit-redesign-scanner-flow-44 +prs: [42, 43, 44] +audited_at: 2026-05-27 +outcome: comment-only +--- + +# Post-PR audit: redesign-scanner-flow + +Combined diff: `55af7e3..673af83` (Briefs 1–3, PRs #42–#44). + +## Rollup + +| Role | Recommendation | Blockers | +| --- | --- | --- | +| Reviewer | comment-only | 0 critical | +| Design system | 7 token violations (pre-existing `CameraScanner.js` overlay) | 0 blockers | +| A11y | 8 critical, 8 warnings | Ownership badge + modal focus | + +Reports posted to [PR #44](https://github.com/varutasu/tcg-vault/pull/44#issuecomment). + +## Follow-up convoys (queued) + +| Slug | Priority | Source | +| --- | --- | --- | +| `scanner-redesign-a11y-fixes` | P1 | A11y audit — ownership badge role, modal focus traps, unlabeled selects/buttons | +| `scanner-user-cards-quantity-guard` | P2 | Reviewer — parseInt/NaN guard parity with decks handler | +| `test-scanner-redesign-surfaces` | P2 | Reviewer — unit tests for new components + upload route | +| `document-condition-foil-destination-semantics` | P3 | Reviewer — clarify or migrate condition/foil for collection/deck rows | +| `camera-scanner-token-cleanup` | P3 | Design system — replace hardcoded hex overlay colors in CameraScanner | + +## Acceptance criteria sign-off + +| # | Criterion | Status | +| --- | --- | --- | +| 1 | Single destination; scans auto-route | ✅ | +| 2 | Condition/foil/quantity propagate | ⚠️ owned only; collection/deck accept but don't persist | +| 3 | Ownership badge | ⚠️ works visually; a11y role missing | +| 4 | Scan image URL on user_cards | ✅ | +| 5 | Lint + vitest baseline | ✅ | +| 6 | Destination picker keyboard + badge a11y | ⚠️ picker ✅; badge ❌ | diff --git a/.convoys/ship-readiness.md b/.convoys/ship-readiness.md index d0640d3..5ce1e24 100644 --- a/.convoys/ship-readiness.md +++ b/.convoys/ship-readiness.md @@ -506,11 +506,7 @@ Six convoys authored from the scanner audit portfolio plan. Dependency order: identify-by-text route; ≥70% Layer-1 hit rate via `scan_attempts.layer`. Piggybacks `schema-map-fresh` CI path fix for `migrations/`. Convoy: `.convoys/add-real-ocr-layer.md`. -- **`redesign-scanner-flow`** (priority: P1 feature; - `depends_on: server-side-scan-pipeline`). Stack-destination UX, - condition/foil/quantity, ownership badge, Blob scan-image persistence. Three - briefs; `/multitask` briefs 2+3 after brief 1. Can run parallel with - `add-real-ocr-layer`. Convoy: `.convoys/redesign-scanner-flow.md`. +- **`redesign-scanner-flow`** — **RESOLVED 2026-05-27** — PRs #42 (Brief 1), #43 (Brief 2), #44 (Brief 3). Post-PR audit `audit-redesign-scanner-flow-44` posted to PR #44; outcome comment-only. See `.convoys/redesign-scanner-flow/audit-redesign-scanner-flow-44.md`. Follow-ups queued: `scanner-redesign-a11y-fixes` (P1), `scanner-user-cards-quantity-guard` (P2), `test-scanner-redesign-surfaces` (P2). - **`rename-collections-vocabulary`** (priority: P2 IA/copy; parallel to #1+#2). "My Collection" / "Lists" / "Binders" copy sweep; `forbidden-stale-strings` CI gate; `AGENTS.md` vocabulary table. Skips architect (`skip: arch`); IA + @@ -542,10 +538,9 @@ Six convoys authored from the scanner audit portfolio plan. Dependency order: logic from `import-mtg` / `import-pokemon`, discover missing sets via Scryfall + Pokémon TCG API `/sets`, protected `/api/cron/sync-catalog` with `CRON_SECRET`, `vercel.json` weekly schedule, paced imports respecting upstream rate limits. - Lorcana auto-discovery deferred (hardcoded `setCodeMap` today). **Do not start - until** `redesign-scanner-flow`, `scanner-correctness-polish`, and in-flight - scanner fixes (catalog-gap disambiguation, foil vision) are merged — operator - explicitly requested finishing scanner work first. Convoy: + Lorcana auto-discovery deferred (hardcoded `setCodeMap` today). **Unblocked** + post-`redesign-scanner-flow` merge (2026-05-27); still defer if operator wants + a11y fixes or catalog import (Perfect Order) first. Convoy: `.convoys/catalog-sync-vercel-cron.md`. ## Self-analytics