← ORBIS Cockpit

ORBIS Personal Universal - Master Plan

From ~55 readiness to 100. 25 tasks. Background track while Business Universal is in flight. Single source of truth.
All 35 0 4 0 31
Color transition law (read once, apply forever)
TransitionStatusTrigger
πŸ”΄ to 🟒AllowedExternal barrier lifted
🟑 to 🟒AllowedFounder provided data / decision / document / input
🟒 to πŸ”΅AllowedTask completed; commit landed
πŸ”΅ to anythingForbiddenπŸ”΅ is irreversible
🟒 to 🟑Exception onlyRequires written explanation in commit
🟒 to πŸ”΄ForbiddenCannot quietly punt to "external"
New πŸ”΄ForbiddenPersonal has no external blockers as of 2026-05-07

Priority 1 - Registration page + onboarding 5 tasks

IDTaskStageColorDateCommit
PR.1Personal registration landing page at /personal/signup. Spec + copy delivered for frontend tab (TricksterMinister/ORBIS_PROJECT_V2); page voice grounded in Perplexity research. Closes when frontend ships.B2026-05-08spec 7b28660
PR.2Phone (WhatsApp) verification flow: OTP via WhatsApp template, store in manager_profiles upon submitB2026-05-076057cea
PR.3Email verification flow: confirmation link sent via SES or similar, mark manager_profiles.email_verifiedB2026-05-07d8f1c7b
PO.1Personal-specific anketa: 10 questions, career-path focus. Final v3 grounded in Perplexity research (NYC hospitality recruiter questions, what pros track, contact-note habits, morning ritual, voice). Backend POST /api/personal/signup wired.A2026-05-08ece68bf
PO.2Submit handler: anketa response auto-creates manager_profile, fires intro WhatsApp template, schedules first daily strategic briefB2026-05-070dd157c

Priority 2 - Trial logic 3 tasks

IDTaskStageColorDateCommit
PT.1Decide trial duration and conversion model. DECISION 2026-05-08: 14 days for Personal Universal (pilots stay on 60d). Wired into config.personalTrialDays.A2026-05-0886e33f8
PT.2Trial activation + expiry behavior. DECISION 2026-05-08: auto-downgrade to free_limited tier at expiry; basic tools keep working, premium tools paused, WhatsApp checkout link sent. Per-tool gating follow-up.B2026-05-08f115d18
PT.3Trial-end behavior: WhatsApp template "trial ending in 3 days", "trial expired - upgrade or downgrade to limited", actual feature gating in tools (gracefully degrade)B2026-05-07164acd3

Priority 3 - Payment 4 tasks

IDTaskStageColorDateCommit
PP.1Stripe checkout link creation for Personal monthly subscription. DECISION 2026-05-08: keep current STRIPE_PERSONAL_PRICE_ID as-is until first real paid Personal client.B2026-05-0886e33f8
PP.2Stripe webhook to manager_profiles.plan='paid' on checkout.session.completed. Idempotent. (Architecture exists in webhook/stripe.js - audit + extend)B2026-05-07bac8af1
PP.3Subscription cancellation flow: WhatsApp command "отписка" or web cancel page, Stripe cancel_at_period_end, downgrade tools at period endB2026-05-07c84fd17
PP.4Smart Drafter one-time addon checkout (price ID STRIPE_SMART_DRAFTER_PRICE_ID already in env). Activate on payment. Lifetime grant per stripe-client.js current configB2026-05-07f528684

Priority 4 - D.2 Decision Support port LOCK-001 last item 1 task

IDTaskStageColorDateCommit
PD.2Wire lib/decision-support.js into Personal Universal: pre-send hook on send_email tool. DECISION 2026-05-08: enabled only for pilots (manager_profiles.pilot_cohort IS NOT NULL). Override via PD2_SCOPE env (pilot|all|off).A2026-05-0886e33f8

Priority 5 - Calibration + E2E 3 tasks

