prd-helpMake your own PRD

Read-only PRD for a coding agent

Biologie-Studierende brauchen ein Lernwerkzeug, das Simulationen (Enzymkinetik,…

17 of 18 sections ready
1. Problem, goal & success metric
  • Problem: Biologie-Studierende brauchen ein Lernwerkzeug, das Simulationen (Enzymkinetik, Räuber–Beute, Populationswachstum, DNA→Protein) mit einer lokalen Skript-Bibliothek und KI-gestützten Quizs/Zusammenfassungen vereint, ohne dass Skriptinhalte den Rechner verlassen.
  • Goal: Eine einzige selbstenthaltene HTML-Datei (~110 kB), die per Doppelklick (file://) läuft, alle Inhalte lokal in localStorage speichert und nur explizite KI-Anfragen mit dem eigenen API-Key an einen OpenAI-kompatiblen Endpoint sendet.
  • Success metric: Alle 11 Abnahmepunkte der Checkliste in Sektion 11 der Spezifikation sind erfüllt; die App funktioniert offline außer bei KI-Aufrufen und CDN-Laden von Chart.js/pdf.js/mammoth.
2. Users & roles

Keine registrierten Nutzer – die App läuft lokal im Browser einer einzelnen Person (Biologie-Studierende). Keine Rollen, kein Multi-User, kein Backend. Alle Daten bleiben auf dem Gerät.

3. Core workflows
  1. Nutzer öffnet die einzelne HTML-Datei biowissenschaften-studio.html per Doppelklick (file://).
  2. Wählt einen Tab: Simulationen, Skript-Bibliothek, Quiz-Studio oder Zusammenfassungen.
  3. Simulationen: Parameter per Slider einstellen, Charts berechnen live, Ergebnisse ablesen.
  4. Bibliothek: Dateien per Drag&Drop oder Klick hochladen, Name/Fach prüfen, dann speichern (kein Auto-Save). PDFs können optional per KI-Vision bildbeschrieben werden.
  5. Quiz-Studio: Skripte auswählen, Anzahl und KI-Konfiguration setzen, Fragen generieren oder Demo-Quiz starten, 5-Optionen-Fragen beantworten, sofortiges Feedback, Ergebnis anzeigen.
  6. Zusammenfassungen: Skripte auswählen, KI-Zusammenfassung anfordern (Begriffe, Kernaussagen, Gliederung), kopieren oder als neues Skript in die Bibliothek speichern.
4. Features & requirements

Zusammenfassungen: Skript-Auswahl (wie Quiz), KI-Zusammenfassung mit drei Ebenen (Schlüsselbegriffe 8–14, Kernaussagen 6–10, Gliederung mit Kernsatz), Kopieren-Button, „Als Skript speichern

5. Scope: must / later / never2 fixes
  • List the must-haves
  • Name at least 2 things the agent must not build

List the must-haves; Name at least 2 things the agent must not build

6. Screens & UI

screens

7. Design system & visual style

Component library: kein externes Framework; reines Vanilla-HTML/CSS/JS in einer Datei, Chart.js 4.4.4 über CDN für Charts, pdf.js 3.11.174 + mammoth 1.9.0 lazy beim ersten PDF-/DOCX-Upload.
Colors (hex, exakt aus Spezifikation):

  • --bg:#f2f7f3, --card:#ffffff, --ink:#16382a, --ink-soft:#40614f, --muted:#6d8a79
  • --green:#2f855a, --green-dark:#1e5631, --green-deep:#123528
  • --line:#dcecdc, --warn:#b3402a, --ok:#256b44
  • Body-Hintergrund: --bg plus zwei radiale Verde-Gradienten (oben rechts #e2f2e6, unten links #e6f2e8)
  • Font: "Segoe UI", system-ui, -apple-system, sans-serif; Basisgröße 15px.
  • Corner radius: --radius:16px (Karten), Tabs 14px/9px, Buttons 12px, Inputs 10px, Segmented-Control 13px.
  • Spacing: Karten-Innenabstand 22px 24px; Dropzone 28px Padding.
  • Light/dark mode: nicht vorgesehen; nur heller Grün/Weiß-Look.
  • Tone: professionell, akademisch, deutsch, ruhig, keine bunten Emojis.
  • Reference apps: wissenschaftliche Lern-Tools (Anki, Quizlet) mit akademischem Green-Theme, aber ohne Spielerei; alle Symbole Inline-SVG-Strich-Icons (flask, books, question, note, paw, trend, dna, microscope, fileplus, file, gear, sparkles, save, pencil, image, folder, outline, key, pin, link, grid, copy, zap, search).
8. Data model

Entität: Bibliothek (biocampus_lib_v1)

fieldtyperequired
idstringyes
namestringyes
kind"PDF""DOCX""TXT""MD"yes
tagstringno
sizenumberyes
addedstring (de-DE Datum)yes
textstring (max 400.000 Zeichen)yes

Entität: KI-Konfiguration (biostudio_ki_cfg_v1)

fieldtyperequired
endpointstringyes
modelstringyes
keystringno (nur wenn Checkbox aktiviert)
9. APIs & integrations

OpenAI-kompatibler Chat-Endpunkt (Default OpenRouter https://openrouter.ai/api/v1, konfigurierbar z. B. https://api.openai.com/v1).
POST /chat/completions mit Authorization: Bearer <Key>, stream:false, Timeout 180 s.

Modell-Fallback-Ketten:

  • Text: ["nvidia/nemotron-3-super-120b-a12b:free","google/gemma-4-26b-a4b-it:free","minimax/minimax-m3.1-flash:free"]
  • Vision: ["google/gemma-4-31b-it:free","nvidia/nemotron-3.5-super-vl:free","google/gemma-4-26b-a4b-it:free","minimax/minimax-m3.1-flash:free"]

Bei 400/429/402/404 zum nächsten Modell springen (nicht bei fehlendem Key). jsonMode → response_format:{type:"json_object"}; bei HTTP 400 mit jsonMode Retry ohne response_format.
CDN-Abhängigkeiten: Chart.js 4.4.4 (Charts), pdf.js 3.11.174 + mammoth 1.9.0 (nur lazy beim ersten PDF-/DOCX-Upload). Keine weiteren Integrationen.

10. Auth, permissions & security

Keine registrierten Nutzer, keine Rollen, kein Backend, kein Multi-User. App läuft lokal im Browser einer einzelnen Person. Alle Daten bleiben auf dem Gerät (localStorage). API-Key wird nur im Browser gespeichert, wenn Checkbox „API-Key in diesem Browser speichern“ aktiviert; sonst nicht gespeichert. Keine Authentifizierung, keine Berechtigungen, keine Verschlüsselung über localStorage hinaus.

11. Performance, privacy & accessibility

Default: Performance <1 s Charts, Privacy keine Daten außer KI, Accessibility Fokusringe + ARIA + Kontraste.

12. Edge cases & errors

Default: kein Internet → CDN-Fehler stumm ignorieren, lokale Funktionen laufen; leerer localStorage → leere Bibliothek; fehlender API-Key → Demo-Quiz verfügbar, KI-Fehlertext; gescanntes PDF ohne Text → Fehlermeldung, kein Save; alle Vision-Seiten leer → Warnung und Abbruch ohne KI-Call; 429/402 → nächster Fallback-Modell; 180 s Timeout → AbortController mit „Zeitüberschreitung“.

13. Stack & constraints

Einzel-HTML-Datei ohne Build-Schritt und ohne Backend.

  • Vanilla HTML/CSS/JS in einer Datei, keine externen Frameworks
  • Chart.js 4.4.4 über CDN (nur für Charts)
  • pdf.js 3.11.174 + mammoth 1.9.0 lazy geladen erst beim ersten PDF-/DOCX-Upload
  • localStorage als einzige Datenhaltung auf dem Gerät
  • Kein Server, kein Hosting, keine Umgebungsvariablen, keine CI/CD
  • API-Key wird nur im Browser-localStorage gespeichert und nur wenn die Checkbox aktiviert ist
  • Sprache: Deutsch, alle Icons als Inline-SVG-Strich-Icons, keine bunten Emojis
14. Existing code & do-not-change

Not needed: Neues Projekt, keine bestehende Codebasis.

15. Build order
  1. Shell & Tabs: Einzel-HTML-Datei, Header, 4 Tabs, Panel-Wechsel per hidden + aria-selected, kein Neuladen.
  2. Simulationen: Enzymkinetik, Lotka–Volterra, Logistik, DNA→Protein (Chart.js via CDN, Formeln exakt nach Spezifikation).
  3. Skript-Bibliothek: Upload (Drag&Drop/Klick), Namensprüf-Karte, lokaler Speicher biocampus_lib_v1, Suche, Sortierung, Umbenennen/Löschen, pdf.js/mammoth lazy.
  4. KI & Quiz/Zusammenfassungen: KI-Konfig (biostudio_ki_cfg_v1), Verbindung testen, Modell-Fallback, Quiz-Studio (KI-Generierung + Demo), Zusammenfassungen (3 Sektionen, Kopieren, Als Skript speichern).
  5. Finish & Acceptance: Alle 11 Checkpunkte der Spezifikation prüfen, Offline-Betrieb außer KI/CDN, keine bunten Emojis, Inline-SVG-Icons.
16. Acceptance criteria & tests
#Check (muss bestanden sein)
A1Einzelne Datei biowissenschaften-studio.html öffnet per Doppelklick (file://) ohne Build-Schritt und zeigt alle 4 Tabs.
A2Tab-Wechsel schaltet Panels per hidden + aria-selected; kein Neuladen.
A3Enzymkinetik: Kurve, Punkt bei [S], Vmax-Asymptote, α-Berechnung und Ergebnis-Kapsel stimmen mit den Formeln überein.
A4Lotka–Volterra: 2 Charts (Zeit + Phasenraum) + Gleichgewichtszeile (H* = γ/δ, P* = α/β).
A5Logistik: Wachstumskurve + gestrichelte K-Linie, Wendepunkt bei N=K/2.
A6DNA→Protein: Transkription T→U, Translation ab AUG, Kodon-Chips, Ein-Buchstaben-Protein.
A7Bibliothek: Drag&Drop → Namensprüf-Karte ohne Auto-Save → Speichern → Eintrag erscheint in biocampus_lib_v1.
A8Suche filtert Name+Fach; Sortierung (Neueste zuerst / Name A–Z) funktioniert; Umbenennen/Löschen über Dialoge.
A9KI-Konfiguration wird in biostudio_ki_cfg_v1 gespeichert (Key nur bei aktivierter Checkbox); Verbindung testen zeigt „✓ Verbunden – N Modelle sichtbar".
A10Quiz-Studio: KI-Generierung erzeugt genau 5 Optionen und 1 Lösung; Erklärungen enthalten nicht „laut des Skripts"; Demo-Quiz ohne Key verfügbar.
A11Zusammenfassungen: 3 Sektionen gerendert (Begriffe/Kernaussagen/Gliederung), Kopieren-Button, „Als Skript speichern" in Bibliothek.
A12Keine bunten Emojis; alle Icons Inline-SVG-Strichstil; UI auf Deutsch.
17. Deployment, environments & secrets

Deployment, environments & secrets

  • Kein Hosting, kein Server, keine Umgebungsvariablen: die App wird als einzelne Datei biowissenschaften-studio.html lokal abgelegt und per Doppelklick über file:// geöffnet.
  • API-Key wird nicht in Umgebungsvariablen gespeichert, sondern nur im Browser-localStorage (biostudio_ki_cfg_v1) und nur wenn die Checkbox „API-Key in diesem Browser speichern" aktiviert.
  • Keine Umgebungen (Staging/Production) nötig; keine CI/CD.
18. Open questions & assumptions
  • Default: Einzel-HTML-Datei ohne Build-Schritt, kein Hosting, lokal per file:// (aus Spezifikation).
  • Default: PDF-Vision und KI-Anfragen sind enthalten; falls pdf.js in der file://-Umgebung nicht rendert, zeigt die App die pdf.js-Fehlermeldung an (kein App-Bug, siehe Spezifikation Sektion 5.2).
  • Default: Keine Verschlüsselung über localStorage hinaus; API-Key liegt im Klartext im Browser.
  • Default: Chart.js 4.4.4, pdf.js 3.11.174 und mammoth 1.9.0 werden über CDN geladen (Internet nur für CDN und KI-Anfragen nötig).
  • Default: UI auf Deutsch, alle Icons als Inline-SVG-Strich-Icons, keine bunten Emojis.
  • Default: keine PWA/ServiceWorker, keine Authentifizierung, keine Multi-User-Rollen.
  • Default: keine weiteren Integrationen neben OpenAI-kompatiblem Chat-Endpunkt (Standard OpenRouter).

Images

screenshot-1.jpg
images/screenshot-1.jpg