✅ Acceptance Checklist · printable

Planet Module System foundation · 2026-05-16

Tickare durante esecuzione · Mother gate finale richiede TUTTO ✅ per merge. Soft gates (L5 visual, L10 load) sono review-required ma NON blocker.


Mother fase-0 (75min, 0:00–1:15)

[ ] Repo audit fatto                                                                    (15min)
[ ] pnpm workspaces estesi a `packages/*`                                              (5min)
[ ] packages/contracts/src/planet.ts copiato da 10-contracts.ts del kit                (5min)
[ ] packages/contracts/package.json + tsup.config + vitest.config                     (5min)
[ ] .github/workflows/planet-system-ci.yml copiato da 20-ci-workflow.yml              (5min)
[ ] tsconfig.base.json strict (vedi 30-tooling-configs.md §8)                          (5min)
[ ] eslint.config.js + .prettierrc.json + commitlint.config.js                         (10min)
[ ] husky + lint-staged installati (pnpm exec husky init)                              (5min)
[ ] size-limit + stryker configs                                                       (10min)
[ ] changesets + renovate config                                                       (5min)
[ ] 3 ADR seedati in docs/adr/ (001 PMS · 002 hexagonal · 003 strangler)              (5min)
[ ] Commit "feat(planet-system): bootstrap monorepo foundation"                        (5min)
[ ] Push feat/pms-foundation-base                                                      (1min)
[ ] git worktree add ../Multiverbe-child1-pms-core feat/pms-core-web-retrofit          (2min)
[ ] git worktree add ../Multiverbe-child2-adapters feat/pms-adapters-booking-retrofit  (2min)
[ ] Child briefs spawn (paste 01-child-1-brief.md + 02-child-2-brief.md)               (5min)

Mother fase-0 gate: tutti ✅ prima di lasciar partire Child.


Child-1 · Planet Core + Web retrofit (6h, 1:15–7:15)

Pre-PR gates (auto via CI)

[ ] pnpm typecheck                                              exit 0
[ ] pnpm lint                                                   zero new warning
[ ] pnpm --filter @multiverbe/planet-core test --coverage      ≥80% line / ≥70% branch
[ ] pnpm --filter @multiverbe/planet-core test:mutation        ≥60%
[ ] pnpm --filter @multiverbe/planet-testkit test               100% pass
[ ] pnpm --filter @multiverbe/planet-web test --coverage       ≥70% line
[ ] pnpm --filter @multiverbe/planet-web build                  size-limit ≤80KB gz
[ ] pnpm --filter @multiverbe/planet-core build                 size-limit ≤25KB gz
[ ] pnpm dlx madge --circular [packages owned]                  0 circular
[ ] Playwright smoke signup→/web→create site→preview            zero error
[ ] axe-core scan /web mount                                    0 critical/serious
[ ] Commitlint conventional commits                             pass

Side-effect Wow Audit fixes

[ ] W-002 keyframes morti fix                                   animations.css + scanner test pass
[ ] W-010 sezioni null fix                                      SectionRegistry typed + ADR-004 finalizzato
[ ] W-011 screenshot stub fix                                   real Playwright capture + feature flag wired

Scaffold script DX

[ ] scripts/scaffold-planet.ts implementato                    via tsx
[ ] pnpm run scaffold:planet crm <60s exit 0                    smoke
[ ] Generated planet-crm passes contract test                   pass
[ ] BOS status.json action_item planet-crm-implementation auto-add  (placeholder OK)

ADR Child-1

[ ] ADR-001 PMS finalizzato con esempi reali                    docs/adr/001-*.md
[ ] ADR-003 Strangler finalizzato                              docs/adr/003-*.md
[ ] ADR-004 SectionRegistry restricted (W-010) seeded           docs/adr/004-*.md

PR body Child-1

[ ] Scope description (1 paragrafo)
[ ] Impatto MVP% claim (es. +6% feature + +50% scale-readiness)
[ ] Acceptance checklist copy-paste tickata
[ ] Screenshot/screencast Vercel preview /web functioning
[ ] Self-critique sezione ≥3 punti "what I'd improve next iteration"
[ ] Refs: BOS#planet-module-system-foundation-2026-05-16

Child-2 · Adapters + Booking retrofit (6h, 1:15–7:15)

Pre-PR gates (auto via CI)

[ ] pnpm typecheck                                              exit 0
[ ] pnpm lint                                                   zero new warning
[ ] pnpm --filter @multiverbe/sector-adapters test              100% contract pass
[ ] pnpm --filter @multiverbe/sector-adapters test --coverage   ≥80% line (3 full · skeleton excluded)
[ ] pnpm --filter @multiverbe/planet-booking test --coverage    ≥70% line
[ ] pnpm --filter @multiverbe/sector-adapters build             each adapter ≤15KB gz
[ ] pnpm --filter @multiverbe/planet-booking build              size-limit ≤80KB gz
[ ] pnpm dlx madge --circular [packages owned]                  0 circular
[ ] Playwright smoke 3 settori prenotazione                     zero error
[ ] axe-core scan /booking + form                               0 critical/serious
[ ] Supabase get_advisors diff post-changes                     0 new warning
[ ] Commitlint conventional commits                             pass

Sector adapters

[ ] Ristorazione full (booking + menu adapter + tests)          ✅
[ ] Parrucchieri full (booking adapter + tests)                 ✅
[ ] Studi-medici full (booking + GDPR Art 9 + audit log + pseudo)   ✅
[ ] Hotel skeleton + 1 contract test                            ✅
[ ] Gym skeleton + 1 contract test                              ✅
[ ] Immobiliari skeleton + 1 contract test                      ✅
[ ] Studi-prof skeleton + 1 contract test                       ✅

