T7 „Freihand“: Spracherfassung #27

Open
opened 2026-10-16 05:58:30 +00:00 by Nick.Rosenloecher · 2 comments
Owner

Ziel

Der Imker spricht die Durchsicht, statt Felder zu tippen. Die App macht daraus Vorschläge für die Felder; gespeichert wird nur über das normale „Speichern“.

Umgesetzt

  • Spec docs/superpowers/specs/2026-10-14-t7-sprache-design.md: Stufe 1 Diktat im Browser, Stufe 2 Aufnahme offline → Abschrift mit faster-whisper im Cluster (CronJob apicore-job-voice-transcribe) → Auswertung mit Claude als JSON, Audio danach löschen
  • Umsetzungsplan docs/superpowers/plans/2026-10-16-t7-sprache.md mit 6 Lieferungen und 25 Tasks (L1 Diktat, L2 Datenmodell/API, L3 Abschreiben im Cluster, L4 Auswertung mit Claude, L5 Aufnahme/Warteschlange/Prüfen, L6 Ende-zu-Ende und Doku), Commit 8cacdf17 – lokal, nicht gepusht (Session vs-code-ff, Arbeitsbaum VS Code/ApiCore, Branch main). Der Plan listet geprüfte Widersprüche zwischen Spec und Code samt Auflösung

Offen

  • Plan pushen und reviewen
  • Stufe 1 (reine Frontend-Arbeit) bauen
  • Stufe 2 bauen: Backend, Whisper-Image, Komponente voice in deploy/k8s
  • Messung nach Spec 11.4 auf dem Zielknoten (10 Aufnahmen des Inhabers)
  • TASKS.md: Einordnung „Sprache und KI nicht umsetzbar“ korrigieren (Spec §14.6)

Abhängigkeiten / Blocker

