- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren - DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues - .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08) - Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben - docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md - CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht Made-with: Cursor
16 KiB
Offene Entscheidungen: Placeholder-Audit
Audit-Datum: 29. März 2026 Status: Pending Product/Tech Review Entscheidungsträger: Product Manager + Tech Lead
ENTSCHEIDUNGSPFLICHTIGE PUNKTE
Diese Punkte können nicht rein aus Code und Fachlogik gelöst werden und benötigen eine Produkt-/Fachentscheidung.
KATEGORIE 1: Zeitfenster-Klassifizierung (BLOCKING P0)
E1.1: Scores - Zeitfenster definieren
Betroffene Platzhalter: 6
activity_scorenutrition_scorerecovery_scorebody_progress_scoregoal_progress_scoredata_quality_score
Problem: Scores kombinieren verschiedene Zeitfenster-Metriken. Welches Zeitfenster soll dokumentiert werden?
Optionen:
| Option | Beschreibung | Pro | Contra |
|---|---|---|---|
A: custom |
Scores haben keinen festen Zeitrahmen | Technisch korrekt | Unspezifisch für User |
B: mixed |
Scores kombinieren verschiedene Zeitfenster explizit | Kommuniziert Komplexität | Ähnlich unklar wie custom |
| C: Dominantes Zeitfenster | Z.B. 28d für nutrition_score (da Hauptkomponenten 28d) |
Einfach zu verstehen | Vereinfachung, evtl. irreführend |
| D: Zeitfenster pro Sub-Score dokumentieren | Semantic Contract listet alle Sub-Zeitfenster | Vollständig transparent | Komplex für einfache Use-Cases |
Empfehlung Audit-Agent:
- Option D für
semantic_contract(vollständige Transparenz) - Option B für
time_windowMetadatum (signalisiert Komplexität)
Beispiel (nutrition_score):
{
"key": "nutrition_score",
"time_window": "mixed",
"semantic_contract": "Composite Score aus: energy_balance (7d), protein_adequacy (28d), macro_consistency (28d). Gewichtung: 40%/40%/20%"
}
Entscheidung benötigt bis: P0 Week 1 (Zeitfenster-Klassifizierung) Impact: MEDIUM (betrifft Prompt-Interpretation) Entscheider: Product Manager
E1.2: Ability Balance - Zeitfenster definieren
Betroffene Platzhalter: 5
ability_balance_coordinationability_balance_enduranceability_balance_mentalability_balance_mobilityability_balance_strength
Problem: Code implementiert noch keine Ability Balance-Berechnung. Welches Zeitfenster ist fachlich sinnvoll?
Optionen:
| Option | Beschreibung | Pro | Contra |
|---|---|---|---|
A: 28d |
Rolling-Window über 28 Tage | Konsistent mit anderen Trend-Metriken | Evtl. zu lang für Balance-Shifts |
B: 14d |
Rolling-Window über 14 Tage | Schnellere Reaktion auf Training-Changes | Weniger stabil bei Lücken |
C: latest |
Snapshot der aktuellen Balance | Einfach | Keine Trend-Info |
Empfehlung Audit-Agent:
- Option A (
28d) - Konsistent mit body_metrics, ausreichend stabil
Rationale:
- Ability Balance = Verteilung der Trainings-Last über Fähigkeiten
- 28 Tage = ~4 Wochen = typischer Mikrozyklus
- Matching mit anderen Tracking-Metriken
Entscheidung benötigt bis: P0 Week 1 Impact: MEDIUM (betrifft zukünftige Implementierung) Entscheider: Product Manager + Training-Experte
E1.3: Correlations - Zeitfenster definieren
Betroffene Platzhalter: 5
correlation_energy_weight_lagcorrelation_load_hrvcorrelation_load_rhrcorrelation_protein_lbmcorrelation_sleep_recovery
Problem: Korrelationen brauchen Mindestdaten. Welches Zeitfenster ist statistisch sinnvoll?
Optionen:
| Option | Beschreibung | Pro | Contra |
|---|---|---|---|
A: 28d |
Min 21-28 Paare für Reliability | Statistisch robust | Reagiert langsam auf Änderungen |
B: custom |
Variabel je nach Datenverfügbarkeit | Flexibel | Unklar für User |
| C: Im Semantic Contract spezifizieren | Z.B. "28d min, 90d ideal" | Transparent | Komplex |
Empfehlung Audit-Agent:
- Option A (
28d) fürtime_window - Option C zusätzlich in
semantic_contract
Beispiel:
{
"key": "correlation_energy_weight_lag",
"time_window": "28d",
"semantic_contract": "Lag-Korrelation (0d/3d/7d/14d) zwischen Energiebilanz und Gewicht. Min 21 Paare (28d) für Reliability, 90d ideal. Explorativ, nicht kausal."
}
Entscheidung benötigt bis: P0 Week 1 Impact: MEDIUM (betrifft Statistik-Interpretation) Entscheider: Tech Lead (Statistik-Know-how)
E1.4: Goals & Focus - Zeitfenster definieren
Betroffene Platzhalter: 16
active_goals_json,active_goals_mdfocus_areas_weighted_json,focus_areas_weighted_md,focus_area_weights_jsontop_goal_name,top_goal_progress_pct,top_goal_statustop_3_goals_behind_schedule,top_3_goals_on_track,top_3_focus_areasfocus_cat_körper_progress,focus_cat_ernährung_progress,focus_cat_aktivität_progress,focus_cat_recovery_progress,focus_cat_vitalwerte_progress,focus_cat_mental_progress,focus_cat_lebensstil_progress(jeweils + weight)
Problem: Goals sind Snapshots, aber Progress wird über Zeit berechnet. Wie klassifizieren?
Optionen:
| Option | Beschreibung | Pro | Contra |
|---|---|---|---|
A: latest |
Aktueller Stand der Goals | Technisch korrekt (Snapshot) | Impliziert keine Zeit-Dimension |
B: custom |
Progress-Berechnung ist zeitabhängig | Signalisiert Komplexität | Unklar für Snapshot-Werte |
| C: Differenzierung | active_goals_json: latest, Progress-Felder: custom |
Präzise | 16 individuelle Entscheidungen |
Empfehlung Audit-Agent:
- Option C (Differenzierung):
- Snapshot-Platzhalter (active_goals_json, focus_area_weights_json, top_goal_name):
latest - Progress-Platzhalter (top_goal_progress_pct, focus_cat_*_progress):
custom(da verschiedene Ziele verschiedene Zeiträume haben)
- Snapshot-Platzhalter (active_goals_json, focus_area_weights_json, top_goal_name):
Entscheidung benötigt bis: P0 Week 1 Impact: LOW (primär dokumentarisch) Entscheider: Product Manager
E1.5: Snapshots - Zeitfenster definieren
Betroffene Platzhalter: 7
bmigoal_weight,goal_bf_pctwaist_hip_ratiorecomposition_quadrantplateau_detectedtop_drivers
Problem: Einige sind echte Snapshots (bmi, goal_weight), andere berechnete Werte über Zeit (recomposition_quadrant, plateau_detected).
Optionen:
| Option | Beschreibung | Pro | Contra |
|---|---|---|---|
A: Alle latest |
Vereinfachung | Einfach | Ungenau für berechnete |
| B: Differenzierung | bmi/goal_weight: latest, recomposition_quadrant/plateau_detected: 28d |
Präzise | 7 individuelle Entscheidungen |
Empfehlung Audit-Agent:
- Option B:
- Echte Snapshots (bmi, goal_weight, goal_bf_pct, waist_hip_ratio):
latest - Berechnete über Zeit (recomposition_quadrant, plateau_detected, top_drivers):
28dodercustom
- Echte Snapshots (bmi, goal_weight, goal_bf_pct, waist_hip_ratio):
Entscheidung benötigt bis: P0 Week 1 Impact: LOW Entscheider: Tech Lead
KATEGORIE 2: Integration ungenutzter Platzhalter (P2)
E2.1: Ungenutzte Platzhalter - Roadmap-Priorisierung und Integration-Timeline
Betroffene Platzhalter: 67 (ungenutzt)
Kontext: 67 Platzhalter (60%) haben 0 Verwendungen. WICHTIG: Dies ist kein Deprecation-Bedarf, sondern Integration-Planung.
Fachliche Klassifizierung (siehe USAGE_ROLE_CLASSIFICATION.md):
- 30 Platzhalter (45%): Explizit in Roadmap Phase 0c/1/2 geplant
- 37 Platzhalter (55%): Fachlich plausibel, noch nicht in Prompts integriert
- 0 Platzhalter: Redundant oder deprecation-würdig
Neue Fragestellung: Nicht "Behalten oder Deprecaten?", sondern "WANN und WIE integrieren?"
Sub-Entscheidungen:
E2.1.1: Geplante Platzhalter (30) - Integration-Timeline bestätigen
Platzhalter-Gruppen:
- Scores (6): activity_score, nutrition_score, recovery_score, body_progress_score, goal_progress_score, data_quality_score
- Roadmap: Phase 0c (Multi-Layer Architecture) + Phase 1 (Charts)
- Correlations (5): energy_weight_lag, load_hrv, load_rhr, protein_lbm, sleep_recovery
- Roadmap: Phase 2 (Engagement - Korrelationen)
- Ability Balance (5): coordination, endurance, mental, mobility, strength
- Roadmap: Phase 1 (Charts - Training Balance)
- Goals Details (11): active_goals_json/md, focus_areas_weighted, top_3_goals_, focus_cat__progress
- Roadmap: Phase 0b/0c (Backend DONE, Prompt-Integration ausstehend)
- Sleep/Plateau/Drivers (3): sleep_debt, plateau_detected, top_drivers
- Roadmap: Phase 1/2 (Diagnostics)
Frage: Timeline bestätigen oder anpassen?
Optionen:
- A: Roadmap wie geplant - Phase 0c/1/2 (nächste 6-12 Wochen)
- B: Priorisierung anpassen - Quick Wins zuerst (z.B. Goals Details sofort)
- C: Prototyping - 5-10 Beispiel-Prompts erstellen (Wert demonstrieren)
Empfehlung: C → B → A (Prototyping zeigt Wert, dann Priorisierung, dann Roadmap)
E2.1.2: Plausible Platzhalter (37) - Prompt-Use-Cases identifizieren
Platzhalter-Gruppen:
- Body Deltas (5): arm_28d_delta, chest_28d_delta, hip_28d_delta, thigh_28d_delta, waist_28d_delta
- Nutrition Details (6): energy_deficit_surplus, intake_volatility, nutrition_days, protein_days_in_target, protein_ziel_low/high
- Training Quality/Load (3): monotony_score, strain_score, rest_day_compliance
- Focus Category Weights/Progress (14): focus_cat_weight, focus_cat_progress
- Meta/Convenience (9): bmi, waist_hip_ratio, datum_heute, zeitraum_*
Frage: Für welche Use-Cases Prompt-Templates erstellen?
Optionen:
- A: Alle 37 dokumentieren - Vollständig, aber aufwändig
- B: Quick Wins (10-15) - Offensichtliche Use-Cases zuerst
- C: Warten bis Bedarf - Nur auf Anfrage aktivieren
Empfehlung: B (10-15 Quick Wins: Body Deltas für Fortschritts-Prompts, Nutrition Details für Coaching-Prompts, Focus Category für Dashboard-Widgets)
Entscheidung benötigt bis: P2 Week 4 Impact: MEDIUM (Prompt-Bibliothek Vollständigkeit) Entscheider: Product Manager + Tech Lead Methode: Integration-Planungs-Meeting (4-6h, siehe Maßnahmenplan P2.2 REVIDIERT)
KATEGORIE 3: Production-Readiness-Kriterien (P2)
E3.1: Welche Platzhalter sind Production-Ready?
Problem:
Aktuell haben alle 111 schema_status: draft. Welche Kriterien für production?
Vorgeschlagene Kriterien (aus Maßnahmenplan):
metadata_completeness_score >= 80used_by.prompts.length >= 1 OR used_by.pipelines.length >= 1time_window != 'unknown'category != 'Unknown'description != 'No description available'confidence_logic != null OR (type == 'atomic' AND time_window == 'latest')known_issues.length == 0
Frage: Sind diese Kriterien zu streng/zu locker?
Optionen:
- A: Wie vorgeschlagen - Balanced
- B: Strengere Kriterien - Z.B.
used_by >= 3,completeness_score >= 90 - C: Lockerere Kriterien - Z.B.
completeness_score >= 60, keine Usage-Requirement
Empfehlung: A (wie vorgeschlagen)
Zusatzfrage: Soll es Zwischen-Status geben (beta, stable)?
Optionen:
- A: Nur draft/production - Einfach
- B: draft/beta/stable/production - Differenzierter
Empfehlung: B (mehr Nuancen ermöglichen schrittweise Freigabe)
Entscheidung benötigt bis: P2 Week 4 Impact: MEDIUM (Governance) Entscheider: Tech Lead + Product Manager
KATEGORIE 4: Neue Platzhalter (FUTURE)
E4.1: Requirements Dev vs. Extended Catalog - Wie priorisieren?
Problem:
- requirements_dev.md schlägt 27 neue Platzhalter vor (P1-P27)
- Extended Catalog hat bereits 111
- Viele der "neuen" sind evtl. schon abgedeckt
Frage: Sollen die 27 P1-P27 implementiert werden, oder sind sie durch bestehende abgedeckt?
Beispiele:
- P1:
goal_summary_json- Abgedeckt durchactive_goals_json+active_goals_md? - P2:
focus_area_summary_json- Abgedeckt durchfocus_areas_weighted_json? - P5:
domain_availability_json- Neu, nicht vorhanden - P12:
body_change_summary_json- Teilweise durchcaliper_summary,circ_summary
Empfehlung:
- Mapping-Exercise: Neue vs. Bestehende
- Gap-Analyse: Welche sind echte Lücken?
- Priorisierung: Nur echte Gaps implementieren
Entscheidung benötigt bis: Nach P2 (Phase 1b Planning) Impact: HIGH (Feature-Roadmap) Entscheider: Product Manager + Tech Lead
KATEGORIE 5: Governance-Prozesse (POST-AUDIT)
E5.1: Wie werden neue Platzhalter künftig validiert?
Problem: Aktuell gibt es keine systematische Validierung neuer Platzhalter gegen Normative Spec.
Frage: Soll ein Pre-Commit-Hook/CI-Check eingeführt werden?
Optionen:
- A: Manuelle Reviews - Flexibel, aber fehleranfällig
- B: Automated Checks - Robust, aber Aufwand für Setup
- C: Hybrid - Automated Checks + manuelle Review für komplexe Fälle
Empfehlung: C (Hybrid)
Entscheidung benötigt bis: Nach P2 (Tooling-Phase) Impact: HIGH (langfristige Qualität) Entscheider: Tech Lead
E5.2: Wer ist Owner für Placeholder-Governance?
Problem: Aktuell kein klarer Owner für Placeholder-Lifecycle.
Frage: Soll es eine dedizierte Rolle geben?
Optionen:
- A: Tech Lead - Technische Verantwortung
- B: Product Manager - Fachliche Verantwortung
- C: Shared (beide) - Consensus-basiert
- D: Dedizierte Rolle "Data-Contract-Owner" - Spezialisiert
Empfehlung: C (Shared) für jetzt, D langfristig
Entscheidung benötigt bis: Nach P2 Impact: MEDIUM (Governance) Entscheider: Management
KATEGORIE 6: Technische Schulden (POST-P2)
E6.1: Legacy-String "nicht verfügbar" - Wann abschalten?
Problem: P1.6 führt Dual-Mode ein (Legacy + Structured). Wann soll Legacy deprecated werden?
Optionen:
- A: Nach 3 Monaten - Schnell
- B: Nach 6 Monaten - Standard
- C: Nach 12 Monaten - Konservativ
- D: Nie (dauerhaft Dual-Mode) - Ewig Backward-Compatible
Empfehlung: B (6 Monate) mit klarer Migration-Guidance
Entscheidung benötigt bis: P1 Abschluss (Sunset-Datum festlegen) Impact: MEDIUM (Breaking Change für Prompts) Entscheider: Tech Lead + Prompt-Autoren
ZUSAMMENFASSUNG OFFENER ENTSCHEIDUNGEN
| ID | Kategorie | Entscheidung | Dringlichkeit | Entscheider |
|---|---|---|---|---|
| E1.1 | Zeitfenster Scores | custom/mixed/dominant? | 🔴 P0 Week 1 | Product |
| E1.2 | Zeitfenster Ability Balance | 28d/14d/latest? | 🔴 P0 Week 1 | Product + Training-Expert |
| E1.3 | Zeitfenster Correlations | 28d mit Min-Data? | 🔴 P0 Week 1 | Tech Lead |
| E1.4 | Zeitfenster Goals & Focus | latest/custom/differenziert? | 🔴 P0 Week 1 | Product |
| E1.5 | Zeitfenster Snapshots | latest/differenziert? | 🔴 P0 Week 1 | Tech Lead |
| E2.1 | Integration-Timeline | 67 ungenutzte integrieren | 🟡 P2 Week 4 | Product |
| E3.1 | Production-Kriterien | draft/beta/stable/production? | 🟡 P2 Week 4 | Tech + Product |
| E4.1 | Neue Platzhalter P1-P27 | Welche implementieren? | 🟢 Post-P2 | Product |
| E5.1 | Validierungs-Prozess | Automated/Manual/Hybrid? | 🟢 Post-P2 | Tech Lead |
| E5.2 | Governance-Owner | Wer verantwortet Placeholders? | 🟢 Post-P2 | Management |
| E6.1 | Legacy-Sunset | Wann "nicht verfügbar" abschalten? | 🟡 P1 Abschluss | Tech Lead |
Legende:
- 🔴 BLOCKING (P0) - Entscheidung innerhalb Week 1 benötigt
- 🟡 HIGH (P1-P2) - Entscheidung innerhalb Week 4-5 benötigt
- 🟢 MEDIUM (Post-P2) - Kann warten
EMPFOHLENER ENTSCHEIDUNGS-PROZESS
Week 1 (P0 Kickoff)
- Meeting (2h): Product + Tech Lead + Training-Expert
- Agenda:
- E1.1-E1.5: Alle Zeitfenster-Entscheidungen
- Decision-Log erstellen
- Output: Entschiedene Zeitfenster für alle 39 unkla
ren Platzhalter
Week 4 (P2)
- Meeting (2h): Product + Tech Lead
- Agenda:
- E2.1: Deprecation-Review (67 ungenutzte)
- E3.1: Production-Kriterien
- Output: Deprecation-Liste, Production-Kriterien finalisiert
Post-P2
- Meeting (1h): Management + Tech + Product
- Agenda:
- E4.1: Neue Platzhalter-Roadmap
- E5.1-E5.2: Governance-Prozesse
- E6.1: Legacy-Sunset-Datum
- Output: Langfristige Placeholder-Governance etabliert
NÄCHSTE SCHRITTE
- Dieses Dokument reviewen mit Product Manager
- P0-Meeting ansetzen (Week 1) für Zeitfenster-Entscheidungen
- Decision-Log starten (Living Document)
- Nach Entscheidungen: Maßnahmenplan P0 final anpassen
Offene Entscheidungen dokumentiert von: Claude Code (Lead Audit Agent) Review benötigt von: Product Manager + Tech Lead Deadline kritische Entscheidungen: P0 Week 1 (innerhalb 1 Woche)