spec(M3): Onboarding UI — first-run source OS and distro setup #7
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/robin#7
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
When Robin starts for the first time, it needs to know where you came from. M3 builds the Vue onboarding flow that captures this and writes it to config.
Proposed flow
Step 1: What were you using before?
Simple button selection:
Step 2: Which distro are you on now?
Robin auto-detects the running distro (reads
/etc/os-release) and confirms: "Looks like you're on CachyOS — is that right?" with a manual override option.Step 3 (Linux-to-Linux only): Which distro were you coming from?
If the user selected "Linux" in Step 1, ask which distro family:
This feeds into the Linux-to-Linux migration paths (see issue #4).
Step 4 (Windows or macOS only): Are you dual-booting?
If the user came from Windows or macOS, ask: "Are you keeping Windows/macOS alongside Linux?"
Dual-boot users get a supplementary pattern set layered on top of their primary migration patterns — covering NTFS dirty flags from Windows Fast Startup, clock skew (Windows stores local time, Linux stores UTC), GRUB misconfiguration, and macOS partition mount issues.
Step 5: Fluency check (non-gating)
A single optional question — no wrong answers, no gating:
This seeds
fluency_level(0–5) without interrogating the user. Robin tracks it passively over time: dismissing a suggestion as "already knew this" bumps the level; opening help text on a command brings it down.Step 6: Primary use capture (optional, multi-select)
This activates the relevant log paths. A "Gaming" selection enables Steam/Proton/Lutris log watchers from day one. "Development" activates shell and build tool logs.
Step 7: Confirmation
"Got it. Robin will help you navigate CachyOS coming from macOS." — then Robin is live.
Mobile-origin users (Android / iPad)
Users migrating from a phone or tablet as their primary device have a fundamentally different mental model:
Robin pattern bodies for mobile-origin users explain every command from first principles, avoid assuming any terminal familiarity, and use App Store / Google Play as analogies for package managers. Termux-using Android power users are a slight exception but we target the baseline.
Dual-boot supplement
Dual-boot users get their primary migration pattern file (e.g.
windows-to-arch.toml) plus a supplementary pattern file loaded on top (dualboot-windows.toml). The supplement covers coexistence-specific issues that only appear because both OSes share the same hardware:The supplement is loaded in addition to, not instead of, the primary pattern file.
What's stored
~/.config/robin/config.tomlgets:migration.source_os— the OS family (macos,windows,linux,android,ipad,unknown)migration.source_distro_family— the distro family for Linux-to-Linux paths (debian,fedora,arch,opensuse)migration.distro— the target distro (auto-detected)migration.dual_boot_with— the co-installed OS if dual-booting (windows,macos), or omittedmigration.fluency_level— starts at 0, updated passivelymigration.use_domains— list of selected use domains (gaming,dev,creative,general)MenagerieOS path
On MenagerieOS, source OS is captured by the installer — Robin skips Steps 1, 3, and 4 and goes straight to Step 5. Onboarding on MenagerieOS should feel like a warm welcome, not a setup wizard.
Open questions
/etc/fstabNTFS mounts) rather than asking?Dependencies
source_distro_family,dual_boot_with,use_domainsfields added toMigrationConfigSourceOsenum