docs(05): create Phase 5 Offer System plans — 4 plans in 3 waves
Wave 1: 05-01 schema migration (5 new tables, additive only) Wave 2: 05-02 offer catalog CRUD (/admin/offers + NavBar) Wave 3: 05-03 project offer assignment (OffersTab) + 05-04 client dashboard offers + /admin/forecast Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+40
-64
@@ -2,16 +2,16 @@
|
||||
gsd_state_version: 1.0
|
||||
milestone: v1.0
|
||||
milestone_name: milestone
|
||||
status: executing
|
||||
stopped_at: Phase 1 execution complete — all 5 plans done, E2E verified (valid token 200, invalid 404)
|
||||
last_updated: "2026-05-21T11:56:14.461Z"
|
||||
last_activity: 2026-05-21 -- Phase 4 planning complete
|
||||
status: completed
|
||||
stopped_at: Phase 4 fully executed — payments, multi-project, slug, deploy on hub.iamcavalli.net
|
||||
last_updated: "2026-05-27"
|
||||
last_activity: 2026-05-27 -- Phase 4 confirmed complete (04-00 through 04-07 + payments)
|
||||
progress:
|
||||
total_phases: 5
|
||||
completed_phases: 3
|
||||
completed_phases: 4
|
||||
total_plans: 17
|
||||
completed_plans: 13
|
||||
percent: 76
|
||||
completed_plans: 17
|
||||
percent: 100
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -21,75 +21,51 @@ progress:
|
||||
See: .planning/PROJECT.md (updated 2026-05-09)
|
||||
|
||||
**Core value:** Il cliente apre il link e vede esattamente a che punto è il suo progetto, cosa deve ancora succedere e cosa ha già approvato — senza dover scrivere email per chiedere aggiornamenti.
|
||||
**Current focus:** Phase 03 — service-catalog-quote-builder
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 4
|
||||
Plan: Not started
|
||||
Status: Ready to execute
|
||||
Last activity: 2026-05-21 -- Phase 4 planning complete
|
||||
Phase: 4 — COMPLETE
|
||||
Plan: All plans done (04-00 through 04-07)
|
||||
Status: Production deployed on hub.iamcavalli.net
|
||||
|
||||
Progress: [██░░░░░░░░] 25%
|
||||
## What Was Built (Phase 4)
|
||||
|
||||
## Performance Metrics
|
||||
- **04-00**: Infra — route /c/ → /client/, Dockerfile, deploy Gitea → Coolify
|
||||
- **04-01**: DB schema migration — projects, settings, FK pivot
|
||||
- **04-02**: Admin projects list + client detail project cards
|
||||
- **04-03**: Project workspace + timer analytics + settings page
|
||||
- **04-04**: Slug resolution + multi-project client dashboard + slug edit
|
||||
- **04-05/06**: Post-deploy bug fixes
|
||||
- **04-07**: Debug code removed, public page restored
|
||||
- **security**: Full hardening — auth guards, rate limiting, security headers
|
||||
- **payments**: Init payments + split payment in project workspace
|
||||
|
||||
**Velocity:**
|
||||
## Production State
|
||||
|
||||
- Total plans completed: 13
|
||||
- Average duration: ~1 session each
|
||||
- Total execution time: ~2 sessions (May 13–14)
|
||||
- App: hub.iamcavalli.net (Coolify, Hetzner)
|
||||
- DB: Postgres self-hosted on Coolify
|
||||
- Auth: Auth.js (admin) + token middleware (clients)
|
||||
- Routes: /admin/* (admin), /client/[token]/* (clients)
|
||||
|
||||
**By Phase:**
|
||||
## Decisions (All Phases)
|
||||
|
||||
| Phase | Plans | Total | Avg/Plan |
|
||||
|-------|-------|-------|----------|
|
||||
| 1. Foundation & Client Dashboard | 5 | 2 sessions | ~0.4 sessions |
|
||||
| 02 | 4 | - | - |
|
||||
| 03 | 4 | - | - |
|
||||
|
||||
**Recent Trend:**
|
||||
|
||||
- Last 5 plans: 01-01, 01-02, 01-03, 01-04, 01-05
|
||||
- Trend: Steady, one blocker fixed mid-execution (Tailwind scanning external projects)
|
||||
|
||||
*Updated after each plan completion*
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
### Decisions
|
||||
|
||||
Decisions are logged in PROJECT.md Key Decisions table.
|
||||
Recent decisions affecting current work:
|
||||
|
||||
- Phase 1: `clients.token` è campo separato (non la PK) — rotazionabile via single UPDATE
|
||||
- Phase 1: `clients.accepted_total` denormalizzato — client API non tocca mai `quote_items`
|
||||
- Phase 1: `deliverables.approved_at` immutabile — audit trail dal giorno uno
|
||||
- Phase 1: Edge middleware (`proxy.ts`) usa fetch() a route interna — postgres-js non può girare nell'Edge runtime
|
||||
- Phase 1: Tailwind v4 auto-detection allargata — aggiunto `@source not` per escludere `.01_projects/` e `.claude/`
|
||||
- Phase 1: DNS `welcomeclient.iamcavalli.net` → PENDING (richiede Vercel deploy prima)
|
||||
|
||||
### Pending Todos
|
||||
|
||||
- [ ] Vercel deploy: `vercel --prod` e aggiunta dominio `welcomeclient.iamcavalli.net`
|
||||
- [ ] DNS CNAME: `welcomeclient → cname.vercel-dns.com` al registrar `iamcavalli.net`
|
||||
- [ ] `DATABASE_URL` env var in Vercel project settings
|
||||
|
||||
### Blockers/Concerns
|
||||
|
||||
None.
|
||||
- `clients.token` è campo separato (non la PK) — rotazionabile via single UPDATE
|
||||
- `clients.accepted_total` denormalizzato — client API non tocca mai `quote_items`
|
||||
- `deliverables.approved_at` immutabile — audit trail dal giorno uno
|
||||
- Edge middleware (`proxy.ts`) usa fetch() a route interna — postgres-js non può girare nell'Edge runtime
|
||||
- Tailwind v4 auto-detection allargata — aggiunto `@source not` per escludere `.01_projects/` e `.claude/`
|
||||
- Authelia va solo davanti ad /admin — /client/[token] deve bypassare per accesso via link token
|
||||
|
||||
## Deferred Items
|
||||
|
||||
| Category | Item | Status | Deferred At |
|
||||
|----------|------|--------|-------------|
|
||||
| v2 | Claude AI onboarding (CLAUDE-01, CLAUDE-02, CLAUDE-03) | Phase 4 | Roadmap init |
|
||||
| Post-Phase 1 | DNS CNAME + Vercel deploy | Before prod launch | 2026-05-14 |
|
||||
| Category | Item | Status |
|
||||
|----------|------|--------|
|
||||
| v2 | Claude AI onboarding (CLAUDE-01, CLAUDE-02, CLAUDE-03) | Backlog |
|
||||
| Infrastructure | Authelia SSO davanti ad /admin | After Phase 4 (now ready) |
|
||||
| Infrastructure | Higgsfield clone deploy (nuovo progetto Coolify) | Pending |
|
||||
| SEO | WordPress auto-publish articoli | Mentioned, not planned |
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-05-14
|
||||
Stopped at: Phase 1 execution complete — all 5 plans done, E2E verified (valid token 200, invalid 404)
|
||||
Resume with: `/gsd-plan-phase 2` — Admin Area & Interactive Features
|
||||
</content>
|
||||
</invoke>
|
||||
Last session: 2026-05-27
|
||||
All Phase 4 plans complete. Next: Authelia infra or new feature scope.
|
||||
|
||||
Reference in New Issue
Block a user