Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0041
ADR-0041: Ruleset engine — per-surface immutable versions, named compositions (F1)
| field | value |
|---|---|
| Status | Proposed — Proposed (awaiting Mohamed) |
| Date | 2026-08-29 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0041-ruleset-per-surface-versions-named-compositions.md — permalink at 9c90c0209 (unchanged on master since that commit) |
| Wiki register entry | ADR-0041 (wiki status: Proposed) |
The record
Status: Proposed (awaiting Mohamed) · Date: 2026-08-29
Context
The core shape of the runtime-ruleset engine. Attacked and refined across adversarial rounds 1–12; byte-identical §11 text across all seven snapshots v12→v15.1 (reviewer- computed hashes: raw 25b29776 ×7, substance 8f76ce5d ×7); zero findings against C-4/C-6's composition shape in rounds 13–15; both reviewer lenses recommend ratification — seven consecutive rounds.
Decision (proposed)
Rules live in immutable per-surface RulesetVersions ({version: tree sha; provenance; surface; rules} — content-pure, GC-proof via pinned refs). What runs is a NAMED COMPOSITION ({version sha, pins {surface → version}}); the NamePointer chain is what a ratify signature moves. Every activation, rollback, and denial targets a name.
Alternatives rejected
Mutable in-place rule edits (no audit chain, no rollback); global (non-per-surface) versioning (couples unrelated domains); direct version targeting without names (no stable operational handle).
Consequences
Runtime rule changes = repointing a name, never redeploying; rollback window is chain arithmetic; reviewers stop attacking the shape once Accepted.
Provenance
RULING CONDITION (Mohamed, 2026-08-29): "my ruling is pending round 16 results" — this ADR flips only after the round-16 lifecycle readiness table lands and is presented. plans/ruleset-runtime-design.md v16 C-4/C-6 + §11 F1; evidence plans/decisions/decision-01-ratify-F1.md (data sheet); rounds 1-15 review files.
Related ADRs
No other ADR is named in this record.
Rulings cited
None.
Specs cited
None (or no spec page exists for the ones named).