🪐 PMS Retrofit · session kit (2026-05-19+ con UAT founder)

Sessione successiva alla foundation 2026-05-16 (PR #55 mergiato). Esegue le parti deferred dal Mode B scope-reduced: npm→pnpm conversion app + implementation planet-core/testkit/sector-adapters + retrofit Strangler Web+Booking + DB migration.

Pre-requisiti hard (founder verifica PRIMA di partire)

  • [ ] PR #55 mergiato a master (verificare gh pr view 55 --json state)
  • [ ] frontend/multiverbe-app Vercel deploy READY su master post-merge
  • [ ] BOS action_item planet-module-system-retrofit-deferred-2026-05-16 ancora todo
  • [ ] Founder disponibile per UAT window (almeno 3-4h continuative · es. weekend o pomeriggio bloccato)
  • [ ] Backup recente Supabase project yqhixdqipojvgzfadufo (verifica via Dashboard last backup ≤24h)

Modello + scope

  • Mother: Opus 4.7 · effort xhigh · foreground single-turn Mode B (NO 8h auto-merge full-kit)
  • Stima realistica: 12-18h con UAT distribuita in 2-3 sessioni di 4-6h ciascuna
  • NO auto-merge automatico (anche se gate green) · founder UAT preview Vercel + approve → merge

Files del kit (DA CREARE prossima sessione)

# File Scope
00 00-preflight-check.sh Symlink/wrapper a _template/00-preflight-check.sh con env personalizzate (EXPECTED_MONOREPO=1 · EXPECTED_PM=npm · vincoli post-foundation)
01 01-pms-mother-brief.md Brief Mother retrofit: scope + sequenza fasi · Mode B/C decisione · Strangler approach
02 02-frontend-pnpm-migration-brief.md Brief Child-1 · npm→pnpm frontend/multiverbe-app (10 step + rollback plan)
03 03-planet-core-implementation-brief.md Brief Child-2 · @multiverbe/planet-core registry/loader/bus/telemetry/migrator/healthcheck
04 04-sector-adapters-implementation-brief.md Brief Child-3 · @multiverbe/sector-adapters (3 settori full · GDPR Art 9 + DB migration)
05 05-strangler-web-booking-brief.md Brief Child-4 · retrofit Web + Booking + feature flag + W-002/010/011 fix
06 06-ci-upgrade-brief.md Brief Child-5 · upgrade CI a L1-L9 (Playwright E2E + a11y + visual + Lighthouse + Stryker + SBOM)
10 10-kickoff-paste.md Prompt copy-paste con Mode B esplicito + pre-flight comando

Ordine fasi consigliato (sequenziale · 4 sessioni)

Sessione A · npm→pnpm conversion (4h · UAT critico)

  1. Backup frontend/multiverbe-app/package-lock.json (artifact)
  2. Aggiungi frontend/multiverbe-app a root pnpm-workspace.yaml
  3. cd frontend/multiverbe-app && pnpm import (converte package-lock → pnpm-lock)
  4. pnpm install da root · verifica zero peer dep issues
  5. Aggiorna Vercel project settings: build command cd frontend/multiverbe-app && pnpm build · install command pnpm install
  6. Deploy preview Vercel · UAT founder 30min (signup · /web · /booking · payment)
  7. Merge PR · monitor prod deploy 15min
  8. Rollback plan: revert Vercel settings + git revert PR se issue

Sessione B · planet-core + planet-testkit (4h)

  1. Implementa registry · loader · event-bus · telemetry · feature-flags · state-migrator · healthcheck
  2. 18 contract test in planet-testkit
  3. Coverage ≥80% line · mutation Stryker ≥60%
  4. PR merge (auto-merge OK per Livello 1 ADDITIVE-SAFE)

Sessione C · sector-adapters + DB migration (5h · GDPR Art 9 critico)

  1. Pre-flight: confirm_cost Supabase MCP create_branch ephemeral (<CHF 0.01)
  2. Test migration on branch: audit_log_gdpr_art9 · patient_pseudo_map · failed_webhooks con RLS workspace_id
  3. get_advisors smoke pre+post diff zero new high
  4. Apply to PROD yqhixdqipojvgzfadufo con safety rails
  5. Implementa 3 adapters: ristorazione (booking+menu) · parrucchieri · studi-medici (GDPR Art 9 + audit log + pseudonimizzazione)
  6. Implementa 4 skeleton: hotel · gym · immobiliari · studi-prof
  7. ADR-005 (medici GDPR) · ADR-007 (webhook DLQ)
  8. UAT founder (Sub-processor list aggiornata · DPA review)
  9. PR merge

Sessione D · Strangler retrofit Web+Booking + CI upgrade (5h)

  1. Wrapper @multiverbe/planet-web importa codice esistente da frontend/multiverbe-app/src/sites-runtime/
  2. Wrapper @multiverbe/planet-booking idem
  3. Feature flag pms.enabled default true · ?ff=pms.enabled:off per rollback
  4. Side-effect fix: W-002 keyframes morti · W-010 SectionRegistry typed (ADR-004) · W-011 screenshot reale
  5. CI upgrade L4-L9: Playwright E2E + axe-core a11y + visual snapshot + Lighthouse CI + Stryker mutation + SBOM CycloneDX
  6. UAT founder Playwright smoke (signup → web → booking · 3 settori)
  7. PR merge

Quality bar (per ogni PR retrofit)

  • TS strict · zero any · zero @ts-ignore non commentato
  • Coverage public surface ≥80% line / ≥70% branch
  • Mutation score ≥60% planet-core
  • Bundle: core ≤25KB · planet ≤80KB · adapter ≤15KB (gz)
  • A11y WCAG 2.2 AA · zero critical/serious
  • Conventional commits (commitlint enforced)
  • ZERO breaking change end-user (feature flag rollback 5sec)
  • Vercel preview deploy READY pre-merge

BOS handoff post-completamento

  • Close planet-module-system-retrofit-deferred-2026-05-16 (status done)
  • Add planet-crm-implementation-2026-05-XX (scaffold via PMS · 1-2gg target)
  • Decisions-log entry per ogni sessione
  • Memoria feedback_planet_module_system_architecture.md (pattern_learned)
  • Wow_backlog ≥1 entry per sessione

Genesi

Questo kit è il follow-up della sessione PMS foundation 2026-05-16 (DRAFT PR #55 scope-reduced via Mode B). Vedi:

  • BOS ops/sessions/2026-05-16-pms-foundation/ (kit precedente)
  • BOS execution/decisions-log.md 2026-05-16 v5 (scope reduction motivation)
  • BOS memoria feedback_session_kit_premise_drift.md (lesson learned applicata)
  • BOS memoria feedback_autonomous_window_auto_merge.md v3 (2-level gating · retrofit = Livello 2 hard-to-revert)
  • BOS ops/sessions/_template/20-foreground-singleturn-modes.md (Mode B = scope-reduced default per retrofit)
  • Multiverbe docs/adr/006-pms-foundation-isolated-scope-reduction.md (motivation completa)