Atomic tasks β every item cites a SPEC and maps to a PR. Agent contributors should claim a task by opening a draft PR; see AGENTS.md.
docs/SPECS/<id>.md exists; ready to claim| Β | Task | Spec | Notes |
|---|---|---|---|
| π΅ | Agent session protocol + PassthroughAgent + conversation panel |
SPEC-006 | M |
| π΅ | ClaudeCodeAgent β long-lived subprocess, streaming events |
SPEC-006 | M |
| π΅ | Approval prompt UX (overlay morph + buttons) | SPEC-006 | S |
| π΅ | Settings β Privacy + Agent panes | SPEC-006 | S; lands with agent impl |
| π΅ | TextPolishEngine protocol + OllamaPolishEngine (HTTP) |
SPEC-007 | S |
| π΅ | MLXLMPolishEngine (in-process via mlx-swift-lm) |
SPEC-007 | M |
| π΅ | Settings β Polish pane (engine picker, model picker) | SPEC-007 | S |
| π΅ | Bench polish WER delta + latency on openquack-bench |
SPEC-007 | S |
| π΅ | Domain-term accuracy bench (e.g. βClaude Codeβ not βcloud codeβ) | SPEC-007 | S |
| π΅ | βSend-confidenceβ bench: % of utterances clean enough to ship as-is | SPEC-007 | S |
| π΅ | Custom dictionary auto-learn: diff transcript vs. committed text, surface candidates with β₯3 occurrences as βAdd to dictionaryβ nudge; export correction log as pre-filled GitHub issue template | SPEC-022 | M |
| π΅ | fn / Globe key as a bindable hotkey: bare fn or fn+key, opt-in alongside existing ββ§Space; fixes onboarding picker silently ignoring fn (#23) |
SPEC-003a | S |
| π‘ | Mandarin auto-detect fix: categorical failure-mode metrics + zh corpus expansion (PR-A); token suppression + script-match retry (PR-B) β issue #17 | SPEC-021 | S |
| βͺ | OllamaAgent (local HTTP) |
SPEC-006 ext | S |
| βͺ | MLXLMAgent (in-process via mlx-swift-lm) |
SPEC-006 ext | M |
| βͺ | Active-app context: feed foreground app + focused field text into Whisper prompt bias and polish/agent prompt | β | M |
| π΅ | Per-app tone profiles: bundle-ID β preset (technical / formal / casual / neutral) with custom prompt field; auto-switches on hotkey fire β issue #24 | SPEC-024 | M; needs SPEC-007 first |
| π΅ | Launch at login (SMAppService toggle in Settings β General) β issue #29 | SPEC-023 | S |
| βͺ | Investigate streaming for medium-length (15β30s) audio: bench WER vs. wall-time at lower targetChunkSeconds |
SPEC-012 ext | S |
| βͺ | Live partial transcripts in pill/popover while speaking | β | M |
| βͺ | System-audio capture (meeting mode) | β | ScreenCaptureKit |
| βͺ | Multilingual UI strings | β | follow Whisper language menu |
| βͺ | Action confirmation UI for high-risk agent calls | β | privacy gate |
| βͺ | Per-agent transcript history pane (opt-in, local-only) | β | β |
| βͺ | Code signing + notarisation | β | S |
| βͺ | Sparkle auto-update | β | S |
| βͺ | Demo gif + landing page (GitHub Pages) | β | S |
| βͺ | Linux / Windows ports | β | post-2.0 |
| π’ | Send-feedback menu item β one click from status item to GitHub issue chooser | SPEC-018 | merged in #5 |
| π’ | Usage stats pane: words dictated, time saved, audio processed β local-only | SPEC-013 | merged in c91da06 |
| π’ | Local audio + transcript history β local-only, retention cap | SPEC-014 | merged in c91da06 |
| π’ | Stream transcription for long audio (>~30s) β chunk while recording | SPEC-012 | perf; user never sees partials |
| π’ | App shell β SwiftPM target, menu bar, About panel | SPEC-010 | β |
| π’ | Audio capture β AVAudioEngine β 16 kHz mono WAV | SPEC-001 | β |
| π’ | Global hotkey (ββ§Space toggle, KeyboardShortcuts pkg) | SPEC-003 | β |
| π’ | Record β WhisperKit medium (en) β transcript in popover + clipboard |
SPEC-002 | β |
| π’ | Floating recording-state pill (top-centre, click-through) | SPEC-004 | β |
| π’ | CGEvent βV auto-paste at cursor (Accessibility prompt + clipboard fallback) | SPEC-005 | β |
| π’ | Onboarding flow (Welcome β Mic β Paste β Hotkey β Done) | β | β |
| π’ | Settings scene MVP (General / Models / Shortcut / About) | β | β |
| π’ | Smart text post-processing (capitalise, punct, fillers) | β | β |
| π’ | Live level meter + push-to-talk | SPEC-001 ext | β |
| π’ | VAD auto-stop + sounds + custom dictionary | β | β |
| π’ | App icon (procedural cream-gradient duck) | β | β |
| π’ | DMG + Homebrew cask + README polish | β | β |
| π’ | WhisperKit engine | SPEC-002 | primary; Apple Silicon Metal |
| π’ | Lightning engine (Python subprocess) | SPEC-002 | bench-only baseline |
| π’ | Metrics: WER / CER / RTF / RSS / cold-start | SPEC-002 | OpenQuackKit/Metrics/ |
| π’ | Corpus: 177 clips (TTS / multilingual / LibriSpeech / noise-aug) | β | bench/corpus/ |
| π’ | Bench rerun on enriched corpus β BENCHMARKS.md | β | M4/16GB matrix |
| π’ | openquack-cli (single-file transcribe) |
SPEC-002 | β |
| π’ | SPM scaffolding (Kit + bench + CLI) | β | Package.swift, three targets |
| π’ | Vision + roadmap + AGENTS.md + spec scaffold | β | β |