Stufe 2 braucht das Rückgrat-Runbook bis Schritt 4 live (#28) und vom Inhaber: Anthropic-Schlüssel mit Ausgabenlimit, bestätigte DPA, ANTHROPIC_API_KEY und VOICE_ENCRYPTION_KEY als Secret, Datenschutz-Texte.

Offene Entscheidungen

Spec §15 an den Inhaber:

  1. Auswertungsmodell (Empfehlung: Sonnet, der Messtest entscheidet)
  2. Browser-Diktat in der Cloud erlauben? (Empfehlung: nur auf dem Gerät, Cloud nur per Schalter, Standard aus)
  3. Text an Anthropic in die USA in Ordnung? (Empfehlung: ja, mit DPA und Ausgabenlimit)

Zusätzlich aus dem Plan (lokal): A1 Speichern einer Durchsicht bestätigt und löscht eine Sprachnotiz in jedem offenen Zustand? A2 colonyStrength und broodFrames bis 40 und Futter in fünf Stufen wie im Formular? A3 Meldungskategorie SUGGESTION statt SYSTEM? (Empfehlung jeweils: ja bzw. SUGGESTION)

Entschieden (2026-10-13): Whisper im Cluster auf CPU plus Claude-API, nie ohne Bestätigung speichern, Audio danach löschen; keine Stockwaage.

Grundlage

Fahrplan-Spec §10 „T7“, T7-Spec. Teil 4 der Beute (#25) baut darauf auf.

Status

Code: nein (Plan lokal) · Geprüft: nein · Gemergt: nein · Produktiv: nein
Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)

## Ziel Der Imker spricht die Durchsicht, statt Felder zu tippen. Die App macht daraus Vorschläge für die Felder; gespeichert wird nur über das normale „Speichern“. ## Umgesetzt - [x] Spec `docs/superpowers/specs/2026-10-14-t7-sprache-design.md`: Stufe 1 Diktat im Browser, Stufe 2 Aufnahme offline → Abschrift mit faster-whisper im Cluster (CronJob `apicore-job-voice-transcribe`) → Auswertung mit Claude als JSON, Audio danach löschen - [x] Umsetzungsplan `docs/superpowers/plans/2026-10-16-t7-sprache.md` mit 6 Lieferungen und 25 Tasks (L1 Diktat, L2 Datenmodell/API, L3 Abschreiben im Cluster, L4 Auswertung mit Claude, L5 Aufnahme/Warteschlange/Prüfen, L6 Ende-zu-Ende und Doku), Commit 8cacdf17 – **lokal, nicht gepusht (Session vs-code-ff, Arbeitsbaum `VS Code/ApiCore`, Branch main)**. Der Plan listet geprüfte Widersprüche zwischen Spec und Code samt Auflösung ## Offen - [ ] Plan pushen und reviewen - [ ] Stufe 1 (reine Frontend-Arbeit) bauen - [ ] Stufe 2 bauen: Backend, Whisper-Image, Komponente `voice` in `deploy/k8s` - [ ] Messung nach Spec 11.4 auf dem Zielknoten (10 Aufnahmen des Inhabers) - [ ] `TASKS.md`: Einordnung „Sprache und KI nicht umsetzbar“ korrigieren (Spec §14.6) ## Abhängigkeiten / Blocker Stufe 2 braucht das Rückgrat-Runbook bis Schritt 4 live (#28) und vom Inhaber: Anthropic-Schlüssel mit Ausgabenlimit, bestätigte DPA, `ANTHROPIC_API_KEY` und `VOICE_ENCRYPTION_KEY` als Secret, Datenschutz-Texte. ## Offene Entscheidungen Spec §15 an den Inhaber: 1. Auswertungsmodell (Empfehlung: Sonnet, der Messtest entscheidet) 2. Browser-Diktat in der Cloud erlauben? (Empfehlung: nur auf dem Gerät, Cloud nur per Schalter, Standard aus) 3. Text an Anthropic in die USA in Ordnung? (Empfehlung: ja, mit DPA und Ausgabenlimit) Zusätzlich aus dem Plan (lokal): A1 Speichern einer Durchsicht bestätigt und löscht eine Sprachnotiz in jedem offenen Zustand? A2 `colonyStrength` und `broodFrames` bis 40 und Futter in fünf Stufen wie im Formular? A3 Meldungskategorie `SUGGESTION` statt `SYSTEM`? (Empfehlung jeweils: ja bzw. `SUGGESTION`) Entschieden (2026-10-13): Whisper im Cluster auf CPU plus Claude-API, nie ohne Bestätigung speichern, Audio danach löschen; keine Stockwaage. ## Grundlage Fahrplan-Spec §10 „T7“, T7-Spec. Teil 4 der Beute (#25) baut darauf auf. ## Status Code: nein (Plan lokal) · Geprüft: nein · Gemergt: nein · Produktiv: nein Stand: 2026-10-16 (Quelle: git origin/main b48fb157, Cluster-Abfrage 2026-10-16, Session-Status vs-code-ff, Memory)
Nick.Rosenloecher added the art/featureprio/mittelstatus/offen labels 2026-10-16 05:58:30 +00:00
Nick.Rosenloecher added status/in-arbeit and removed status/offen labels 2026-10-16 06:10:58 +00:00
Author
Owner

Stand T7 (2026-10-16):

  • L1 Diktat auf main (1a57de85), CI grün. Prüfung mit echtem Mikrofon in Chrome offen (Inhaber).
  • L2 lokal committet, noch nicht gepusht: Task 4 Datenmodell (af9df0af), Task 10 Wiederholregel und Voice-Claims (2a4dc868), Tasks 5+6 Schlüssel voice und gemeinsamer Kern (9795f980). Je Task Review (Datenbank, Nebenläufigkeit, Sicherheit) und Fix-Runde; Backend-e2e 100 Suites / 1004 Tests grün.
  • Entscheidung Ruling 7: In der Zitatprüfung zählt eine Dezimalzahl als ein Wort („5 Waben“ passt nicht auf „3,5 Waben“; „3.5“ = „3,5“).
  • Als Nächstes: Task 7 (Sprachnotizen-API) und Task 12 (Fachwortliste für Whisper).
  • Offen beim Inhaber: Spec-Fragen 1–3 (Modell, Browser-Cloud, Drittland); Frage 3 entscheidet über Tasks 14–16 und 21.
Stand T7 (2026-10-16): - L1 Diktat auf main (1a57de85), CI grün. Prüfung mit echtem Mikrofon in Chrome offen (Inhaber). - L2 lokal committet, noch nicht gepusht: Task 4 Datenmodell (af9df0af), Task 10 Wiederholregel und Voice-Claims (2a4dc868), Tasks 5+6 Schlüssel `voice` und gemeinsamer Kern (9795f980). Je Task Review (Datenbank, Nebenläufigkeit, Sicherheit) und Fix-Runde; Backend-e2e 100 Suites / 1004 Tests grün. - Entscheidung Ruling 7: In der Zitatprüfung zählt eine Dezimalzahl als ein Wort („5 Waben“ passt nicht auf „3,5 Waben“; „3.5“ = „3,5“). - Als Nächstes: Task 7 (Sprachnotizen-API) und Task 12 (Fachwortliste für Whisper). - Offen beim Inhaber: Spec-Fragen 1–3 (Modell, Browser-Cloud, Drittland); Frage 3 entscheidet über Tasks 14–16 und 21.
Author
Owner

T7 L2 Backend vollständig auf main (gepusht 1dc39f76): Tasks 4–12 außer 13 (Whisper-Image, gehört zu L3). Je Task Review (Datenbank, Nebenläufigkeit, Sicherheit, kombiniert) mit Fix-Runden; Backend 4471 Unit-Tests, e2e 103 Suites grün (bis auf den Wetter-Test gegen die echte API).

Entscheidungen: Ruling 8 (Wiederholen gedrosselt, Obergrenze je Notiz folgt mit dem Auswertungsbudget), Ruling 9 (Auswertung mit Claude, Tasks 14–16 und 21, erst nach Antwort auf Spec-Frage 3), Ruling 10 (Handler auch im Worker, Aufräumen der Sprachnotizen im täglichen Cleanup schon jetzt).

Nächste Schritte: Task 13 (Image apicore-whisper, CronJob-Komponente voice; alle drei Container mit derselben UID), dann L5-Frontend (Aufnahme, Warteschlange, Vorschläge in der Durchsicht).

T7 L2 Backend vollständig auf main (gepusht 1dc39f76): Tasks 4–12 außer 13 (Whisper-Image, gehört zu L3). Je Task Review (Datenbank, Nebenläufigkeit, Sicherheit, kombiniert) mit Fix-Runden; Backend 4471 Unit-Tests, e2e 103 Suites grün (bis auf den Wetter-Test gegen die echte API). Entscheidungen: Ruling 8 (Wiederholen gedrosselt, Obergrenze je Notiz folgt mit dem Auswertungsbudget), Ruling 9 (Auswertung mit Claude, Tasks 14–16 und 21, erst nach Antwort auf Spec-Frage 3), Ruling 10 (Handler auch im Worker, Aufräumen der Sprachnotizen im täglichen Cleanup schon jetzt). Nächste Schritte: Task 13 (Image apicore-whisper, CronJob-Komponente voice; alle drei Container mit derselben UID), dann L5-Frontend (Aufnahme, Warteschlange, Vorschläge in der Durchsicht).
Sign in to join this conversation.