Files
Handy/docs/product/voice-notes.md
Jean-Gabriel Gill-Couture c8a5193848 docs: describe the voice notes product direction
Captures where the history-first UX is heading (mixed timeline, search,
agent access) so the current dictation work stays scoped to stage 1.
2026-10-19 17:01:37 -04:00

39 lines
2.5 KiB
Markdown

# Voice notes: product direction
Status: design only. Nothing below is being built yet, except where marked "now".
## Job
One person captures thoughts by voice or keyboard, in one place, and finds them again later. It runs on desktop first, then browser and mobile. Dictating into other apps (the current Handy job) stays as a side door: a desktop shortcut that records and auto-pastes.
It must never lose a recording or overwrite a manual edit without asking.
## Shape
The main screen is one infinite, chat-like timeline of entries, newest at the bottom, with a composer at the bottom.
Entry types:
- **Recording**: audio and its transcript. The transcript can be corrected by hand (typos, names). The audio stays the source of truth: it can be replayed and retranscribed with a one-off model or language.
- **Text**: typed or pasted content (links, snippets).
- **Image** (later).
The composer mixes voice and keyboard. Typing, then recording, then typing again either appends to the draft or creates consecutive entries. Which of the two is an open question below.
## Stages
1. **Now: dictation-first history.** History is the home screen, with a Record button that doesn't paste, live text while recording, copy, and retranscribe with a one-off model or language.
2. **Editable transcripts.** Manual corrections are stored separately from the machine transcript, so retranscribing can warn before replacing an edit, or keep both.
3. **Mixed timeline.** Generalize `transcription_history` into `entries(id, kind, created_at, text, audio_file?, …)`. Text entries come from the composer. Recording into a draft appends.
4. **Search.** Full-text search (SQLite FTS5) over entries.
5. **Agent access.** Expose entries to AI agents through a local, read-mostly API (an MCP server, for example) so the notes become memory for a personal assistant. Agents run in the app.
6. **Sync and other clients.** Browser and mobile, sharing one store.
## Open questions
- Does a recording that appends to a draft keep its own audio clip (one note, many clips), or does each recording become its own entry, grouped visually? Separate entries keep retranscribe and replay simple. Prefer that unless it feels wrong in use.
- Retranscribing an edited entry: replace, keep both, or diff?
- Where post-processing (LLM cleanup) fits: a per-entry action instead of a pipeline step?
- Sync model and encryption for multi-device use.
- Whether this stays a Handy fork or becomes a separate product built on Handy's audio and transcription core.