Skip to main content

Module model

Module model 

Source
Expand description

Issue data model and file-surface types.

Mirrors contracts/file-format.md and data-model.md exactly. The Issue struct is the Serde surface for the YAML frontmatter of an issue file; the markdown body is carried in body and round-trips verbatim. Status, Priority and Labels are the value types that appear in frontmatter.

Structs§

Comment
A single issue comment, parsed from the ## Comments body section.
HealthRef
The recurrence metadata an issue carries (series:), mission recurring-issues-01M3C7G7.
History
The append-only event log of an issue (data-model.md §8).
HistoryEvent
One recorded mutation, and one line of the ## History section.
Issue
An issue: one markdown file with YAML frontmatter.
SeriesRef
One table, two roles, told apart by which fields are set — the definition carries rule, an occurrence carries key/date. A role: flag would be a second source of truth a writer could disagree with, so there is none: [crate::recurrence::series::SeriesRef::role] derives it.
SeriesRule
The rule half of series:, as the file spells it (data-model.md §2).
Status
A board column name. A newtype over the user-defined column strings from tix.toml; unknown names survive deserialization because columns are config-defined (a renamed column renders as a “Mismatched” pseudo-column, never a crash).
TransitionDecision
The auditable record of one accepted status transition (data-model.md §5, WP03 T012).

Enums§

HistoryEntry
One line of the ## History section.
HistoryEventKind
What kind of mutation a HistoryEvent records.
Priority
Issue priority.

Constants§

HISTORY_HEADING
The heading that introduces the History section, per data-model.md §8.
KNOWN_FRONTMATTER_KEYS
Whether a frontmatter document still carries the retired links: key.

Functions§

capture_extra_frontmatter
Capture every top-level frontmatter key this model does not know, as key -> raw source block (#1361).
date_lte
Chronological order for two validated YYYY-MM-DD strings.
is_history_heading
Whether a line is an entry attempt: a list item whose content is shaped like an entry, under any accepted marker.
looks_like_an_unrecognised_entry
Whether a line looks like a History entry that was not recognised — an entry hand-typed with ASCII hyphens instead of U+2014.
looks_like_history_entry
Whether a line is a recognised History entry attempt.
today
Today’s date as a local-free calendar date in YYYY-MM-DD.
utc_now_rfc3339
The current UTC instant as RFC 3339 (2026-09-27T10:14:02Z), used for HistoryEvent timestamps.
validate_date
A strict YYYY-MM-DD calendar-date check (shape + real month/day with per-month day counts and leap years, year >= 1970), so 2026-13-99, 2026-02-30 and 1969-12-31 are all flagged as malformed. The shared validation path for date-bearing config and frontmatter fields (FR-007).
validate_issue_dates
Validate a (start_date, due_date) pair for an issue (FR-007, C-002).

Type Aliases§

Labels
Issue labels. Free-form strings kept exactly as authored (case and spaces preserved); default [].