Parent
Part of #82.
Idea
Support subjective feedback from multiple sources while preserving origin and scale semantics.
Sources
- Telegram inline buttons
- future iOS app
- Strava perceived exertion if available
- manual input
Problem
Different sources may use different scales and meanings. The system needs normalized values while preserving original payloads.
Proposed solution
For each feedback record store:
- feedback_source
- normalized feedback_score
- feedback_value
- original_source_value
- original_source_payload
- mapping version
Strava scope
If Strava perceived exertion is available:
- import it
- map to internal normalized scale
- preserve original value
- avoid overwriting explicit Telegram feedback unless source precedence is defined
Acceptance criteria
- source metadata is persisted
- normalized mapping is documented
- source precedence rules are explicit
- tests cover mapping behavior
Parent
Part of #82.
Idea
Support subjective feedback from multiple sources while preserving origin and scale semantics.
Sources
Problem
Different sources may use different scales and meanings. The system needs normalized values while preserving original payloads.
Proposed solution
For each feedback record store:
Strava scope
If Strava perceived exertion is available:
Acceptance criteria