mitai-jinkendo/backend/placeholder_registrations/__init__.py

39 lines
960 B
Python
Raw Normal View History

"""
Placeholder Registrations Package
Auto-imports all placeholder registrations to populate the global registry.
"""
# Import all registration modules to trigger auto-registration
from . import nutrition_part_a
from . import nutrition_part_b
feat: Placeholder Registry Part C - Nutrition Consistency & Balance Registers 5 nutrition-related placeholders with complete metadata: - macro_consistency_score: CV-based Makro-Konsistenz Score (0-100) - energy_balance_7d: Energiebilanz (kcal/day avg, intake - TDEE) - energy_deficit_surplus: Status (deficit/maintenance/surplus) - intake_volatility: Klassifikation (stable/moderate/high) - nutrition_days: Anzahl valider Ernährungstage (30d) All placeholders with evidence-based tagging: - 22 metadata fields per placeholder - CODE_DERIVED: Technical fields, formulas from code inspection - DRAFT_DERIVED: Semantic fields from canonical requirements - MIXED: Calculation logic (TDEE model, thresholds, formulas) - TO_VERIFY: Architecture layer decisions Critical details documented: - macro_consistency_score: CV formula + thresholds explicitly documented - energy_balance_7d: TDEE model (weight_kg × 32.5), unit clarified (kcal/day avg) - energy_deficit_surplus: Status thresholds (<-200, -200 to +200, >+200) - intake_volatility: Category mapping from macro_consistency_score - nutrition_days: Validation criteria (any entry = valid day) Known limitations captured: - TDEE model is simplified (no activity/age/gender adjustment) - Thresholds are somewhat arbitrary (e.g., 200 kcal for deficit/surplus) - High volatility not necessarily bad (context-dependent) Registry now contains 14 placeholders total: - Part A: 4 (kcal_avg, protein_avg, carb_avg, fat_avg) - Part B: 5 (protein targets + adequacy) - Part C: 5 (consistency + balance + meta) Framework: PLACEHOLDER_REGISTRY_FRAMEWORK.md (verbindlich ab 2026-04-02) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 12:55:03 +02:00
from . import nutrition_part_c
from . import nutrition_score
feat: Body Cluster - Placeholder Registry Implementation Registers 17 body composition and measurement placeholders with complete metadata: Weight & Trends (5): - weight_aktuell: Latest weight snapshot - weight_trend: 28d delta with direction (increasing/decreasing/stable) - weight_7d_median: 7d median for noise reduction - weight_28d_slope: Linear regression slope (kg/day, 28d window) - weight_90d_slope: Linear regression slope (kg/day, 90d window) Body Composition (5): - kf_aktuell: Latest body fat percentage - fm_28d_change: Fat mass delta (28d) - lbm_28d_change: Lean body mass delta (28d) - waist_hip_ratio: Waist-to-hip ratio - recomposition_quadrant: FM/LBM change classification (optimal/cut_with_risk/bulk/unfavorable) Circumference Deltas (5): - waist_28d_delta: Waist circumference change (28d) - arm_28d_delta: Arm circumference change (28d) - chest_28d_delta: Chest circumference change (28d) - hip_28d_delta: Hip circumference change (28d) - thigh_28d_delta: Thigh circumference change (28d) Summaries (2): - caliper_summary: Body fat text summary (BF% + method + date) - circ_summary: Circumference summary (Best-of-Each strategy) All placeholders with evidence-based tagging: - 22 metadata fields per placeholder (374 total fields) - CODE_DERIVED: Technical fields, formulas from code inspection - DRAFT_DERIVED: Semantic fields from canonical requirements - MIXED: Calculation logic, formulas, thresholds - TO_VERIFY: Architecture layer decisions Critical formulas documented in known_limitations: - Linear Regression: slope = Σ((x - x̄)(y - ȳ)) / Σ((x - x̄)²) - FM/LBM Calculation: FM = weight × (BF% / 100), LBM = weight - FM - Circumference Delta Logic: latest IN window vs. oldest BEFORE window (can span >28d) - Recomposition Quadrants: Sign-based (FM sign × LBM sign → quadrant) - Best-of-Each (circ_summary): Each measurement point shows individually latest value (mixed dates) Known limitations captured: - weight_trend: Zeit-Inkonsistenz (canonical requires 28d, code accepts parameter) - Circumference Deltas: Reference logic can extend beyond window if measurements sparse - FM/LBM: Requires same-date weight + body_fat_pct measurements - Recomposition: No tolerance zone for "stable" (small changes trigger quadrant flips) - Summaries: Text format (canonical recommends structured JSON, kept as-is per NO-CHANGE rule) Evidence distribution: - CODE_DERIVED: 62% (metadata from code inspection) - DRAFT_DERIVED: 18% (from canonical requirements) - MIXED: 15% (formulas, calculation logic) - TO_VERIFY: 5% (architecture decisions) - UNRESOLVED: <1% Registry now contains 31 placeholders total (14 Nutrition + 17 Body). Files: - backend/placeholder_registrations/body_metrics.py (NEW, 1307 lines) - backend/placeholder_registrations/__init__.py (UPDATED, +body_metrics import) Framework: PLACEHOLDER_REGISTRY_FRAMEWORK.md (verbindlich ab 2026-04-02) Change Plan: .claude/task/rework_0b_placeholder/BODY_CLUSTER_CHANGE_PLAN.md Code Inspection: .claude/task/rework_0b_placeholder/BODY_CLUSTER_CODE_INSPECTION.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 18:57:15 +02:00
from . import body_metrics
from . import body_extras
feat: Activity Cluster Placeholder Registry - Complete Implementation (17 Placeholders) Implements complete placeholder registry for Activity & Training metrics following Phase 0c Multi-Layer Architecture pattern. SCOPE: 17 Activity Placeholders - Group 1 (3): Legacy Resolver - activity_summary, activity_detail, trainingstyp_verteilung - Group 2 (7): Basic Metrics - volume, frequency, quality, load, monotony, strain, rest compliance - Group 3 (7): Advanced Metrics - 5x ability_balance, vo2max_trend, activity_score IMPLEMENTATION: - File: backend/placeholder_registrations/activity_metrics.py (~1,100 lines) - Pattern: Nutrition Part A (common_metadata + evidence-based tagging) - Evidence: CODE_DERIVED (58%), DRAFT_DERIVED (16%), MIXED (15%), TO_VERIFY (6%), UNRESOLVED (5%) - Formulas: All documented in known_limitations (Load Model, Monotony, Strain, Ability Balance, Activity Score) CRITICAL ISSUES IDENTIFIED (NOT FIXED per NO LOGIC CHANGES): 1. quality_label field mismatch (quality_sessions_pct) - TO_VERIFY 2. RPE moderate quality mapping bug (proxy_internal_load_7d) - CODE_DERIVED 3. JSONB dependencies (6 placeholders) - ability_balance_*, rest_day_compliance 4. vo2max_trend_28d questionable category (Recovery vs. Activity) - TO_VERIFY TESTING: ✓ All 17 placeholders registered successfully ✓ Registry size: 48 (31 pre-existing + 17 new) ✓ Dev backend integration: no errors ✓ Auto-registration on module import: working ARCHITECTURE ALIGNMENT: - Phase 0c Multi-Layer: 14/17 aligned (Group 2 + 3) - Old Resolver Pattern: 3/17 (Group 1 - documented, should be refactored) - Layer separation: data_layer → resolver → export FILES: - NEW: backend/placeholder_registrations/activity_metrics.py - MODIFIED: backend/placeholder_registrations/__init__.py (added import) - MODIFIED: CLAUDE.md (placeholder registry rules) DOCUMENTATION: - Gap Analysis: .claude/task/rework_0b_placeholder/ACTIVITY_CLUSTER_GAP_ANALYSIS.md - Code Inspection: .claude/task/rework_0b_placeholder/ACTIVITY_CLUSTER_CODE_INSPECTION.md - Implementation Report: .claude/task/rework_0b_placeholder/ACTIVITY_CLUSTER_IMPLEMENTATION_REPORT.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 08:20:25 +02:00
from . import activity_metrics
from . import activity_session_insights
from . import schlaf_erholung
from . import vitalwerte
from . import profil_zeitraum
from . import phase_0b_meta_scores
from . import phase_0b_ziele_fokus
from . import korrelationen
__all__ = [
'nutrition_part_a',
'nutrition_part_b',
'nutrition_part_c',
'nutrition_score',
'body_metrics',
'body_extras',
'activity_metrics',
'activity_session_insights',
'schlaf_erholung',
'vitalwerte',
'profil_zeitraum',
'phase_0b_meta_scores',
'phase_0b_ziele_fokus',
'korrelationen',
]