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

The Deterministic State Gate Engine: Dual-trace Phosphor P20 safety amber and P22R ruby red vector CRT macro showing discrete state-gate transition steps and square token bracket curves

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:

StateSemantic MeaningPermitted Next StatesTrigger Conditions
pendingIngested into backlog; unassignedactive, blocked, archivedInitial capture
activeCurrently executing; bounded work unitblocked, completed, pendingWorker allocation
blockedHalted pending upstream dependencyactive, archivedDependency failure
completedVerified acceptance criteria satisfiedarchivedTerminal completion
archivedHistorical record; immutable cacheNone (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)