Context
We're building a command palette as the primary interaction surface. We need to decide (and have decided) how to split the surface between actions (create conversation, run project, etc.) and navigation (browse projects, worktrees, sessions).
Decision
Use two separate palettes, following the VS Code / JetBrains convention:
- Action palette — verbs: create new conversation, run project, etc.
- Browser palette — navigation: fuzzy search across projects, worktrees, and sessions.
Rationale
- Actions and navigation are different mental models. Mixing them forces the user to mentally filter results by type on every invocation.
- Users already have muscle memory for the split (
Cmd+P vs Cmd+Shift+P).
- Frequency differs: the browser is opened constantly, the action palette less often. Splitting lets us optimize each independently (recents and breadcrumbs for the browser; confirmations and parameter prompts for actions).
- Linear/Raycast escape hatch: the action palette should also allow navigation to anything browseable as a fallback, so we never need a third palette.
Acceptance criteria
Context
We're building a command palette as the primary interaction surface. We need to decide (and have decided) how to split the surface between actions (create conversation, run project, etc.) and navigation (browse projects, worktrees, sessions).
Decision
Use two separate palettes, following the VS Code / JetBrains convention:
Rationale
Cmd+PvsCmd+Shift+P).Acceptance criteria