1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Roadmap initiatives: stable strategic outcomes connected to execution.
//!
//! Mission `roadmap-initiatives-01M3C8SX`. An initiative is an ordered
//! `[initiatives.<initiative-id>]` record in `tix.toml` — a stable id, a mutable
//! display name, plus outcome/owner/status/priority/labels/target-date metadata and
//! explicit project/epic/milestone associations. It is a **projection over**
//! existing project, epic, milestone, planning and health services: it introduces no
//! hosted portfolio store, no second metric authority, and no implicit issue
//! ownership change (the mission boundary).
//!
//! WP01 ships the registry itself:
//!
//! * [`crate::config::InitiativeConfiguration`] is the record, beside its
//! `[projects.<id>]`/`[epics.<id>]` siblings in [`crate::config`];
//! * [`registry`] holds the explicit associations, the write-path shape checks, and
//! the one atomic write boundary.
//!
//! WP02 adds the normalized filter and the ordering:
//!
//! * [`filter::RoadmapFilter`] is the one filter DTO every surface parses into, with
//! its syntax validation and predicates;
//! * [`order::filter_and_order`] is the one read-only pass that applies the filter
//! and sorts by target date then stable id, reporting a missing target date as the
//! explicit [`order::TargetDateState::Undated`] state.
//!
//! Later work packages consume this registry: the source-attributed projection and
//! summaries (WP03), and the CLI/TUI/MCP surfaces (WP04+).
pub mod diagnostics;
pub mod filter;
pub mod order;
pub mod portable;
pub mod projection;
pub mod registry;
pub use diagnostics::{RoadmapDiagnostic, RoadmapDiagnosticKind};
pub use filter::RoadmapFilter;
pub use order::{RoadmapEntry, TargetDateState, filter_and_order, order};
pub use portable::{FORMAT as PORTABLE_FORMAT, PortableRoadmap, VERSION as PORTABLE_VERSION};
pub use projection::{
InitiativeSummary, ProgressValue, ReferenceResolution, RoadmapConsumed, RoadmapProjection,
RoadmapRow, RoadmapSources, RowReference, SummaryContribution, SummaryState, project,
};
pub use registry::{
AssociationKind, InitiativeAssociation, InitiativeEdit, InitiativeExtensions, NewInitiative,
associate, associations, contains_association, create_initiative, delete_initiative,
dissociate, edit_initiative, get, ids, resolve_initiative_id,
};