Kairo-Jinkendo/docs/reference/design-principles/shinkan/TRAINING_PLANNING_DESIGN_PRINCIPLES.md
Lars 0e2b938fbd
Some checks failed
Test Suite / lint-backend (push) Waiting to run
Test Suite / build-frontend (push) Waiting to run
Test Suite / k6 /health Baseline (push) Waiting to run
Test Suite / playwright-tests (push) Waiting to run
Deploy Development / deploy (push) Failing after 0s
Test Suite / pytest-backend (push) Has been cancelled
Sprint-0-Grundlagen: Spec-Handover, Designprinzipien-Referenz, Medien optional.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 19:03:57 +02:00

5.0 KiB
Raw Blame History

Training Planning Designprinzipien (Extraktion)

Status: Analyse / Arbeitspapier
Stand: 2026-07-04
Geltungsbereich: Modul „Training Planning“ — Einheiten, Phasen, Rahmen, Coach

Serie: Designprinzipien für Produktfamilie · Shinkan Dokument 9 von 15
Mitai-Vergleich: — (domänenspezifisch)

Kernkomponenten:

Bereich Pfade
Kalender-Einheiten backend/routers/training_planning.py
Module backend/routers/training_modules.py
Rahmen backend/routers/training_framework_programs.py
Phasen/Streams Migration 063; PARALLEL_TRAINING_STREAMS_SPEC.md
Frontend TrainingPlanningPage, TrainingCoachPage, TrainingUnitRunPage
Utils frontend/src/utils/trainingPlanUtils.js

Modul

Training Planning & Frameworks

Planbare Trainingseinheiten mit Sektionen, Phasen (Ganzgruppe/Parallel) und Streams, Bibliotheks-Rahmenprogramme (Ziele/Slots), Trainingsmodule, Materialisierung aus Slots, Durchführungs- und Coaching-Ansichten.


Designprinzipien

1. Einheit als planbares Aggregate

Prinzip training_units + training_unit_sections + Items; Kopf: Gruppe, Datum, Trainer, Status.
Begründung Klare Grenze Kalender vs. Bibliothek.
Quelle Domain Model; training_planning.py
Tragfähigkeit hoch
Einschränkung Große Router-Datei — Refaktor-Schuld.

2. Phasen/Streams als explizites Modell (nicht Marker-Sektionen)

Prinzip training_unit_phases + training_unit_parallel_streams; Sektionen an Phase oder Stream gebunden.
Begründung Breakout-Trainings fachlich korrekt; Coach/Rejoin-Logik.
Quelle PARALLEL_TRAINING_STREAMS_SPEC.md
Tragfähigkeit hoch
Einschränkung Legacy-Einheiten → Default-Ganzgruppenphase; Vorlagen-Phasen teils offen.

3. API: verschachtelte phases + flache sections

Prinzip GET liefert beides; PUT akzeptiert phases atomar; höchstens eines von phases/sections/exercises pro Request.
Begründung Frontend normalisiert; Server validiert CHECK-Regeln.
Quelle Spec §4; Planning-Router
Tragfähigkeit hoch
Einschränkung Server-Spiegelung neuer Abschnitte in phases — Handover offen.

4. Rahmen-Bibliothek: Slot = Blueprint-Unit

Prinzip framework_slot_id auf Blueprint-training_units; Materialisierung → Kalender-Einheit für Gruppe.
Begründung Wiederverwendbare Programme ohne Duplikat-Logik pro Slot-Typ.
Quelle Migration 035037
Tragfähigkeit hoch
Einschränkung UI „Aus Rahmen übernehmen“ nicht flächendeckend.

5. Trainingsmodule als wiederverwendbare Übungsfolgen

Prinzip Bibliotheks-Objekt mit Skill-Profil; Übernahme in geplante Einheit.
Begründung Trainer-Bausteine zwischen Einzelübung und Rahmen.
Quelle training_modules.py; Skill Scoring Phase 3
Tragfähigkeit hoch
Einschränkung

6. Drei Durchführungsmodi getrennt

Prinzip Planung (edit) · Plan & Ablauf (run) · Coaching (step timeline, Stream-Picks, Nachbereitung).
Begründung Unterschiedliche UX und Payloads; Coach speichert → Run-Ansicht.
Quelle Nutzerfunktionen §4.4; TrainingCoachPage
Tragfähigkeit hoch
Einschränkung Stream-Tabs in Run-Ansicht optional offen.

7. Governance über Gruppe/Verein, keine neuen Mandanten-Entitäten

Prinzip Einheit → training_group → Verein; Access Layer für Bibliotheks-Rahmen/Module.
Begründung Planung erbt Organisations-Kontext.
Quelle PARALLEL_TRAINING_STREAMS_SPEC.md §4
Tragfähigkeit hoch
Einschränkung Stream-Trainer-Zuweisung UI unvollständig.

8. Kombinationsübungen in Planung transparent

Prinzip Items ohne Variante; Coach zeigt Stations-Kandidaten + Archetyp-Hinweise.
Begründung Gleiche Item-Schicht für Standard- und Kombi-Übungen.
Quelle Migration 057; Kombinations-Spec Anhang A
Tragfähigkeit mittel
Einschränkung Archetyp-Stufen B/C ausbaubar.

Nicht übernehmen

  1. Parallele Phasen als reine UI-Konvention ohne DB-Phasen — Minimalvariante verworfen.
  2. Rahmen-Slots als separate Exercise-Join-Tabelle — Legacy training_framework_slot_exercises abgelöst.
  3. Planungs-KI direkt in Router-Strings — AI Prompt Runtime nutzen.
  4. Blueprint-Einheiten in Kalenderlisten — Filter framework_slot_id IS NOT NULL.

Verwandte Dokumentation