docs: create milestone v1.2 roadmap (4 phases)

This commit is contained in:
Chandler Copeland
2026-04-03 14:59:31 -06:00
parent 64ccb750fa
commit 4d69253a94
3 changed files with 141 additions and 31 deletions

View File

@@ -1,14 +1,17 @@
---
gsd_state_version: 1.0
milestone: v1.2
milestone_name: Multi-Signer and Deployment Hardening
status: defining requirements
last_updated: "2026-04-03"
milestone: v1.1
milestone_name: Smart Document Preparation
status: executing
stopped_at: Completed 13-ai-field-placement-and-pre-fill/13-03-PLAN.md — AI Auto-place button wired; Plan 03 of 4 done; ready for Plan 04 (E2E verification)
last_updated: "2026-04-03T20:30:14.113Z"
last_activity: 2026-04-03 -- v1.2 roadmap created (Phases 14-17 planned)
progress:
total_phases: 0
completed_phases: 0
total_plans: 0
completed_plans: 0
total_phases: 8
completed_phases: 7
total_plans: 20
completed_plans: 19
percent: 100
---
# Project State
@@ -21,25 +24,38 @@ See: .planning/PROJECT.md (updated 2026-04-03)
## Current Position
Phase: Not started (defining requirements)
Plan:
Status: Defining requirements
Last activity: 2026-04-03 — Milestone v1.2 started
Phase: 13 (ai-field-placement-and-pre-fill) — EXECUTING
Plan: 1 of 4
Status: Executing Phase 13 (v1.1 final phase); v1.2 roadmap created and ready
Last activity: 2026-04-03 -- v1.2 roadmap created (Phases 14-17 planned)
## Note on v1.1
v1.1 (Smart Document Preparation) is complete except Phase 13 Plan 04 (E2E verification checkpoint). All feature code is implemented. Run `/gsd:plan-phase 13` to execute that final verification plan if needed.
## Note on v1.2
v1.2 (Multi-Signer and Deployment Hardening) roadmap is defined. Four phases planned:
- Phase 14: Multi-Signer Schema — additive DB migration, enables Phases 15+16
- Phase 15: Multi-Signer Backend — token loop, signer-aware signing flow, atomic completion
- Phase 16: Multi-Signer UI — PreparePanel signer list, FieldPlacer color-coding, send validation
- Phase 17: Docker Deployment — three-stage Dockerfile, env_file secrets, health endpoint
Start v1.2 after Phase 13 Plan 04 completes: `/gsd:plan-phase 14`
## Accumulated Context
### Roadmap Evolution
- Phase 11.1 inserted after Phase 11: Agent and Client Initials (URGENT)
Progress: [█████████████] 100% (13/13 phases complete)
- Phase 11.1 inserted after Phase 11: Agent and Client Initials (URGENT)
- v1.2 roadmap created 2026-04-03: Phases 14-17 (Multi-Signer + Docker Deployment)
Progress: [█████████████] 100% (13/13 phases complete — v1.1 scope)
## Performance Metrics
**Velocity:**
- Total plans completed: 30 (v1.0 complete + Phase 8 complete)
- Average duration: ~4 min/plan
- Total execution time: ~2 hours
@@ -51,6 +67,7 @@ Progress: [█████████████] 100% (13/13 phases complete)
| v1.0 phases 1-7 | 28 | ~4 min |
**Recent Trend:**
- Trend: Stable
*Updated after each plan completion*
@@ -135,17 +152,28 @@ Recent decisions affecting v1.1 work:
- [Phase 13-03]: textFillData is MERGED not replaced — preserves manually typed values while AI values take precedence
- [Phase 13-03]: AI button uses violet bg-violet-600 to visually distinguish from gray Preview and blue Prepare-and-Send
### v1.2 Pre-decisions (from research)
- [v1.2 Research]: Schema-first approach — Phase 14 schema deploys before any multi-signer app code to avoid hard-to-unwind bugs
- [v1.2 Research]: signerEmail on signingTokens is nullable (TEXT) — legacy tokens have no signer; backfill via JOIN to client email in migration
- [v1.2 Research]: completionTriggeredAt guard column uses UPDATE WHERE IS NULL RETURNING pattern — same as existing token claim; zero rows returned means another handler won
- [v1.2 Research]: Per-signer PDF accumulation via pg_advisory_xact_lock(hashtext(documentId)) — existing embedSignatureInPdf() unchanged
- [v1.2 Research]: NEXT_PUBLIC_BASE_URL renamed to APP_BASE_URL before Docker image build — prevents localhost being baked into signing link URLs
- [v1.2 Research]: node:20-slim (Debian) required for @napi-rs/canvas glibc compatibility — do NOT use Alpine (musl libc incompatible)
- [v1.2 Research]: Neon connection pool set to max:5 — prevents connection exhaustion on free tier
- [v1.2 Research]: @vercel/blob is a dead dependency — remove before Phase 17 to prevent accidental use in Docker deployment
### Pending Todos
None yet.
### Blockers/Concerns
- [Phase 12 - CARRY FORWARD]: Deployment target (Vercel serverless vs. self-hosted container) must be confirmed before production deploy — write-to-disk preview pattern silently fails on Vercel serverless (ephemeral filesystem)
- [Phase 12 - CARRY FORWARD]: Deployment target confirmed as Docker (Phase 17 addresses this) — write-to-disk preview pattern is valid for self-hosted container
- [Phase 13]: AI coordinate accuracy on real Utah forms is untested — integration test with full 20-page Utah REPC required before Phase 13 ships
## Session Continuity
Last session: 2026-03-21
Stopped at: Completed 13-ai-field-placement-and-pre-fill/13-03-PLAN.md — AI Auto-place button wired; Plan 03 of 4 done; ready for Plan 04 (E2E verification)
Last session: 2026-04-03
Stopped at: v1.2 roadmap created — Phases 14-17 defined; ready to complete Phase 13 Plan 04 then begin Phase 14
Resume file: None