Files
sst/docs/superpowers/plans/2026-10-01-app-0-overview.md
T

4.0 KiB
Raw Blame History

Sst als volwaardige Mac-app — overzicht van de uitvoeringsplannen

Spec: docs/superpowers/specs/2026-10-01-macos-app-design.md · Tokens: docs/design/tokens.md (bron: Design/tokens.json)

De spec is opgesplitst in vijf plannen. Elk levert op zichzelf werkende, geteste software op en bouwt voort op de vorige. Voer ze in deze volgorde uit, op één branch (feat/macos-app), bij voorkeur met superpowers:subagent-driven-development.

# Plan Levert Tests daarna (per testtarget)
1 2026-10-01-app-1-engine-hooks.md vier additieve raakpunten in de engine: woordenlijst voor de transcriber, niveau-uitvoer, correctie + resultaat-hook, instelbare sneltoets SstCoreTests 41 · SstWhisperTests 4
2 2026-10-01-app-2-data.md SstData: woordenboekbestand, correctieronde, waarschuwingen, voorrangslijst, geschiedenis met zoeken + SstDataTests 54
3 2026-10-01-app-3-ui-kit.md tokens als Swift (gegenereerd), componenten, galerij + SstUITests 15
4 2026-10-01-app-4-shell.md echte Mac-app: Dock, menu's, Instellingen, menubalkitem, icoon, ondertekende bundel SstCoreTests 48 · SstDataTests 56 · SstWhisperTests 11
5 2026-10-01-app-5-main-window.md hoofdvenster: deck, zijbalk, geschiedenis, woordenboek SstDataTests 73 (totaal 147 tests)

Hoe het plan is gecontroleerd

De code in de plannen is niet geraden: elk plan is samengesteld uit bestanden die in een wegwerp-kopie van de repo zijn gecompileerd en getest (alle fasen samen: 147 tests groen, app bouwt, snapshots van het venster bekeken in beide afwerkingen, bundel gebouwd en ondertekend). Bewerkingen aan bestaande bestanden zijn scripts met asserts die bewezen dezelfde eindtoestand opleveren. Onderweg zijn zo ook fouten in de eerste versie van de plannen gevonden en hersteld (ontbrekende import, een te strenge "gewoon woord"-regel, een ontbrekend omgevingsobject, een niet-bestaand-map-bij-voorbeeldgegevens).

Gedeelde namen (de interface tussen de plannen)

Waar Naam
SstCore Transcriber.transcribe(_:vocabulary:), AppliedCorrection, CorrectionResult, TextCorrecting, DictationResult, DictationController(corrector:vocabularyProvider:), onResult, HotkeyBinding, AudioRecorder.onLevel, AudioLevel, GatedInserter, SwappableTranscriber, LevelSource
SstData DictionaryFile, DictionaryEntry, CorrectionEngine, EntryWarnings, VocabularyBuilder, HistoryStore, HistorySearch, DictionaryStore, DictionaryCorrector, AppSettings, HistoryViewModel, DictionaryViewModel, CorrectionMarkup, StopwatchFormat
SstWhisper WhisperKitTranscriber(model:storage:), ModelStorage, ModelCatalog, ModelOption
SstUI Palette, Space, Radius, Border, Size, Layout, Opacity, Typography, Shadows, Motion, MeterTokens, Segment; PhysicalSurface, PanelBackground, WellBackground, DisplayBackground, PaperBackground, SeamDivider, SilkLabel, BrushedBackground, KeyButtonStyle, LampView, RockerToggleStyle, VUMeterView, SegmentCounterView, LEDBarView
Sst AppModel, Strings, AppIdentity, PermissionMonitor, scenes en views

Uitvoeringsadvies

  • Taken met volledige code in het plan (fase 1–3, grote delen van 4 en 5) zijn transcriptie plus testen: een goedkoop model volstaat voor de implementer, een standaardmodel voor de reviewer.
  • Visuele taken (fase 3 taak 6, fase 4 taak 7–8, fase 5 taak 3–6) hebben de gebruiker nodig voor het oordeel; de handmatige acceptatietaken zijn daarom bewust niet voor subagents.
  • Fase 1 taak 5 stap 6 en fase 3 taak 6 vragen om een microfoon, Fn-toets of het scherm van de gebruiker.
  • Na fase 4 moet het oude ad-hoc ondertekende Sst eenmalig zijn rechten opnieuw krijgen (tccutil reset …, door de gebruiker uit te voeren; staat in het plan).

Bewust buiten scope (zie spec)

Overlay-pill, AI-cleanup, streaming, meerdere woordenboeken, import/export van de geschiedenis, notarisatie, DMG, updates, automatisch starten bij inloggen, toggle-modus, definitieve naam en merk.