### Time (actual effort, in whole minutes)
- An entry is a stable id, a **whole number of minutes** (`duration_minutes`), an
optional `YYYY-MM-DD` calendar date, an author and an optional note; current
entries live in the issue's own frontmatter (`time_entries`) as one typed value
- There is deliberately **no timer** (no start/stop state, no clock read), **no
timezone conversion or overlap rule**, and **no billing, payroll, invoicing or
hosted service**: each is an escalation trigger, not a missing flag
- `tix time add <ISSUE> --minutes <N> --author <IDENTITY> [--date YYYY-MM-DD]
[--note <TEXT>]` appends one entry and prints the id it minted
- `tix time edit <ISSUE> --entry <ID> [--minutes <N>] [--date <D> | --clear-date]
[--note <TEXT> | --clear-note] [--author <IDENTITY>] --reason <TEXT>` is a
correction: it names only the fields it replaces and leaves the rest, including
preserved unknown metadata, exactly as they were
- `tix time delete <ISSUE> --entry <ID> --reason <TEXT> --confirm` removes the
entry from the **current projection** only; its value and its event stay in
`## History`
- `tix time show <ISSUE>` lists the issue's current entries and its total;
`tix time history <ISSUE>` reads the audit view (the current count, every prior
value a deletion kept, and the correction count)
- `tix time total [ISSUE] [--issue <N>] [--assignee <IDENTITY>] [--from <D>]
[--to <D>] [--audit] [--by issue|assignee|date]` prints one scope's total;
`--by` adds one block per group and `--audit` adds the deletion context
- Every applied mutation appends **exactly one** attributable `## History` event
naming the entry and its before/after values, so a correction and a deletion are
auditable and no prior event is rewritten. A refused mutation (an unconfirmed
delete, a missing reason, an unknown entry, a blank author) writes **nothing**:
the tree is byte-identical
- An absent value prints `-`, never `0`: `nothing` (the scope selected no entry)
and `unknown` (it selected entries and none was usable) are visibly different
from a recorded `0`, and a malformed entry is reported with its kind and remedy
without blocking any unrelated read
- The TUI's `F7` Stats page has a **Time** tab beside `[Health]`, and the issue
detail pane shows the issue's own total; MCP exposes `time_show`, `time_history`,
`time_total`, `time_add`, `time_edit` and `time_delete`, and
`tix export --target time` writes the versioned local document. Every one of
those surfaces renders the **one shared calculation**, so their totals agree