Cross-planet contract

[ ] <BookingSlot /> exported da planet-booking                  ✅
[ ] Consumable da planet-web stub (integration test)            pass
[ ] Event bus publish booking:slot:created cross-planet         pass

Integration test Supabase branch ephemeral

[ ] create_branch MCP (confirm_cost <CHF 0.01)                  ✅
[ ] 5 booking scenarios cross-sector run                        green
[ ] RLS isolation + audit log art9 verified                     pass
[ ] delete_branch MCP teardown                                  ✅

ADR Child-2

[ ] ADR-002 Hexagonal + DDD finalizzato con esempi              docs/adr/002-*.md
[ ] ADR-005 Studi-medici GDPR Art 9 scritto                     docs/adr/005-*.md

PR body Child-2

[ ] Scope description
[ ] Impatto MVP% claim (es. +4% feature + adapter pattern reusable)
[ ] Acceptance checklist tickata
[ ] Screencast prenotazione 3 settori
[ ] Self-critique ≥3 punti
[ ] Refs: BOS#planet-module-system-foundation-2026-05-16

Mother fase-2 integration (75min, 7:15–8:30)

Verifier review (adversariale · Opus 4.7 xhigh)

[ ] Cerca attivamente buchi nei test (mutation think · cosa se cambio operator)
[ ] Cerca race condition event-bus + state-migrator
[ ] Cerca PII leak in log strutturati (regex scan)
[ ] Cerca RLS leak (workspace_id assertion)
[ ] Cerca contract violation (Zod runtime parse roundtrip)
[ ] Approva o request-changes (iterazione max 2x · poi escalate founder)

Merge sequenza

[ ] PR Child-1 squash merge a master                            (10min)
[ ] PR Child-2 rebase post-master + squash merge                (10min)
[ ] git worktree remove ../Multiverbe-child1-pms-core           (2min)
[ ] git worktree remove ../Multiverbe-child2-adapters           (2min)

Full quality gate run su master

[ ] pnpm install --frozen-lockfile                              ✅
[ ] pnpm typecheck                                              exit 0
[ ] pnpm lint --max-warnings=0                                  ✅
[ ] pnpm test --coverage                                        ≥80%/≥70%
[ ] pnpm test:mutation (planet-core)                            ≥60%
[ ] pnpm test:e2e (Playwright golden + 3 edge)                  ✅
[ ] pnpm test:a11y                                              0 critical/serious
[ ] pnpm size                                                   tutti budget rispettati
[ ] pnpm audit --audit-level=high                               0 high/critical
[ ] pnpm dlx madge --circular packages/                         0
[ ] pnpm build                                                  ✅ + sourcemaps presenti
[ ] scripts/check-boundaries.sh                                 ✅

Vercel preview verify

[ ] Vercel preview deploy auto-triggered post-merge             ✅
[ ] Build logs zero error                                       ✅
[ ] curl /api/health/planets → { web: 'ok', booking: 'ok' }     ✅
[ ] Playwright smoke su preview URL                             ✅
[ ] Lighthouse CI on preview · LCP/INP/CLS/TBT in budget        ✅

Supabase post-merge audit

[ ] get_advisors smoke su yqhixdqipojvgzfadufo                  0 new warning
[ ] list_tables verify schema unchanged (no rogue migrations)   ✅

BOS update (trigger "aggiorna BOS")

[ ] status.json:
    [ ] close web-quality-gap-closure-2026-05-15 (done · via PMS side-effect)
    [ ] close planet-module-system-foundation-prep-2026-05-16 (done)
    [ ] add planet-module-system-foundation-2026-05-16 (done)
    [ ] add planet-crm-implementation-2026-05-19 (todo)
    [ ] add planet-sales-implementation-2026-05-22 (todo)
    [ ] add planet-content-studio-implementation-2026-05-26 (todo)
    [ ] add planet-hr-skeleton-2026-Q3 (todo)
[ ] decisions-log.md entry full "2026-05-16 · PMS foundation"
[ ] activity.json append 2 PR events + quality_report ref
[ ] canon/05-stack.md § Architettura cite ADR-001/002/003
[ ] Commit + push BOS                                           ✅
[ ] Vercel deploy multiverbe-bos-app verify                     ✅

Continuous improvement loop

[ ] <quality_report> §9 rubric 10 cat compilato
    [ ] archived execution/quality-reports/2026-05-16T{HH}-pms-foundation.md
[ ] <wow_check> §9-bis 3 lenti
    [ ] ≥1 entry append execution/wow-backlog.md
[ ] <pattern_learned>
    [ ] memoria feedback_planet_module_system_architecture.md
    [ ] MEMORY.md index aggiornato (≤200 lines)
[ ] Self-critique protocol
    [ ] ≥3 lessons learned append ops/operating-protocol-orchestrator.md
[ ] <handover_log> compilato e archiviato

Founder briefing

[ ] 5-line summary cosa fatto oggi
[ ] Next-action proposta (1-2 frasi · domenica 17 Mag admin OR lunedì 18 Mag W3 Sprint 1 day-1)
[ ] Quality report score X/12 reported
[ ] Demo URL Vercel preview se applicable

🚨 Exit criteria · TUTTI ✅ per sessione closed

[ ] 2 PR merged master
[ ] CI green su master
[ ] Vercel preview green
[ ] L1-L9 hard gates verdi (L5 + L10 soft accepted)
[ ] BOS aggiornato + committato + pushed + deployed
[ ] Memory + protocol updates archiviati
[ ] Founder briefed

Se UNO non ✅ → NON dichiarare "done" · documenta gap residuo + action_item BOS + revert se rischio prod.


Print this prima della sessione · barri durante · review a fine.