`. The submit now happens on step 5.
+
+Also add skip button to Step 4 after the Back button:
+```tsx
+
setStep(5)} className="w-full" disabled={loading}>
+ Skip to summary
+
+```
+
+**8. Add Step 5 — Summary** after the step 4 block:
+```tsx
+{step === 5 && (
+
setStep(4)}
+ />
+)}
+```
+
+**9. Create `handleStartChat` function** — adapts existing `handleSubmit` logic but also opens chat:
+```typescript
+async function handleStartChat() {
+ // Guard: claude_local requires rootDir
+ if (defaultAdapter === "claude_local" && !rootDir.trim()) {
+ setError("Root directory is required for Claude Code. Go back to step 4 to set it.");
+ return;
+ }
+
+ setLoading(true);
+ setError(null);
+
+ try {
+ // === Same company creation logic as handleSubmit ===
+ const company = await companiesApi.create({ name: VOCAB.appName });
+ setSelectedCompanyId(company.id);
+ queryClient.invalidateQueries({ queryKey: queryKeys.companies.all });
+
+ // ... (copy all the agent creation, mode save, and credential storage code
+ // from handleSubmit — the baseAdapterConfig, hermesPromptTemplate,
+ // adapterConfig, runtimeConfig, PM agent create, Engineer agent create,
+ // queryClient invalidation, updateNexusSettings, puterToken/google/apiKey storage)
+
+ // Navigate to dashboard then open chat panel
+ closeOnboarding();
+ navigate(`/${company.issuePrefix}/dashboard`);
+ setChatOpen(true); // <-- ONBD-06: opens chat panel after navigation
+ } catch (err) {
+ setError(err instanceof Error ? err.message : "Setup failed. Please try again.");
+ setLoading(false);
+ }
+}
+```
+
+IMPORTANT: The `handleStartChat` function contains the SAME company/agent creation logic as the existing `handleSubmit`. The only differences are: (a) no `e: React.FormEvent` parameter, (b) error message mentions going back to step 4 for rootDir, (c) `setChatOpen(true)` is called after `navigate()`. You can either refactor the shared logic into an internal helper or duplicate it — refactoring into a helper like `createWorkspace()` is cleaner.
+
+**10. Update the reset effect** — in the `useEffect` that resets form state when wizard closes, change `setStep(1)` to still reset to 1 (no change needed — step 5 naturally resets).
+
+**11. Update the top comment** — change "4-step flow" to "5-step flow" and update the step list to include "summary".
+
+
+ cd /opt/nexus && pnpm vitest run ui/src/components/onboarding/
+
+
+ - grep -q "OnboardingSummaryStep" ui/src/components/NexusOnboardingWizard.tsx
+ - grep -q "useChatPanel" ui/src/components/NexusOnboardingWizard.tsx
+ - grep -q "setChatOpen(true)" ui/src/components/NexusOnboardingWizard.tsx
+ - grep -q "step === 5" ui/src/components/NexusOnboardingWizard.tsx
+ - grep -q "deriveProviderLabel" ui/src/components/NexusOnboardingWizard.tsx
+ - grep -c "Skip" ui/src/components/NexusOnboardingWizard.tsx shows at least 3 skip buttons
+ - grep -q "Summary" ui/src/components/NexusOnboardingWizard.tsx (step indicator label)
+ - grep -q "handleStartChat" ui/src/components/NexusOnboardingWizard.tsx
+
+ Wizard has 5 steps with skip on 1/2/4, summary on step 5, and "Start chatting" creates workspace then opens chat panel. TypeScript compiles and tests pass.
+
+
+
+
+
+1. `pnpm vitest run ui/src/components/onboarding/` — all unit tests pass
+2. `cd /opt/nexus && pnpm tsc --noEmit` — no TypeScript errors
+3. Grep checks: `grep -q "setChatOpen(true)" ui/src/components/NexusOnboardingWizard.tsx` confirms ONBD-06 wiring
+4. Grep checks: `grep -c "Skip" ui/src/components/NexusOnboardingWizard.tsx` confirms at least 3 skip buttons (ONBD-04)
+5. Grep checks: `grep -q "OnboardingSummaryStep" ui/src/components/NexusOnboardingWizard.tsx` confirms summary wired (ONBD-05)
+
+
+
+- OnboardingSummaryStep component exists and renders hardware, mode, provider, root dir
+- Skip buttons on steps 1, 2, and 4 (step 3 already has one)
+- Step 5 shows "Summary" in the step indicator
+- "Start chatting" on summary creates workspace, navigates to dashboard, and opens chat panel
+- No corporate language ("company", "CEO", "mission") in the summary step
+- All unit tests pass
+- TypeScript compiles cleanly
+
+
+
+After completion, create `.planning/phases/32-multi-step-onboarding-wizard/32-01-SUMMARY.md`
+