Living Document Notice
Published 2026-09-17. The evolving architecture, revisions, and connected notes for this dispatch live in the Stax Digital Garden.
The Deterministic State Gate Engine
Summary
Standard todo lists treat task progress as a binary completed-or-not checkbox, losing all nuance between active focus, external blockers, and deliberate backlog deferral. Trice introduces a deterministic state-gate transition model that treats every task as an immutable event-sourced state machine encoded directly within plain-text Markdown frontmatter.
The Pathology of Binary Task Checklists
Conventional task management software reduces complex knowledge work to flat markdown checkboxes (- [ ] and - [x]). In real-world software engineering and operational environments, a binary boolean is fundamentally incapable of capturing operational reality:
- A task might be actively executing in a local terminal workspace.
- A task might be blocked on external review or an unmerged PR.
- A task might be delegated to a colleague or autonomous background agent.
- A task might be deferred until a specific calendar horizon or hardware shipment.
When users lack discrete operational states, they compensate by cluttering note titles with informal prefixes ([WIP], [BLOCKED], [WAITING]), creating parsing debt and preventing deterministic querying.
+-------------------------------------------------------------+
| Trice State-Gate Pipeline |
| |
| +----------+ +----------+ +----------+ |
| | Pending | -----> | Active | -----> | Completed| |
| +----------+ +----------+ +----------+ |
| │ │ │ |
| │ v v |
| │ +----------+ +----------+ |
| └------------> | Blocked | -----> | Archived | |
| +----------+ +----------+ |
+-------------------------------------------------------------+
Formal State-Gate Transitions
Trice enforces an explicit five-state transition vector within the note’s frontmatter:
| State | Semantic Meaning | Permitted Next States | Trigger Conditions |
|---|---|---|---|
pending | Ingested into backlog; unassigned | active, blocked, archived | Initial capture |
active | Currently executing; bounded work unit | blocked, completed, pending | Worker allocation |
blocked | Halted pending upstream dependency | active, archived | Dependency failure |
completed | Verified acceptance criteria satisfied | archived | Terminal completion |
archived | Historical record; immutable cache | None (terminal) | Retention rollover |
Frontmatter Schema Specification
Every task note in Realm 03 carries structured metadata conforming to the Trice Task Schema:
---
title: "TRC-1001: Implement Columnar WAL Ring Buffer"
task_state: "active"
priority: "p1"
energy_horizon: "high"
time_estimate_mins: 120
recurrence_rule: ""
$pkm:
id: "urn:uuid:0191fa30-3001-7000-8000-000000000001"
realm: trice
created_at: "2026-09-17T08:00:00Z"
updated_at: "2026-09-17T14:30:00Z"
relations:
blocksTask: "urn:trice:task:0191fa30-3001-7000-8000-000000000002"
---Transition Validation in Rust
State modifications are validated by the Trice core engine using a finite state automaton that rejects invalid transitions at parse time:
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum TaskState {
Pending,
Active,
Blocked,
Completed,
Archived,
}
impl TaskState {
pub fn can_transition_to(&self, next: TaskState) -> bool {
match (self, next) {
(TaskState::Pending, TaskState::Active | TaskState::Blocked | TaskState::Archived) => true,
(TaskState::Active, TaskState::Blocked | TaskState::Completed | TaskState::Pending) => true,
(TaskState::Blocked, TaskState::Active | TaskState::Archived) => true,
(TaskState::Completed, TaskState::Archived) => true,
_ => false,
}
}
}By enforcing valid transitions in the parser, Trice prevents tasks from vanishing into limbo or jumping from unstarted backlogs directly to completion without passing through active execution bounds.
- Directus Target: trice
- Garden Source Reference: MOC - Bosun PKM Tools, MOC - Fleet Operations
- Garden Source Reference: [TRC-1001 - The Deterministic State Gate Engine](TRC-1001 - The Deterministic State Gate Engine)