# Implementation Decisions (Working Defaults) These defaults unblock implementation. Replace them when final production decisions are made. ## Platform and Routing - Public site target: Cloudflare Pages. - Internal/admin target: Cloudflare Tunnel to a private origin. - Edge policy: default deny for `/admin` in public traffic; allow only trusted network. ## Media Storage and Privacy - Public assets must be scrubbed before publication. - Default metadata policy: remove EXIF/IPTC/XMP from public files. - Admin-private metadata may include location/time fields for curation workflows. ## AI Vision Layer - Provider contract is `VisionProvider` with a common result schema. - Default provider in local development: mock provider (no external key required). - Fallback behavior: if provider fails, ingestion continues with manual-tagging state. ## Taxonomy and Classification - Shared tags remain free-form for now, but collection values are fixed in `src/types/gallery.ts`. - Suggested tags are reviewed by user confirmation before publishing. ## Tooling and CI - Node LTS target: 22. - Quality gate: typecheck + lint + test + build. - CI provider: GitHub Actions.