tix-tracker 0.12.0

A terminal issue tracker: markdown + YAML frontmatter issues with a kanban TUI and CLI
Documentation
### Roadmap (initiatives over existing delivery)
- An initiative is a **stable generated id** — the `[initiatives.<id>]` registry key
  in `tix.toml` — with a mutable display `name`, plus optional
  outcome/owner/status/priority/labels/target date and explicit project-**id**,
  epic-**id** and milestone-**name** references. A rename changes the label only and
  re-keys nothing
- `tix initiative create <name> [--outcome --owner --status --priority --labels
  --target-date --projects --epics --milestones]`, `tix initiative edit <id>
  [--name …]` (label only), `tix initiative list` (id, name, target date, status),
  `tix initiative show <id>`, `tix initiative delete <id> [--yes]` (the registry
  entry only — no issue, project, epic or milestone is ever deleted)
- Associate and dissociate: `tix initiative associate <id>
  --project|--epic|--milestone <ref>` and `tix initiative dereference <id> …`,
  naming **exactly one** kind flag. A repeated association is an idempotent no-op,
  and a well-formed reference that names nothing is stored and diagnosed rather than
  resolved or inferred from an owner
- Read the roadmap: `tix roadmap list [--from <date> --to <date> --owner <id>
  --status <state> --label <label> --query <text>]` and `tix roadmap show <id>`.
  Rows are ordered by target date ascending, then stable id; an initiative with no
  target date renders the explicit `undated` state and sorts last — never an invented
  period — and a bounded period excludes it
- The one filter: the CLI flags, the TUI filter editor, the MCP arguments and the
  portable document all parse into the same normalized `RoadmapFilter`. Malformed
  syntax (a non-`YYYY-MM-DD` date, a reversed period, a blank owner/status/label) is
  refused before anything is projected; a well-formed value that names nothing simply
  matches nothing
- The summary is a **join, not a blend**: each row carries one contribution per
  referenced source entity — its `<kind>:<id>` provenance, its derived label, its
  resolution, the owning service's own progress value, the shared health policy's
  risk state and the policy version — and no aggregate percentage, score or average.
  States are `complete` / `partial` / `empty` / `missing_reference` / `unknown`; a
  genuine zero is a value, never conflated with empty or unknown
- Missing references stay visible on the row, in the detail and in the ordered
  diagnostics (field, reference and remedy), never dropped and never silently
  repaired. `tix lint` reports **issue-held** project/epic references (and an epic
  registry's own references); an initiative's references are config-held and are
  diagnosed on the roadmap surfaces, not by `tix lint`
- `tix export --target roadmap [--output <path>]` writes the versioned portable
  document. The TUI's `F10` Portfolio page has a **Roadmap** tab (`c` create, `e`
  rename, `a` associate, `x` dereference, `f` filter, `r` re-read, `j`/`k` rows), and
  MCP exposes
  the `initiative_*` management tools plus `roadmap_list`/`roadmap_show`/
  `roadmap_summary`. Applying or filtering a roadmap view never mutates an issue,
  project, epic or milestone
- An initiative change appends **no** `## History` event: an initiative is a config
  record, so the atomic `tix.toml` write is the audit