Hermes Agent bee3bcc278 docs: full implementation plan (PRD decisions locked + specs 1-4 + impl plan)
- PRD: 20 locked decisions, open items cleared, fence fixed
- docs/TECH-SPEC-PIPELINE.md: deterministic math + 9 test vectors (deliverable #1)
- docs/ARCHITECTURE.md, DATA-MODEL.md, OPENAPI.md (deliverable #2),
  CONTENT-WOO.md, DEPLOYMENT.md (deliverable #4), IMPL-PLAN.md
- README rewritten; .gitignore added

AGENTS.md pending Ty's approval (protected file write was blocked).
2026-08-24 12:27:20 -07: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. Field capture (offline) → deterministic measurement/pricing/normalization → publish a single slab to the store as a pending product.

Owner: Ty (Whidbey). Store: www.whidbeywoodstore.com. Deploy: .201 (Caddy, Docker).

Status

Planning complete — ready for implementation. All 20 product decisions locked (PRD "Decisions log", 2026-08-24). Build plan in docs/IMPL-PLAN.md (phases 0–6).

Documentation

File What
Slab capture app PRD.txt Requirements + locked decisions (source of truth for "what")
docs/ARCHITECTURE.md Services, client/server split, offline PWA, data flow
docs/TECH-SPEC-PIPELINE.md Deterministic math + image pipeline, constants, 9 test vectors
docs/DATA-MODEL.md SQLite schema + status state machine
docs/OPENAPI.md Client↔server API contract (deliverable #2)
docs/CONTENT-WOO.md Content templates + WooCommerce payload/integration
docs/DEPLOYMENT.md Compose, Caddy, backup/restore, key rotation (deliverable #4)
docs/IMPL-PLAN.md Phased build plan with acceptance criteria + exit gates
AGENTS.md Working contract + hard rules for anyone implementing

Quick orientation

  • Deterministic core (measurements, pricing, normalization, Woo sync) is pure, network-free, and unit-tested. Inference (species/character + optional content) is the only scoped-LLM surface, and it's toggleable — the app fully works without it.
  • Offline-first PWA: capture works with no network; drafts + photos persist in IndexedDB and sync when online.
  • Two containers (frontend, fastapi) + Caddy. Single SQLite + image volumes.
  • v1 non-goals: no versioning, no staff/roles, no bulk publish, no analytics, no update path (create-only, SKU-deduped).

Repo remotes

  • Canonical: github.com/TyTech99/SlabUploader
  • Mirror: Gitea TyTech_Internal/SlabUploader (truenas.local:30008)

Getting started (implementer)

  1. Read AGENTS.md (hard rules) and docs/IMPL-PLAN.md (phases).
  2. Start at Phase 0 — scaffold + the tested deterministic pipeline.
  3. Don't skip the exit gates; Ty signs each phase.
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%