Skip to main content

Module select

Module select 

Source
Expand description

Runtime matrix-row selection — the composable selection model spanning four issues that resolve through one eligibility → narrowing → parents → skip formula:

1. eligible  = status gate ({mandatory, active} ∪ --status)          # #371
2. narrowed  = (eligible ∩ --tag) ∪ (--select / --only by id)        # #376 / #370
3. parents   = apply include_parents policy to narrowed              # #377
4. run set   = parents − (--skip)                                    # #370
  • #370 — identity. --select <id> (exact) / --only <glob> force-include a row by name, bypassing the status gate; --skip <id|glob> removes last.
  • #371 — readiness (status). Each row’s source carries a SourceStatus ladder. The status gate decides eligibility; --status <tier> additively widens the eligible set.
  • #376 — classification (tags). --tag <t> narrows within the eligible set. A tag can only shrink the eligible set, never resurrect a non-ready (available/draft/archived) row.
  • #377 — include_parents. The single, explicit policy that decides whether a selected row’s parent: / depends_on: ancestors are pulled in. Default off (strict): a required ancestor missing from the run set is a hard, fail-fast error.

Selection runs on the expanded node list (after expand()), so it never alters {name}::{row_id} state-key derivation — bookmarks stay identical across a full run and any selected subset.

Structs§

RunSelection
A fully-resolved selection request, built from CLI flags + config.

Functions§

select_nodes
Apply sel to nodes (expanded, in BFS order) and return the running subset, order-preserved. Errors on unknown tokens, an empty run set, or a dependency violation under the active include_parents policy.