Parent: #1985
Outcome
Episodes can be grouped consistently without forcing different symptoms or user language into a single medical category.
Acceptance criteria
- Episode updates support free text and zero or more structured tags.
- Tag matching normalises case and surrounding whitespace while preserving a preferred display form.
- Distinct tags such as headache and migraine remain distinct by default.
- A user with manage access can confirm or remove a relationship between two tags.
- Related tags are used only where the product explicitly explains that relationship.
- MedTracker does not ship clinical synonym knowledge or infer that one tag medically means another.
- Existing untagged health events remain valid and editable.
- Tag and relationship changes are audited and household-scoped.
- API, sync, export, and policy coverage matches the web flow.
- Tests cover normalization, duplicate prevention, distinct tags, confirmed relationships, removal, and household isolation.
Completion signal
A household can use consistent labels for repeated episodes and explicitly relate its own language without MedTracker asserting a diagnosis.
Dependencies
Builds on the episode timeline update model.
Parent: #1985
Outcome
Episodes can be grouped consistently without forcing different symptoms or user language into a single medical category.
Acceptance criteria
Completion signal
A household can use consistent labels for repeated episodes and explicitly relate its own language without MedTracker asserting a diagnosis.
Dependencies
Builds on the episode timeline update model.