---
description: Exxat DS — Ask Leo thread primitives, sidebar, and escalation from command palette.
alwaysApply: false
globs:
  - apps/web/components/ask-leo-*.tsx
  - apps/web/components/leo-*.tsx
  - apps/web/lib/use-leo-thread.ts
  - packages/ui/src/components/ui/message.tsx
  - packages/ui/src/components/ui/bubble.tsx
  - packages/ui/src/components/ui/marker.tsx
  - packages/ui/src/components/ui/message-scroller.tsx
tags: [shell, ai]
seeAlso:
  - apps/web/docs/ask-leo-pattern.md
---

# Exxat DS — Ask Leo

## Intent

Ask Leo is the **long-form AI** surface (`AskLeoSidebar`, `⌘⌥K`). Short search stays in **`CommandMenu`** (`⌘K`).

## MUST

1. Compose transcripts with **`Message`**, **`Bubble`**, **`Marker`**, **`MessageScroller`** — product wrapper **`LeoThreadMessages`**.
2. User / assistant / thinking variants per **`ask-leo-pattern.md`**.
3. No toast for streaming status — `Marker` + inline chrome only (`exxat-no-toast.mdc`).

## MUST NOT

- Fork per-surface transcript markup or manual scroll-stick logic.
- Use Lucide icons on Leo thread UI (`exxat-fontawesome-icons.mdc`).

## See also

- `exxat-command-menu.mdc`, `exxat-utility-bar.mdc`
- `exxat-chart-leo-spotting` skill (plot insights only)
