grokbot_ty 7b7ed712c2 docs(#10): UX interaction spec plus remaining POC issue write-back
UAT is POC, so #10 is in DOC COMPLETE. Capture knobs live on-screen, review
confidence presentation, 409/422 field recovery, taxonomy cache, portable
Call 1→Call 2, shared validation. U2Net Try harder deferred, not deleted.
2026-09-02 00:30:47 +00:00
2026-08-24 11:00:51 -07:00

SlabUploader

Mobile-first, self-hosted app for publishing one-of-a-one wood slabs to WooCommerce. Phone capture (online) → hybrid measure/crop on device → review → WooCommerce create.

Owner: Ty (Whidbey). Store: www.whidbeywoodstore.com. Deploy: Docker Compose + Caddy on an inventoried host (APP_HOSTNAME).

Status

Gate A freeze signed 2026-08-31. Docs refactor on branch docs/refactor-v2 (2026-09-01). Read AGENTS.md before any implementation. TECH-SPEC + ARCHITECTURE + AGENTS beat archived PRD lines.

POC bar: phone → customer-ready listing on the real store; UAT creates as Woo draft with SLAB-UAT-* SKUs; one real SKU Woo publish after Ty review. Online-only for POC (offline deferred). Build plan: docs/IMPL-PLAN.md (Phase 0 = hybrid Gates A+B; Gate C = early Phase 1 first draft listing).

Documentation

File What
AGENTS.md Working contract + hard rules (read first)
docs/ARCHITECTURE.md Hybrid client/server split, data flow
docs/TECH-SPEC-PIPELINE.md Deterministic math + image pipeline, constants, test vectors
docs/DATA-MODEL.md SQLite schema + slab status state machine
docs/OPENAPI.md Client↔server API contract
docs/CONTENT-WOO.md Content templates + WooCommerce payload/integration
docs/PROMPTS.md Vision + content prompts (server files)
docs/DEPLOYMENT.md Env-agnostic compose, Caddy, backup/restore
deploy/INVENTORY.md Host inventory worksheet (Gate B)
docs/UX.md POC interaction spec (review, capture knobs, errors, first-run)
docs/IMPL-PLAN.md Phased build plan with acceptance criteria + exit gates
docs/archive/PRD-2026-08.txt Frozen historical PRD only (not a source for new work)

Quick orientation

Hard locks live in AGENTS.md. Short map:

  • Hybrid: phone owns mask knobs / sqft / bdft / 3:4 PNG; server stores, Woo, inference proxy. U2Net “Try harder” deferred from POC.
  • bdft = sqft × thickness_in (no /12). TV-1 through TV-10 on the client.
  • Secrets never in browser; AES-GCM on server; SLAB_AES_KEY env only. Woo auth = WP application password (dedicated low-priv user), not consumer keys.
  • Woo UAT: draft default; SLAB-UAT-* force draft (AGENTS §5).
  • Inference OFF until Gate C; Call 1/2 after, still inside POC.
  • Online-only for POC (offline PWA deferred).
  • Two containers (frontend, fastapi) + Caddy. Single SQLite + image volumes.
  • v1 non-goals: no versioning, no staff/roles, no bulk publish, no analytics, no SKU update path.

Repo remotes

  • Canonical SoT: Gitea Ty_Tech/SlabUploader on gitea-atd (https://gitea.vps1.afterthedemo.com/Ty_Tech/SlabUploader)
  • Optional later mirrors: gitea-truenas, GitHub — not SoT for this workstream

Getting started (implementer)

  1. Read AGENTS.md (hard rules) and Phase 0 in docs/IMPL-PLAN.md.
  2. Start at Phase 0 — hybrid client TECH-SPEC modules + thin FastAPI health/settings (not a server happy-path pipeline).
  3. Do not skip exit gates; Ty signs each phase via the delivery process.
  4. Do not implement from docs/archive/PRD-2026-08.txt.
S
Description
SlabUploader — mobile-first live-edge slab capture → WooCommerce publish (design + implementation). Mirrored from local TrueNAS TyTech_Internal/SlabUploader.
Readme MIT 21 MiB
Languages
TypeScript 43.5%
Python 37%
Svelte 18.8%
Shell 0.4%
Dockerfile 0.2%