IDTaskStageColorDateCommit
PE.1Synthetic E2E: full Personal signup-to-trial-to-paid flow on staging tenant. Run via test script that mocks WhatsApp + Stripe webhook. Verify all 4 manager_profile state transitionsB2026-05-07689bd57
PE.2Real E2E: signup-to-paid + 5+ tools. DECISION 2026-05-08: subsumed by FG.5 family-georgia 8-week observation (same workflow on the nephew's real number); closes when FG.5 closes.C2026-05-08decision only
PE.3Real E2E: daily brief + weekly state + spending crons across one full week. DECISION 2026-05-08: subsumed by FG.5 family-georgia 8-week observation.C2026-05-08decision only

Priority 6 - First client soft-launch 3 tasks

IDTaskStageColorDateCommit
PC.1Identify first Personal client candidate. DECISION 2026-05-08: defer until family-georgia pilot week 7. Family-georgia is the only Personal pilot until then; non-family Personal client picked after we read 8-week observation results.A2026-05-0886e33f8
PC.2Soft-launch sequence + first-7-days failure-mode capture. DECISION 2026-05-08: merged into FG.5 family-georgia 8-week observation (same workflow, same failure-mode capture).C2026-05-08decision only
PC.3Final QA on a fresh test tenant before public/wider launch (analogue of Q.1 in Business plan). Folds in PE.2 + PE.3D2026-05-07ae107f9

Priority 7 - Quiet hours + personal communication norms 2 tasks

IDTaskStageColorDateCommit
PQ.1Verify all Personal crons respect quiet-hours rule (no Personal WhatsApp outbound before 10:00 AM local time per founder rule). Audit each of 9 Personal crons; add quiet-hours guard where missingB2026-05-07975fef3
PQ.2Document timezone handling: each manager_profile has timezone field; crons schedule send time in UTC but compare to manager local time before firingB2026-05-07f461b47

Priority 8 - Cross-cutting infrastructure Personal-side gaps 4 tasks

IDTaskStageColorDateCommit
PG-AAudit trail event-bus emissions for Personal-side actions (career-radar email-classified, manager-spending-summary delivered, decision-support flagged, contact-reconnect drafted). Same fire-and-forget pattern as Business Watchdog audit trail. Estimated: 6 to 10 hours totalB2026-05-077b44aed
PG-BMVP/Pro scope. DECISION 2026-05-08: MVP = all tools, no caps. Pro split decided AFTER family-georgia exit-report informs which features hit cost ceilings or need limiting.A2026-05-08decision only
PG-CPersonal-side memory growth model. Verify agent_memory archival pattern handles Personal users at scale (each Personal user accumulates ~150 to 300 rows/month from morning briefs, weekly states, captured wins/incidents, contact memories). Companion to Business Universal GAP-I but Personal-specificB2026-05-07116af9b
PG-DPersonal-side cron observability: route Personal cron failures into Sentry orbis-personal project (already wired via lib/sentry-router.js path detection but verify)B2026-05-074e5e006

Priority 9 - Pilot infrastructure universal scaffolding 5 tasks

IDTaskStageColorDateCommit
PI.1manager_profiles.pilot_cohort + pilot_notes columns + admin-only endpoint to create a manager with trial_expires_at = now + Nd and no Stripe gate. Idempotent create-or-update by whatsapp_numberB2026-05-081605338
PI.2Bilingual system prompts: read manager_profiles.language (ka / en / ru) and inject the matching language directive into all Claude / Gemini prompts. Default stays enB2026-05-081d8c04e
PI.3Pilot weekly digest cron: every Sunday 18:00 UTC, scan all rows where pilot_cohort IS NOT NULL, summarize their week (tools used, sessions, errors, language quality) and WhatsApp the digest to the founderB2026-05-08abedca7
PI.4First-job-seeker persona adaptations: when manager_profiles.persona = 'first_job_seeker', daily-strategic-brief leads with career-development not spending; career-radar tunes for first-restaurant-job not Senior Sommelier; spending tracker stays silent until expenses appearB2026-05-08649aca3
PI.5scripts/pilot-report.js exit-report scaffolding: takes a pilot_cohort tag + date range, dumps agent_memory + conversations_personal + agent_event_log rows for that cohort into a markdown report with usage counts, language quality flags, recurring failure modesB2026-05-08e618a4b

Priority 10 - Family-Georgia first pilot nephew, 17, Tbilisi 5 tasks

IDTaskStageColorDateCommit
FG.1Bilingual anketa for 17-year-old hospitality student. 8 final trilingual questions (EN+RU+KA). KA finalized by founder 2026-05-08. Frozen const in lib/family-georgia-anketa.js with field-target map; ready for WhatsApp anketa flow or PI.1 admin pre-fill.A2026-05-08fdcb228
FG.2KA WhatsApp content for 4 lifecycle moments. Founder approved Claude KA drafts as-is. Free-form bodies (trial_warning + trial_expired) wired in trial-expiry cron with per-language switch. Meta-template submit (whatsapp_otp_code_geo + personal_onboarding_welcome_geo) deferred as separate operational task.A2026-05-085579d0a
FG.3Nephew onboarding data collected: full name, WhatsApp +995..., email, language preference (ka / en / mix), English level (1 to 10), pilot_cohort = 'family-georgia-1'. Inserted via PI.1 admin endpoint with trial_expires_at = now + 60 daysA2026-05-08
FG.4Nephew consent + briefing: founder explains 2-month pilot, feedback collection at end, that this is not yet a finished product. Captured as a single row in agent_memory with type 'pilot_consent'A2026-05-08
FG.5Live launch + 8-week observation: signup -> WhatsApp anketa -> daily strategic brief tuned to first-job-seeker persona -> weekly digest to founder -> exit report at week 8 via PI.5. Folds in PE.2 + PE.3 real-executionC2026-05-08