Skip to main content

HealthAction

Enum HealthAction 

Source
pub enum HealthAction {
    Set {
        issue: String,
        state: String,
        actor: Option<String>,
        date: Option<String>,
        rationale: Option<String>,
    },
    Show {
        issue: String,
    },
    Rollup {
        scope: String,
        id: String,
    },
    Override {
        scope: String,
        id: String,
        state: String,
        actor: Option<String>,
        date: Option<String>,
        rationale: Option<String>,
        confirm: bool,
    },
    History {
        scope: String,
    },
    Board,
}
Expand description

The tix triage tree (contracts/cli-surface.md, WP05 T023–T025).

list and status are read-only queue views; the four decision verbs take a single issue; batch is the selection-shaped twin of tix bulk, preview by default and writing only under an explicit --apply.

§Why the reason flag is Option on accept and the rest

contracts/decision-history.md splits it: decline, duplicate and defer require a reason, accept records one when supplied. A required clap argument on three of the four would make the fourth’s absence look like an oversight, and — more importantly — the enforcement belongs to the service, which refuses missing_reason before any write on every surface (NFR-003). The flag is therefore optional everywhere and the rule is the service’s, so the CLI, TUI and MCP cannot end up with three different ideas of which decision needs one. tix triage decline 1 with no --reason still fails, at the service, with the contract’s own kind. tix health’s actions.

Variants§

§

Set

Record an issue’s health state (append-only; needs –rationale)

Writes the frontmatter value and one History entry, together or not at all. Any of the four states is accepted; anything else is refused by name.

Fields

§issue: String

The issue, by number or slug

§state: String

One of unknown, on_track, needs_attention, at_risk

§actor: Option<String>

Who is making the change (defaults to the configured git identity)

§date: Option<String>

When, as YYYY-MM-DD (defaults to today)

§rationale: Option<String>

Why — required: a health change nobody can explain is not recorded

§

Show

Show one issue’s health: its own value, its derived rollup, its diagnostics

Fields

§issue: String

The issue, by number or slug

§

Rollup

Show a scope’s derived health, with its contributors and policy version

Fields

§scope: String

issue | project | epic | cycle | milestone

§id: String

The scope’s stable id (an issue number for --scope issue)

§

Override

Layer an explicit override over a derived scope’s health

An override is a deliberate act about a whole scope, so it needs --confirm: it does not replace what the children say, it is recorded over it.

Fields

§scope: String

project | epic | cycle | milestone

§id: String

The scope’s stable id

§state: String

One of unknown, on_track, needs_attention, at_risk

§actor: Option<String>

Who is making the change (defaults to the configured git identity)

§date: Option<String>

When, as YYYY-MM-DD (defaults to today)

§rationale: Option<String>

Why — required

§confirm: bool

Confirm an override of derived health

§

History

The append-only health History entries about a scope

Fields

§scope: String

A scope: issue:42, cycle:2026-10, milestone:m1, …

§

Board

Every scope’s health, with what contributes to each

Trait Implementations§

Source§

impl FromArgMatches for HealthAction

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for HealthAction

Source§

fn augment_subcommands<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.