Skip to content

T33 Symbolic rule layer over braid events #49

Description

@superposition

Part of #11

Steps

Step 33. The symbolic layer: rules over braid events.
Create crates/braid/src/rules.rs — pure, no I/O, no clocks:

pub enum EventPattern { MissionClosed { outcome: String }, PromotionRolledBack, Quarantined, DriftAbove { threshold: f32 } }
pub enum BraidAction { LowerCoupling { factor: f32 }, RequestTraining, RollBackGeneration, EnterObserveOnly, RequestSafeStop }
pub struct Rule { pub when: EventPattern, pub then: BraidAction }
pub fn default_rules() -> Vec<Rule>;
pub fn evaluate(event: &BraidEvent, rules: &[Rule]) -> Vec<BraidAction>;

default_rules() returns, in order: MissionClosed { outcome: "failed" } → LowerCoupling { factor: 0.90 },
PromotionRolledBack → EnterObserveOnly, Quarantined → RequestTraining (the quarantine is a reason
to learn from what survived), DriftAbove { threshold: 3.0 } → EnterObserveOnly. Rules are data, so a
later rule set is a new vector, not a code change.

Test written first

default_rules_are_ordered_and_pure

Commands

cargo test -p qualia-braid

Evidence

pending

Journal

the-ladder

Blocked by

Definition of done (2026-09-11)

  • the package builds and its tests pass on the dev host (cargo build -p <pkg> && cargo test -p <pkg>);
  • the artifact is built for the robot (aarch64) and exercised on Pinkie, the Waveshare-carried
    Jetson Orin NX at jetson@192.168.55.1 (see docs/decisions.md D-010), by this ticket's own smoke
    path or command;
  • the handoff comment quotes the build/deploy command and the output observed on the board;
  • a host-only package that cannot run there (the macOS metal backend) records the aarch64 build as
    its board evidence and states why execution on the board is impossible.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions