mitai-jinkendo/backend/routers
Lars a04e7cc042
All checks were successful
Deploy Development / deploy (push) Successful in 44s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 13s
feat: Complete Placeholder Metadata System (Normative Standard v1.0.0)
Implements comprehensive metadata system for all 116 placeholders according to
PLACEHOLDER_METADATA_REQUIREMENTS_V2_NORMATIVE standard.

Backend:
- placeholder_metadata.py: Complete schema (PlaceholderMetadata, Registry, Validation)
- placeholder_metadata_extractor.py: Automatic extraction with heuristics
- placeholder_metadata_complete.py: Hand-curated metadata for all 116 placeholders
- generate_complete_metadata.py: Metadata generation with manual corrections
- generate_placeholder_catalog.py: Documentation generator (4 output files)
- routers/prompts.py: New extended export endpoint (non-breaking)
- tests/test_placeholder_metadata.py: Comprehensive test suite

Documentation:
- PLACEHOLDER_GOVERNANCE.md: Mandatory governance guidelines
- PLACEHOLDER_METADATA_IMPLEMENTATION_SUMMARY.md: Complete implementation docs

Features:
- Normative compliant metadata for all 116 placeholders
- Non-breaking extended export API endpoint
- Automatic + manual metadata curation
- Validation framework with error/warning levels
- Gap reporting for unresolved fields
- Catalog generator (JSON, Markdown, Gap Report, Export Spec)
- Test suite (20+ tests)
- Governance rules for future placeholders

API:
- GET /api/prompts/placeholders/export-values-extended (NEW)
- GET /api/prompts/placeholders/export-values (unchanged, backward compatible)

Architecture:
- PlaceholderType enum: atomic, raw_data, interpreted, legacy_unknown
- TimeWindow enum: latest, 7d, 14d, 28d, 30d, 90d, custom, mixed, unknown
- OutputType enum: string, number, integer, boolean, json, markdown, date, enum
- Complete source tracking (resolver, data_layer, tables)
- Runtime value resolution
- Usage tracking (prompts, pipelines, charts)

Statistics:
- 6 new Python modules (~2500+ lines)
- 1 modified module (extended)
- 2 new documentation files
- 4 generated documentation files (to be created in Docker)
- 20+ test cases
- 116 placeholders inventoried

Next Steps:
1. Run in Docker: python /app/generate_placeholder_catalog.py
2. Test extended export endpoint
3. Verify all 116 placeholders have complete metadata

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 20:32:37 +02:00
..
__init__.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
access_grants.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
activity.py feat: global quality filter setting (Issue #31) 2026-03-23 22:29:49 +01:00
admin_activity_mappings.py feat: learnable activity type mapping system (DB-based, auto-learning) 2026-03-21 19:31:58 +01:00
admin_training_types.py feat: Training Type Profiles Phase 2.1 - Backend Profile Management (#15) 2026-03-23 11:50:40 +01:00
admin.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
auth.py fix: email verification redirect and already-used token message 2026-03-21 12:28:51 +01:00
blood_pressure.py fix: support German column names in CSV imports 2026-03-23 16:40:49 +01:00
caliper.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00
charts.py fix: E2 protein-adequacy endpoint - undefined variable 'values' -> 'daily_values' 2026-03-29 07:38:04 +02:00
circumference.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00
coupons.py feat: add coupon management and redemption 2026-03-19 13:07:09 +01:00
evaluation.py feat: Training Type Profiles - Phase 1.1 Foundation (#15) 2026-03-23 10:49:26 +01:00
exportdata.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
features.py fix: prevent connection pool exhaustion in features/usage 2026-03-21 07:02:42 +01:00
fitness_tests.py refactor: split goals.py into 5 modular routers 2026-03-28 06:31:31 +01:00
focus_areas.py feat: Dynamic Focus Areas system v2.0 - fully implemented 2026-03-27 20:51:19 +01:00
goal_progress.py refactor: split goals.py into 5 modular routers 2026-03-28 06:31:31 +01:00
goal_types.py refactor: split goals.py into 5 modular routers 2026-03-28 06:31:31 +01:00
goals.py docs: cleanup debug logs + document goal system enhancements 2026-03-28 17:32:13 +01:00
importdata.py feat: complete Phase 4 enforcement for all features (backend) 2026-03-21 07:40:37 +01:00
insights.py feat: Pipeline-System - Backend Infrastructure (Issue #28, Phase 1) 2026-03-25 09:42:28 +01:00
nutrition.py feat: add manual nutrition entry form with auto-detect 2026-03-21 08:37:01 +01:00
photos.py fix: photo upload date parameter parsing 2026-03-22 14:33:01 +01:00
profiles.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
prompts.py feat: Complete Placeholder Metadata System (Normative Standard v1.0.0) 2026-03-29 20:32:37 +02:00
rest_days.py feat: prevent duplicate rest day types per date (Migration 012) 2026-03-22 17:36:49 +01:00
sleep.py feat: sleep duration excludes awake time (actual sleep only) 2026-03-22 14:01:47 +01:00
stats.py refactor: modular backend architecture with 14 router modules 2026-03-19 11:15:35 +01:00
subscription.py feat: add user subscription info endpoints 2026-03-19 13:05:55 +01:00
tier_limits.py fix: show all tiers in admin matrix editor including selfhosted 2026-03-20 06:19:32 +01:00
tiers_mgmt.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
training_phases.py refactor: split goals.py into 5 modular routers 2026-03-28 06:31:31 +01:00
training_types.py feat: add extended training types (cardio walk/dance, mind & meditation) 2026-03-21 15:16:07 +01:00
user_restrictions.py feat: add admin management routers for subscription system 2026-03-19 13:09:33 +01:00
vitals_baseline.py fix: Phase 0b - fix remaining calculation errors 2026-03-28 08:39:31 +01:00
weight.py feat: Phase 4 Batch 1 - enable enforcement for data entries 2026-03-21 06:57:05 +01:00