# Phase 8 — progress log > Canonical record for Phase 8 (8a public route, 8b PWA shell, 8c markdown context). > Mirrored to the Apple Notes note titled "Phase 8 — Public intake + PWA + project context". > Workflow: a task moves `pending → in_progress → done` as I work it; TDD red/green noted where applicable. ## How to read - `[ ]` pending - `[~]` in progress - `[x]` done — TDD green + commit landed - `[!]` blocked, needs decision --- ## Plan 8a — Public intake links and route - [x] Task 1: Schema — `c99be4d`. Bridge: plan assumed `getOrCreateCollection` extended existing select values; it doesn't, so added `ensureCardsCreatedByRoleValues` and extended `ensureActivityActionValues`. Tests: 446 pass. - [ ] Task 2: Token generator - [ ] Task 3: Best-effort client IP - [ ] Task 4: Rate limiter - [ ] Task 5: Token resolver and daily counter - [ ] Task 6: Middleware carve-out - [ ] Task 7: The public Server Action - [ ] Task 8: The public submission route - [ ] Task 9: Minimal intake layout - [ ] Task 10: The public intake page - [ ] Task 11: The public wizard - [ ] Task 12: The "thanks" page - [ ] Task 13: Card submitted-by badge - [ ] Task 14: Owner actions for intake links - [ ] Task 15: The intake links panel - [ ] Task 16: Wire the panel into the admin page - [ ] Task 17: Integration tests — the public route - [ ] Task 18: Integration tests — the owner UI actions - [ ] Task 19: Full verification ## Plan 8b — PWA shell - [ ] Task 1: The source SVG - [ ] Task 2: The icon build script - [ ] Task 3: The manifest - [ ] Task 4: The service worker - [ ] Task 5: The manifest link in the intake layout - [ ] Task 6: Manual install verification - [ ] Task 7: Final test run ## Plan 8c — Per-project markdown context - [ ] Task 1: Schema - [ ] Task 2: The intake context extension - [ ] Task 3: The prompt modules - [ ] Task 4: The prompt tests - [ ] Task 5: The owner editor - [ ] Task 6: Wire the editor into the admin page - [ ] Task 7: Full verification