Skip to main content

Module workflow

Module workflow 

Source
Expand description

The single owner of category resolution, completion, and transition legality.

Filesystem-free on purpose. Nothing here reads or writes an issue file, and nothing here takes a Store. The module returns the accepted transition and the decision to append; WP03’s storage seam performs the write. That is what lets the CLI, the TUI, MCP, sync and every analytic share one implementation instead of five that agree today (contract §2).

blocked here is a workflow column position, not blocked state. The derived blocked state — an open inbound blocks edge — is a graph fact owned by issue 169’s Mission and lives in relationships.rs. The two are different things and the contract names conflating them a rejected alternative (category-vocabulary.md §6).

Resolution is built once, at config load, and is not rebuilt per issue or per surface. The per-issue path is a single hash lookup, which is what holds NFR-001 for a 10,000-issue sweep (contract §7). Rebuilding it per issue is the failure mode this design exists to prevent, and resolution is built from a board rather than from an issue so that it cannot be.

Structs§

CategoryResolution
The built once-per-load derivation from column name to category (data-model.md §3).
DirectEditFinding
One direct-edit finding: a file whose status no longer agrees with its History.
TransitionOverride
An explicit override out of a terminal category.
WorkflowDiagnostic
One finding. The service never writes, so a diagnostic is the only output a refusal produces.

Enums§

ColorHint
A presentation hint. See WorkflowCategory::color_hint.
DiagnosticKind
The fixed diagnostic vocabulary (contract §6).
TransitionOutcome
The outcome of judging a transition.
WorkflowCategory
A category in the fixed global vocabulary (C-002).

Constants§

SAFE_DEFAULT
The documented safe default, re-exported so a surface reporting a defaulted column quotes the same constant the resolution used.

Functions§

active_board_name
The name of the board Config::default_config resolves to.
active_resolution
The CategoryResolution for the active board, plus that board’s name.
category_of
The issue’s category, or None for a column the board does not configure.
completion_column
The board’s completion column, chosen by category rather than by done_column (WP09).
completion_column_or_default
The board’s completion column, total: the first complete column, else the configured done_column, else the literal "done" (WP09).
is_compatible
The pure compatibility predicate behind validate_transition.
is_completed
The single completion decision (contract §4).
lint_direct_edits
Report files whose status contradicts their own History (contract §5, C-005).
resolution
Build the resolution for board.
validate_config
Configuration findings across every board.
validate_transition
The single transition evaluation (contract §3).