- pnpm 10 workspace + TypeScript strict + ESLint flat + Prettier - CLAUDE.md as canonical brief - docs/tasks/ — 22 task briefs broken out by phase for sub-sessions - docs/decisions/ — ADR scaffold Implements task 01 (repo-init).
27 lines
885 B
Markdown
27 lines
885 B
Markdown
# 21 — Quick-add registry
|
|
|
|
## Goal
|
|
|
|
A single global `+` button on the dashboard (and a `cmd+k` palette anywhere) that lists actions contributed by modules.
|
|
|
|
## Depends on
|
|
|
|
- 20
|
|
|
|
## Scope
|
|
|
|
- `QuickAddAction` type: `{ id, label, icon?, shortcut?, run: () => void | Promise<void> }`.
|
|
- Modules register via manifest. Registry exposes a sorted list.
|
|
- UI: floating `+` on dashboard opens a sheet of actions; `cmd/ctrl+k` opens a command-palette-style modal (use `cmdk` package).
|
|
- Default actions: New event, Add to shopping, Add to tasks, New note.
|
|
|
|
## Out of scope
|
|
|
|
- Fuzzy search across data (search adapter is a later concern).
|
|
- Action history / recents.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] Adding a new module that registers a quick-add appears in both the FAB sheet and the cmd-k palette without touching core.
|
|
- [ ] Keyboard navigation works in the palette (arrows + enter + escape).
|