### Epics (cross-cutting delivery containers)
- An epic is a **stable generated id** — the `[epics.<id>]` registry key in
`tix.toml` — with a mutable display `name`; an issue holds an `epics:` list of
**ids**, so a rename changes the label only and never breaks a reference (C-003)
- `tix epic create <name> [--description --status --owner --start-date --due-date --weight]`,
`tix epic edit <id> [--name …]` (label only), `tix epic list` (a row per epic:
id, name, child and member counts), `tix epic show <id>` (hierarchy, progress,
weight, blockers and members), `tix epic navigate <id>` (parent, children,
ancestors, depth), `tix epic delete <id>` (removes the registry entry **only** —
member issues and child epics keep their references as diagnosable
`missing_epic_reference` findings, never deleted)
- Associate and dissociate: `tix epic add <id> <sel>…`,
`tix epic remove <id> <sel>…`, `tix epic bulk-add <id> <sel>…`,
`tix create --epics <id,id>`, `tix edit <sel> --add-epic <id>` /
`--remove-epic <id>` / `--epics ""` (clears every reference). An issue may
reference **several** epics; a repeated reference is idempotent and dereferencing
drops only the reference
- Filter, group and sort by epic: `tix search "epic:<id>"`, `tix list --epic <id>`,
`tix list --group epic` / `--sort epic` and `tix status --group epic`. A single
membership buckets by epic id, several as `(multiple epics)`, and none as
`(no epic)`. The TUI exposes the same through `F10` (Portfolio, Epics tab) and the
filter modal's epic row
- Parent epics form a **single-parent** hierarchy keyed by epic id; navigation
reports the parent, children, ancestors and depth, and progress, weight and
blocked work come from the one service rollup. A stored parent that no longer
exists stays as a diagnosable unresolved reference (it is repaired, never
cascaded)
- **Tasks are ordinary issues** (C-001): a `task`-labelled issue referencing an
epic is a member like any other — there is no task entity, file or frontmatter
key. Epic identity is a `tix.toml` registry entry; there is no database, no new
record format and no hosted planning service (C-004). A relationship a tracker
cannot represent stays local with a diagnostic (C-007)