Implementation Plans¶
This directory contains comprehensive documentation for all implementation plans in the po-platform project.
Quick Navigation¶
| # | Plan | Status | Summary |
|---|---|---|---|
| 001 | PDF Signing Tests | ✅ Completed | Comprehensive test suite for PDF signing feature and contracts workflow. |
| 002 | Contract Workflow Test Suite | ✅ Completed | Comprehensive test suite for partner contract creation workflow. |
| 003 | Partner Info Form UX Improvement | ✅ Completed | Refactoring of the Partner Info form to improve user experience effectively consolidating fragmented save buttons into a single global save mechanism. |
| 004 | Partner Calendar UX Improvement | ✅ Completed | Implementation of a comprehensive layered availability system for partners. |
| 005 | Service Form UX Refactor | ✅ Completed | Comprehensive refactor of the partner console service form. |
| 006 | Calendar Form UI Improvements | ✅ Completed | Consolidated calendar availability simulation into a single rules-based API endpoint and unified frontend component. |
| 007 | Availability Simulator View Enhancements | ✅ Completed | Implementation of 9 distinct, purpose-built view layouts for the Availability Simulator (Day, Week, Month, Year). |
| 008 | Glassmorphism UI Refinement | ✅ Completed | Systematic refinement of the partner-console UI to implement glassmorphism principles. |
| 009 | Enhanced Calendar Availability Rules | ✅ Completed | Implementation of frequency-specific recurrence controls (weekly, monthly, yearly) for calendar availability rules. |
| 010 | Service Calendar Bindings | ✅ Completed | Multi-calendar binding support for the service availability tab. Partners can link multiple calendar |
| 011 | Calendar Enhancements — Exclude Dates & Capacity | ✅ Completed | Adds two new capabilities to the calendar rule model: |
| 012 | Calendar Service — Core Implementation | ✅ Completed | Documents the fully implemented calendar-service microservice. |
| 013 | ICS Export Phase 1 | ✅ Completed | Implementation of Phase 1 of the external calendar integration (ICS Export). |
| 014 | Negative ICS Export (Strategy B) | ✅ Completed | Implements the "negative" ICS export strategy for service calendars. |
| 015 | ICS Import | ✅ Completed | Implements the ICS Import feature, allowing partners to import existing .ics |
| 016 | Calendar Exception Refactoring — Atomic Model | ✅ Completed | Refactored the calendar_exception data model from range-based |
| 017 | Two-Way ICS Sync | ✅ Completed | External calendar sync via polling — partners connect ICS feeds, background worker creates exceptions. |
| 018 | Activity Log System | ✅ Completed | Two-tier extensible activity log system with RabbitMQ publish, WebSocket push, and Activity Center frontend. |
| 019 | Architecture Simplification Review | ✅ Delivered | Pre-launch inventory of 17 services + 6 infra components with simplification lens. Produced Wave 2 candidate list (Riff #24-#39); end state if executed: 11 services + 5 infra. Research-only plan; execution in child tickets. |
| 020 | Payment Service — MoR + Stripe Connect Express | 🟡 Draft | Pre-launch hard gate. Three-rail money flow: customer → platform (regular Stripe), platform → partner (Connect Express + Transfers API), and locally-paid services (no Stripe). PT-market methods + Multibanco + MB WAY. Insurance regulation (IDD) flagged for legal counsel. |
| 021 | Experience Service — DAG Orchestrator Build-Out | 🟡 Draft | Pre-launch trademark feature. Builds the AI-curated multi-service Experience engine (intent extraction, candidate scoring, DAG planning, external provider integration). Stays separate from ai-service per architecture-review. |
| 022 | Strapi UGC Pipeline — Partner Content Publication | 🟡 Draft | Pre-launch. Partner content workflow: draft → submit → admin review → approved → published to Strapi → public-fo reads from Strapi. Adds 5 new content types; partner-service joins dbmate. |
| 023 | Contract Service — Reverse Migration + Customer Contracts | 🟡 Draft | Pre-launch. Reverse-migrate partner-service.partner-contracts → contract-service; add customer↔company click-through contract type for booking-time terms acceptance; closes contract.events orphan exchange. |
| 024 | Booking Flow — frontend checkout + backend persistence | 🟢 Ready | Pre-launch hard gate. Closes the gap between Plan #021 candidate Experiences and Plan #020 payment-service backend: bookings schema in experience-service, BookingsConsumer for payment.events, public-fo BookingSummary/Checkout/Return pages reusing E1-PoC Stripe Elements pattern. All 6 pre-DRAFT decisions resolved 2026-05-06; F1 round 1 reviewed without scope change. Single biggest remaining blocker for Plan #020 going user-facing. |
| 025 | Marketplace Completeness (deferred follow-ups from #020 + #024) | 🟡 Draft | Stub plan capturing the deferrals from #020 and #024 (multi-partner destination charges, partner-attribution audit, factura emission, DSAR endpoints, etc.). 8 candidate slices; pre-DRAFT decisions still open. Not launch-blocking; sequenced post-Plan-#024 close-out. |
| 026 | Test Foundation + Structural Hygiene | 🟢 Ready | TDD becomes the default for new code; characterization-test backfill on load-bearing legacy. Phase 1: CI gate + test DB harness + payment-service pilot + zero-test bootstrap (3 weeks). Phase 2: shared @po/contracts package + OpenAPI completion + AsyncAPI/Zod consumer validation + service template (4 weeks). Phase 3: risk-ranked legacy backfill (ongoing). Explicitly rejects ORM migration, microservice consolidation, Express→NestJS rewrites pre-launch. All pre-DRAFT decisions resolved 2026-05-10; Riff epic #96 + 11 per-slice sub-tasks. |
| 027 | Self-hosted Mail (Mailcow) with Resend smarthost | 🟡 Draft | Hybrid mail design: Mailcow on srv884655 for inbound + IMAP + webmail + storage; Resend as outbound smarthost (sidesteps Hostinger port-25 block + cold-IP deliverability). Coexists with existing Resend transactional pipeline on mail.portugalodyssey.pt. MTA hostname mx.portugalodyssey.pt; 12 mailboxes/aliases (personal + public-facing + compliance + apex sender); apex portugalodyssey.pt verified as 2nd Resend sending domain so noreply@portugalodyssey.pt works. 8 slices A-H, ~7-9 h focused work over 2 days. |
| 028 | Web Presence Frontend — brand site with embedded RAG chat | 🟡 Draft | Parallel auxiliary track (Riff #3 in aux tracker 61596011-..., not canonical 8da0e2bf-...). Nomenclature ownership confirmed via parallel-session memo. New frontends/web-presence/ sibling app (Vite+React 19+TS+Tailwind 4) replacing public-fo on the apex; public-fo demoted to app.portugalodyssey.pt. Includes from-scratch design system (tokens + 5 glass primitives via the global /glassmorphism skill), a generous AI chat textarea wired to ai-service /api/v1/chat with scrolling Q&A backdrop, finalised logo + favicon kit, and 5 MJML email templates × EN/PT for notification-service. 10 slices A-J. Branch prefix feat/plan-028/* + compose project po-web-presence. |
| 031 | MkDocs Documentation Site — publish docs/ as a navigable site |
🟢 Ready | Material for MkDocs over docs/. IA on two axes: audience tabs (Clients/Developers/DevOps/Reference) + service & frontend categories — the 4 frontends (public-fo, web-presence, partner-console, admin-console) as first-class sections under Developers. Zero-risk allowlist publication (publish only vetted content; fail-closed) + GitLab Pages internal hosting + blocking gitleaks backstop. All 6 open decisions resolved 2026-06-02. 6 slices A–F. Branch prefix track=docs-site. |
Recently Updated¶
| Plan | Updated | Change |
|---|---|---|
| Web Presence Frontend — brand site with embedded RAG chat | 2026-05-16 | Initial draft (parallel auxiliary track from aux-tracker Riff #3) |
| MkDocs Documentation Site | 2026-06-02 | Initial draft — Material for MkDocs over docs/, audience + 4-frontend IA |
| Test Foundation + Structural Hygiene | 2026-05-10 | Initial draft |
| Marketplace Completeness | 2026-05-06 | Initial scaffold |
| Contract Service — Reverse Migration + Customer Contracts | 2026-04-29 | Initial draft |
| Strapi UGC Pipeline — Partner Content Publication | 2026-04-29 | Initial draft |
| Experience Service — DAG Orchestrator Build-Out | 2026-04-29 | Initial draft |
| Payment Service — MoR + Stripe Connect Express | 2026-04-28 | Initial draft |
| Architecture Simplification Review | 2026-04-28 | Initial delivery (research-only) |
| Activity Log System | 2026-03-23 | Initial implementation |
| Two-Way ICS Sync | 2026-03-22 | Initial implementation |
| Calendar Exception Refactoring — Atomic Model | 2026-03-18 | Documentation update |
| ICS Import | 2026-03-12 | Documentation update |
| Negative ICS Export (Strategy B) | 2026-02-26 | Documentation update |
| ICS Export Phase 1 | 2026-02-20 | Documentation update |
| Calendar Service — Core Implementation | 2026-02-18 | Documentation update |
Statistics¶
| Metric | Count |
|---|---|
| Total Plans | 28 |
| Completed | 19 (#001–#019) |
| In Progress / Drafted | 9 (#020–#028) |
| Planned | 0 |
Documentation Structure¶
Each plan folder follows a consistent structure:
NNN-plan-name/
├── README.md # Plan overview and quick links
├── metadata.yaml # Machine-readable plan metadata
├── artifacts/ # Original planning artifacts
│ ├── implementation_plan.md
│ ├── task.md
│ └── walkthrough.md
├── human/ # Diataxis documentation for humans
│ ├── tutorial.md # Step-by-step learning guide
│ ├── howto.md # Task-oriented practical guides
│ ├── reference.md # Complete technical reference
│ └── explanation.md # Conceptual understanding
└── ai-agent/ # CSF documentation for AI agents
├── tutorial.csf.md
├── howto.csf.md
├── reference.csf.md
└── explanation.csf.md
See CONTRIBUTING.md for detailed documentation guidelines.
Tools¶
Update Index¶
To regenerate this README from plan metadata:
Or manually update the tables above when adding/modifying plans.
By Status¶
✅ Completed¶
- 001-PDF Signing Tests
- 002-Contract Workflow Test Suite
- 003-Partner Info Form UX Improvement
- 004-Partner Calendar UX Improvement
- 005-Service Form UX Refactor
- 006-Calendar Form UI Improvements
- 007-Availability Simulator View Enhancements
- 008-Glassmorphism UI Refinement
- 009-Enhanced Calendar Availability Rules
- 010-Service Calendar Bindings
- 011-Calendar Enhancements — Exclude Dates & Capacity
- 012-Calendar Service — Core Implementation
- 013-ICS Export Phase 1
- 014-Negative ICS Export (Strategy B)
- 015-ICS Import
- 016-Calendar Exception Refactoring — Atomic Model
- 017-Two-Way ICS Sync
- 018-Activity Log System
🔄 In Progress¶
None currently
📋 Planned¶
None currently
By Tag¶
| Tag | Plans |
|---|---|
pdf-signing |
001 |
playwright |
001, 006, 007 |
partner-console |
003, 005, 009, 010, 016 |
postgresql |
012 |
import |
015 |
calendar |
004, 006, 007, 009, 010, 011, 012, 013, 014, 015, 016, 017 |
refactor |
003, 016 |
caching |
014 |
batch-operations |
016 |
ics |
013, 014, 015, 017 |
ui-ux |
006, 007 |
rfc5545 |
016 |
glassmorphism |
008, 013 |
database |
015, 016 |
react |
005, 006, 007, 008 |
notification-service |
002 |
frontend |
004, 006, 007, 008, 011, 013, 014, 015, 016 |
ux |
003 |
contracts |
001, 002 |
ui |
008 |
atomic-model |
016 |
exclude-dates |
011 |
rrule |
009 |
microservices |
004 |
capacity |
011 |
integration-tests |
002 |
availability |
004, 009, 010, 011, 012, 014, 016 |
ux-clarity |
005 |
simulator |
015 |
tailwind |
008 |
bindings |
010 |
e2e |
001, 002, 006, 007, 015 |
infrastructure |
015 |
nestjs |
006, 012 |
backend |
004, 006, 011, 012, 013, 014, 015, 016, 017 |
exceptions |
010, 015, 016 |
recurrence |
009 |
service-form |
005, 010 |
unit-tests |
002 |
partner-service |
002 |
testing |
001, 002, 003 |
ui-refactor |
005 |
sync |
017, 018 |
external-calendars |
017 |
background-worker |
017 |
nestjs-schedule |
017 |
logging |
018 |
activity |
018 |
calendar-sync |
018 |
real-time |
018 |
websocket |
018 |
rabbitmq |
018 |