## When to use

Whenever users send the same prompt more than twice. The library is the curation surface (settings/library route); the picker is the in-context recall (chat input slash-menu, slash-command); the card is the unit shared between both. All three reuse the same fact: a prompt has a name, body, optional tags, optional pinned role.

## Library grid

Full library route. `search-ui` at the top, `tag-ui` filter chips, `grid-ui columns="2"` of prompt cards. Empty state when search returns nothing.

Prompt library 12 prompts · 4 categories
All · 12 Code review · 4 Drafts · 3 Research · 3 Personal · 2
Code review Pinned
Review the diff for security, perf, and naming. Flag with file:line. Suggest fixes inline.
Standup draft
Summarize what I did yesterday from my git log. Group by repo. End with today's plan.
Spec from notes
Turn these notes into a spec doc with sections: problem, design, alternatives, open questions.
Bug repro
Given this stack trace, propose three hypotheses ordered by likelihood. Show the test that would falsify each.

## Picker (slash-menu)

Compact popover surface fired from a chat input slash-command (`/` or `Cmd+J`). `menu-ui` with the prompt name + first 80 characters of body as the description. Recent prompts at the top.

Recent Code review Review the diff for security, perf, and naming… ⌘1 Standup draft Summarize what I did yesterday from my git log… ⌘2 All prompts Spec from notes Turn these notes into a spec doc with sections… Bug repro Given this stack trace, propose three hypotheses…

## Prompt card (the unit)

The single prompt as a self-contained card. Header with name + tags; body with the full prompt text; footer with run / edit / delete. Reused inside the grid and the slash-menu detail.

Code review Pinned Code review
Review the diff for security, perf, and naming. Flag issues with `file:line` citations. Suggest concrete fixes inline. Skip nitpicks unless asked. Last used 3 hours ago Times run 28

## Composition rules

- Picker is keyboard-first — Cmd+J opens, ⌘1–⌘9 selects recent, type-to-search filters. Mouse-only pickers are slow once a user has more than 5 prompts.
- Recents above all-prompts — most picks come from the last 3 used. Surface them first, alphabetical for the rest.
- Tags are filters, not categories — a prompt can carry multiple tags. The category chips at the top filter the grid; they don't partition.
- Pinned ≠ first — pinned prompts appear with the Pinned tag in any sort, not forced to the top. Surfacing-by-recency wins more selections than surfacing-by-pin.
- Run is the primary action — placement and tone match. Edit/delete are secondary; they don't compete.

## See also

- menu-ui — picker surface.
- search-ui — library top-bar input.
- option-card-ui — alternative when prompts have rich previews (image / icon).
- adia-chat — host surface that fires the picker on slash.