diff --git a/Cargo.lock b/Cargo.lock index 62d2a00605..34ed3ee94b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4838,6 +4838,18 @@ dependencies = [ name = "trios-ca-mask" version = "0.1.0" +[[package]] +name = "trios-ca-mask-broutput" +version = "0.1.0" + +[[package]] +name = "trios-ca-mask-cm00" +version = "0.1.0" + +[[package]] +name = "trios-ca-mask-cm01" +version = "0.1.0" + [[package]] name = "trios-claude" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 578a089ce0..ff40a4d037 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,6 +65,10 @@ members = [ "vendor/tri-mcp/rings/SR-00", "vendor/tri-mcp/rings/SR-01", "vendor/tri-mcp/rings/SR-02", + # ORDER-4 (#238) โ€” trios-ca-mask rings + "crates/trios-ca-mask/rings/CM-00", + "crates/trios-ca-mask/rings/CM-01", + "crates/trios-ca-mask/rings/BR-OUTPUT", ] exclude = [ "crates/trios-ext", diff --git a/crates/trios-ca-mask/RING.md b/crates/trios-ca-mask/RING.md new file mode 100644 index 0000000000..860d0c06d2 --- /dev/null +++ b/crates/trios-ca-mask/RING.md @@ -0,0 +1,42 @@ +# RING โ€” trios-ca-mask + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Type | Crate (rings scaffolded for issue #238) | +| Sealed | No | + +## Purpose + +Cellular automaton mask construction and application rings for trios-ca-mask โ€” scaffolded under L-ARCH-001. + +## Ring Structure (L-ARCH-001) + +Rings: CM-00 (mask), CM-01 (apply), BR-OUTPUT (output) + +``` +crates/trios-ca-mask/ +โ”œโ”€โ”€ src/ โ† existing logic (untouched, re-export facade) +โ””โ”€โ”€ rings/ โ† scaffolded for issue #238 (additive) + โ”œโ”€โ”€ CM-00/ โ† mask + โ”œโ”€โ”€ CM-01/ โ† apply + โ”œโ”€โ”€ BR-OUTPUT/ โ† output +``` + +## Dependency flow + +``` +BR-OUTPUT โ†’ CM-01 โ†’ CM-00 +``` + +## Anchor + +`phi^2 + phi^-2 = 3 ยท TRINITY ยท NEVER STOP` + +## Laws + +- R1 / R5 / R9: Ring isolation +- L7: Additive scaffold only โ€” no behavior change to parent `src/` +- L-ARCH-001: `rings/` is the future home of all logic diff --git a/crates/trios-ca-mask/rings/BR-OUTPUT/AGENTS.md b/crates/trios-ca-mask/rings/BR-OUTPUT/AGENTS.md new file mode 100644 index 0000000000..5f77499123 --- /dev/null +++ b/crates/trios-ca-mask/rings/BR-OUTPUT/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” BR-OUTPUT + +## Context + +This is the `output` ring of `trios-ca-mask`, scaffolded for issue #238. + +## Files + +- `src/lib.rs` โ€” ring entry point (currently a placeholder) +- `Cargo.toml` โ€” workspace member, Bronze tier +- `RING.md` โ€” ring identity and laws +- `TASK.md` โ€” incremental migration checklist + +## Allowed + +- Add types and functions that belong to the `output` concern +- Add unit tests under `#[cfg(test)]` +- Re-export types upward to the parent crate's facade + +## Forbidden + +- Importing sibling rings directly (R1) +- Adding I/O or async runtimes that conflict with parent crate +- Breaking the `ring_id()` contract used by smoke tests diff --git a/crates/trios-ca-mask/rings/BR-OUTPUT/Cargo.toml b/crates/trios-ca-mask/rings/BR-OUTPUT/Cargo.toml new file mode 100644 index 0000000000..e5809ea595 --- /dev/null +++ b/crates/trios-ca-mask/rings/BR-OUTPUT/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-ca-mask-broutput" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "BR-OUTPUT โ€” output ring for trios-ca-mask" +publish = false diff --git a/crates/trios-ca-mask/rings/BR-OUTPUT/RING.md b/crates/trios-ca-mask/rings/BR-OUTPUT/RING.md new file mode 100644 index 0000000000..be567790f6 --- /dev/null +++ b/crates/trios-ca-mask/rings/BR-OUTPUT/RING.md @@ -0,0 +1,26 @@ +# RING โ€” BR-OUTPUT (trios-ca-mask) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-ca-mask-broutput | +| Sealed | No | + +## Purpose + +`output` ring for `trios-ca-mask`. Scaffolded as part of issue #238 to bring +this crate under the ring-isolation architecture (L-ARCH-001). + +## Ring scope + +This ring will eventually own the `output` concern of `trios-ca-mask`. +The current scaffold is a placeholder; logic remains in the parent crate's +`src/` until migrated incrementally. + +## Laws + +- R1 / R5 / R9: Ring isolation +- L7: Additive scaffold only โ€” no behavior change +- L6: Pure Rust diff --git a/crates/trios-ca-mask/rings/BR-OUTPUT/TASK.md b/crates/trios-ca-mask/rings/BR-OUTPUT/TASK.md new file mode 100644 index 0000000000..a55bb05774 --- /dev/null +++ b/crates/trios-ca-mask/rings/BR-OUTPUT/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” BR-OUTPUT + +## Status: scaffolded (issue #238) + +- [x] Ring directory created +- [x] Cargo.toml with workspace inheritance +- [x] src/lib.rs placeholder + smoke test +- [x] RING.md, AGENTS.md, TASK.md present (Invariant I5) +- [ ] Migrate `output` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-ca-mask/rings/BR-OUTPUT/src/lib.rs b/crates/trios-ca-mask/rings/BR-OUTPUT/src/lib.rs new file mode 100644 index 0000000000..62b567958e --- /dev/null +++ b/crates/trios-ca-mask/rings/BR-OUTPUT/src/lib.rs @@ -0,0 +1,20 @@ +//! BR-OUTPUT โ€” output +//! +//! Ring scaffold for `trios-ca-mask`. Logic lives in the parent crate's +//! `src/` until migrated. This ring is additive scaffolding under L-ARCH-001 +//! to satisfy the ring isolation contract required by issue #238. + +/// Marker placeholder so the ring compiles cleanly. +pub fn ring_id() -> &'static str { + "BR-OUTPUT" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "BR-OUTPUT"); + } +} diff --git a/crates/trios-ca-mask/rings/CM-00/AGENTS.md b/crates/trios-ca-mask/rings/CM-00/AGENTS.md new file mode 100644 index 0000000000..2051cc2ef9 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-00/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” CM-00 + +## Context + +This is the `mask` ring of `trios-ca-mask`, scaffolded for issue #238. + +## Files + +- `src/lib.rs` โ€” ring entry point (currently a placeholder) +- `Cargo.toml` โ€” workspace member, Bronze tier +- `RING.md` โ€” ring identity and laws +- `TASK.md` โ€” incremental migration checklist + +## Allowed + +- Add types and functions that belong to the `mask` concern +- Add unit tests under `#[cfg(test)]` +- Re-export types upward to the parent crate's facade + +## Forbidden + +- Importing sibling rings directly (R1) +- Adding I/O or async runtimes that conflict with parent crate +- Breaking the `ring_id()` contract used by smoke tests diff --git a/crates/trios-ca-mask/rings/CM-00/Cargo.toml b/crates/trios-ca-mask/rings/CM-00/Cargo.toml new file mode 100644 index 0000000000..304a86ff31 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-00/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-ca-mask-cm00" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "CM-00 โ€” mask ring for trios-ca-mask" +publish = false diff --git a/crates/trios-ca-mask/rings/CM-00/RING.md b/crates/trios-ca-mask/rings/CM-00/RING.md new file mode 100644 index 0000000000..be8e988ad3 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-00/RING.md @@ -0,0 +1,26 @@ +# RING โ€” CM-00 (trios-ca-mask) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-ca-mask-cm00 | +| Sealed | No | + +## Purpose + +`mask` ring for `trios-ca-mask`. Scaffolded as part of issue #238 to bring +this crate under the ring-isolation architecture (L-ARCH-001). + +## Ring scope + +This ring will eventually own the `mask` concern of `trios-ca-mask`. +The current scaffold is a placeholder; logic remains in the parent crate's +`src/` until migrated incrementally. + +## Laws + +- R1 / R5 / R9: Ring isolation +- L7: Additive scaffold only โ€” no behavior change +- L6: Pure Rust diff --git a/crates/trios-ca-mask/rings/CM-00/TASK.md b/crates/trios-ca-mask/rings/CM-00/TASK.md new file mode 100644 index 0000000000..8c06027c75 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-00/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” CM-00 + +## Status: scaffolded (issue #238) + +- [x] Ring directory created +- [x] Cargo.toml with workspace inheritance +- [x] src/lib.rs placeholder + smoke test +- [x] RING.md, AGENTS.md, TASK.md present (Invariant I5) +- [ ] Migrate `mask` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-ca-mask/rings/CM-00/src/lib.rs b/crates/trios-ca-mask/rings/CM-00/src/lib.rs new file mode 100644 index 0000000000..9228fe1d73 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-00/src/lib.rs @@ -0,0 +1,20 @@ +//! CM-00 โ€” mask +//! +//! Ring scaffold for `trios-ca-mask`. Logic lives in the parent crate's +//! `src/` until migrated. This ring is additive scaffolding under L-ARCH-001 +//! to satisfy the ring isolation contract required by issue #238. + +/// Marker placeholder so the ring compiles cleanly. +pub fn ring_id() -> &'static str { + "CM-00" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "CM-00"); + } +} diff --git a/crates/trios-ca-mask/rings/CM-01/AGENTS.md b/crates/trios-ca-mask/rings/CM-01/AGENTS.md new file mode 100644 index 0000000000..ffabf11969 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-01/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” CM-01 + +## Context + +This is the `apply` ring of `trios-ca-mask`, scaffolded for issue #238. + +## Files + +- `src/lib.rs` โ€” ring entry point (currently a placeholder) +- `Cargo.toml` โ€” workspace member, Bronze tier +- `RING.md` โ€” ring identity and laws +- `TASK.md` โ€” incremental migration checklist + +## Allowed + +- Add types and functions that belong to the `apply` concern +- Add unit tests under `#[cfg(test)]` +- Re-export types upward to the parent crate's facade + +## Forbidden + +- Importing sibling rings directly (R1) +- Adding I/O or async runtimes that conflict with parent crate +- Breaking the `ring_id()` contract used by smoke tests diff --git a/crates/trios-ca-mask/rings/CM-01/Cargo.toml b/crates/trios-ca-mask/rings/CM-01/Cargo.toml new file mode 100644 index 0000000000..2aa215aa0d --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-01/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-ca-mask-cm01" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "CM-01 โ€” apply ring for trios-ca-mask" +publish = false diff --git a/crates/trios-ca-mask/rings/CM-01/RING.md b/crates/trios-ca-mask/rings/CM-01/RING.md new file mode 100644 index 0000000000..b2cd6acae7 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-01/RING.md @@ -0,0 +1,26 @@ +# RING โ€” CM-01 (trios-ca-mask) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-ca-mask-cm01 | +| Sealed | No | + +## Purpose + +`apply` ring for `trios-ca-mask`. Scaffolded as part of issue #238 to bring +this crate under the ring-isolation architecture (L-ARCH-001). + +## Ring scope + +This ring will eventually own the `apply` concern of `trios-ca-mask`. +The current scaffold is a placeholder; logic remains in the parent crate's +`src/` until migrated incrementally. + +## Laws + +- R1 / R5 / R9: Ring isolation +- L7: Additive scaffold only โ€” no behavior change +- L6: Pure Rust diff --git a/crates/trios-ca-mask/rings/CM-01/TASK.md b/crates/trios-ca-mask/rings/CM-01/TASK.md new file mode 100644 index 0000000000..f0968dbcce --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-01/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” CM-01 + +## Status: scaffolded (issue #238) + +- [x] Ring directory created +- [x] Cargo.toml with workspace inheritance +- [x] src/lib.rs placeholder + smoke test +- [x] RING.md, AGENTS.md, TASK.md present (Invariant I5) +- [ ] Migrate `apply` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-ca-mask/rings/CM-01/src/lib.rs b/crates/trios-ca-mask/rings/CM-01/src/lib.rs new file mode 100644 index 0000000000..686412c254 --- /dev/null +++ b/crates/trios-ca-mask/rings/CM-01/src/lib.rs @@ -0,0 +1,20 @@ +//! CM-01 โ€” apply +//! +//! Ring scaffold for `trios-ca-mask`. Logic lives in the parent crate's +//! `src/` until migrated. This ring is additive scaffolding under L-ARCH-001 +//! to satisfy the ring isolation contract required by issue #238. + +/// Marker placeholder so the ring compiles cleanly. +pub fn ring_id() -> &'static str { + "CM-01" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "CM-01"); + } +}