diff --git a/Cargo.lock b/Cargo.lock index 62d2a00605..68c9159e9a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4970,6 +4970,22 @@ dependencies = [ "tempfile", ] +[[package]] +name = "trios-fpga-brbitstream" +version = "0.1.0" + +[[package]] +name = "trios-fpga-fp00" +version = "0.1.0" + +[[package]] +name = "trios-fpga-fp01" +version = "0.1.0" + +[[package]] +name = "trios-fpga-fp02" +version = "0.1.0" + [[package]] name = "trios-gb" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 578a089ce0..aa50fd3fc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,6 +65,11 @@ members = [ "vendor/tri-mcp/rings/SR-00", "vendor/tri-mcp/rings/SR-01", "vendor/tri-mcp/rings/SR-02", + # ORDER-4 (#238) โ€” trios-fpga rings + "crates/trios-fpga/rings/FP-00", + "crates/trios-fpga/rings/FP-01", + "crates/trios-fpga/rings/FP-02", + "crates/trios-fpga/rings/BR-BITSTREAM", ] exclude = [ "crates/trios-ext", diff --git a/crates/trios-fpga/RING.md b/crates/trios-fpga/RING.md new file mode 100644 index 0000000000..bd49fac82b --- /dev/null +++ b/crates/trios-fpga/RING.md @@ -0,0 +1,43 @@ +# RING โ€” trios-fpga + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Type | Crate (rings scaffolded for issue #238) | +| Sealed | No | + +## Purpose + +HDL, synthesis, bitstream and bitstream-output rings for trios-fpga โ€” scaffolded under L-ARCH-001 (Tier 4 FPGA toolchain). + +## Ring Structure (L-ARCH-001) + +Rings: FP-00 (hdl), FP-01 (synthesis), FP-02 (bitstream), BR-BITSTREAM (bitstream-output) + +``` +crates/trios-fpga/ +โ”œโ”€โ”€ src/ โ† existing logic (untouched, re-export facade) +โ””โ”€โ”€ rings/ โ† scaffolded for issue #238 (additive) + โ”œโ”€โ”€ FP-00/ โ† hdl + โ”œโ”€โ”€ FP-01/ โ† synthesis + โ”œโ”€โ”€ FP-02/ โ† bitstream + โ”œโ”€โ”€ BR-BITSTREAM/ โ† bitstream-output +``` + +## Dependency flow + +``` +BR-BITSTREAM โ†’ FP-02 โ†’ FP-01 โ†’ FP-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-fpga/rings/BR-BITSTREAM/AGENTS.md b/crates/trios-fpga/rings/BR-BITSTREAM/AGENTS.md new file mode 100644 index 0000000000..c69281d416 --- /dev/null +++ b/crates/trios-fpga/rings/BR-BITSTREAM/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” BR-BITSTREAM + +## Context + +This is the `bitstream-output` ring of `trios-fpga`, 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 `bitstream-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-fpga/rings/BR-BITSTREAM/Cargo.toml b/crates/trios-fpga/rings/BR-BITSTREAM/Cargo.toml new file mode 100644 index 0000000000..2077c4e6b2 --- /dev/null +++ b/crates/trios-fpga/rings/BR-BITSTREAM/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-fpga-brbitstream" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "BR-BITSTREAM โ€” bitstream-output ring for trios-fpga" +publish = false diff --git a/crates/trios-fpga/rings/BR-BITSTREAM/RING.md b/crates/trios-fpga/rings/BR-BITSTREAM/RING.md new file mode 100644 index 0000000000..6fd4845c0e --- /dev/null +++ b/crates/trios-fpga/rings/BR-BITSTREAM/RING.md @@ -0,0 +1,26 @@ +# RING โ€” BR-BITSTREAM (trios-fpga) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-fpga-brbitstream | +| Sealed | No | + +## Purpose + +`bitstream-output` ring for `trios-fpga`. 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 `bitstream-output` concern of `trios-fpga`. +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-fpga/rings/BR-BITSTREAM/TASK.md b/crates/trios-fpga/rings/BR-BITSTREAM/TASK.md new file mode 100644 index 0000000000..5b65494a18 --- /dev/null +++ b/crates/trios-fpga/rings/BR-BITSTREAM/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” BR-BITSTREAM + +## 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 `bitstream-output` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-fpga/rings/BR-BITSTREAM/src/lib.rs b/crates/trios-fpga/rings/BR-BITSTREAM/src/lib.rs new file mode 100644 index 0000000000..4973680c43 --- /dev/null +++ b/crates/trios-fpga/rings/BR-BITSTREAM/src/lib.rs @@ -0,0 +1,20 @@ +//! BR-BITSTREAM โ€” bitstream-output +//! +//! Ring scaffold for `trios-fpga`. 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-BITSTREAM" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "BR-BITSTREAM"); + } +} diff --git a/crates/trios-fpga/rings/FP-00/AGENTS.md b/crates/trios-fpga/rings/FP-00/AGENTS.md new file mode 100644 index 0000000000..b01607a710 --- /dev/null +++ b/crates/trios-fpga/rings/FP-00/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” FP-00 + +## Context + +This is the `hdl` ring of `trios-fpga`, 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 `hdl` 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-fpga/rings/FP-00/Cargo.toml b/crates/trios-fpga/rings/FP-00/Cargo.toml new file mode 100644 index 0000000000..a780645267 --- /dev/null +++ b/crates/trios-fpga/rings/FP-00/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-fpga-fp00" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "FP-00 โ€” hdl ring for trios-fpga" +publish = false diff --git a/crates/trios-fpga/rings/FP-00/RING.md b/crates/trios-fpga/rings/FP-00/RING.md new file mode 100644 index 0000000000..cabcb21920 --- /dev/null +++ b/crates/trios-fpga/rings/FP-00/RING.md @@ -0,0 +1,26 @@ +# RING โ€” FP-00 (trios-fpga) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-fpga-fp00 | +| Sealed | No | + +## Purpose + +`hdl` ring for `trios-fpga`. 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 `hdl` concern of `trios-fpga`. +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-fpga/rings/FP-00/TASK.md b/crates/trios-fpga/rings/FP-00/TASK.md new file mode 100644 index 0000000000..8fed26bd7a --- /dev/null +++ b/crates/trios-fpga/rings/FP-00/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” FP-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 `hdl` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-fpga/rings/FP-00/src/lib.rs b/crates/trios-fpga/rings/FP-00/src/lib.rs new file mode 100644 index 0000000000..06fcdd385e --- /dev/null +++ b/crates/trios-fpga/rings/FP-00/src/lib.rs @@ -0,0 +1,20 @@ +//! FP-00 โ€” hdl +//! +//! Ring scaffold for `trios-fpga`. 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 { + "FP-00" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "FP-00"); + } +} diff --git a/crates/trios-fpga/rings/FP-01/AGENTS.md b/crates/trios-fpga/rings/FP-01/AGENTS.md new file mode 100644 index 0000000000..3c092bd5da --- /dev/null +++ b/crates/trios-fpga/rings/FP-01/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” FP-01 + +## Context + +This is the `synthesis` ring of `trios-fpga`, 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 `synthesis` 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-fpga/rings/FP-01/Cargo.toml b/crates/trios-fpga/rings/FP-01/Cargo.toml new file mode 100644 index 0000000000..acf59ccad1 --- /dev/null +++ b/crates/trios-fpga/rings/FP-01/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-fpga-fp01" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "FP-01 โ€” synthesis ring for trios-fpga" +publish = false diff --git a/crates/trios-fpga/rings/FP-01/RING.md b/crates/trios-fpga/rings/FP-01/RING.md new file mode 100644 index 0000000000..b0bab28da5 --- /dev/null +++ b/crates/trios-fpga/rings/FP-01/RING.md @@ -0,0 +1,26 @@ +# RING โ€” FP-01 (trios-fpga) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-fpga-fp01 | +| Sealed | No | + +## Purpose + +`synthesis` ring for `trios-fpga`. 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 `synthesis` concern of `trios-fpga`. +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-fpga/rings/FP-01/TASK.md b/crates/trios-fpga/rings/FP-01/TASK.md new file mode 100644 index 0000000000..18baa9f1cc --- /dev/null +++ b/crates/trios-fpga/rings/FP-01/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” FP-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 `synthesis` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-fpga/rings/FP-01/src/lib.rs b/crates/trios-fpga/rings/FP-01/src/lib.rs new file mode 100644 index 0000000000..5f88ad6f5d --- /dev/null +++ b/crates/trios-fpga/rings/FP-01/src/lib.rs @@ -0,0 +1,20 @@ +//! FP-01 โ€” synthesis +//! +//! Ring scaffold for `trios-fpga`. 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 { + "FP-01" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "FP-01"); + } +} diff --git a/crates/trios-fpga/rings/FP-02/AGENTS.md b/crates/trios-fpga/rings/FP-02/AGENTS.md new file mode 100644 index 0000000000..3bbb4816b0 --- /dev/null +++ b/crates/trios-fpga/rings/FP-02/AGENTS.md @@ -0,0 +1,24 @@ +# Agent Instructions โ€” FP-02 + +## Context + +This is the `bitstream` ring of `trios-fpga`, 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 `bitstream` 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-fpga/rings/FP-02/Cargo.toml b/crates/trios-fpga/rings/FP-02/Cargo.toml new file mode 100644 index 0000000000..27c8810ac7 --- /dev/null +++ b/crates/trios-fpga/rings/FP-02/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "trios-fpga-fp02" +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +description = "FP-02 โ€” bitstream ring for trios-fpga" +publish = false diff --git a/crates/trios-fpga/rings/FP-02/RING.md b/crates/trios-fpga/rings/FP-02/RING.md new file mode 100644 index 0000000000..75b6b6daa6 --- /dev/null +++ b/crates/trios-fpga/rings/FP-02/RING.md @@ -0,0 +1,26 @@ +# RING โ€” FP-02 (trios-fpga) + +## Identity + +| Field | Value | +|-------|-------| +| Metal | ๐Ÿฅ‰ Bronze | +| Package | trios-fpga-fp02 | +| Sealed | No | + +## Purpose + +`bitstream` ring for `trios-fpga`. 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 `bitstream` concern of `trios-fpga`. +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-fpga/rings/FP-02/TASK.md b/crates/trios-fpga/rings/FP-02/TASK.md new file mode 100644 index 0000000000..2e2755ace0 --- /dev/null +++ b/crates/trios-fpga/rings/FP-02/TASK.md @@ -0,0 +1,11 @@ +# TASK โ€” FP-02 + +## 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 `bitstream` logic from parent `src/` (follow-up) +- [ ] Add ring-level integration tests +- [ ] Seal ring (Bronze โ†’ Silver promotion) diff --git a/crates/trios-fpga/rings/FP-02/src/lib.rs b/crates/trios-fpga/rings/FP-02/src/lib.rs new file mode 100644 index 0000000000..fee589efd4 --- /dev/null +++ b/crates/trios-fpga/rings/FP-02/src/lib.rs @@ -0,0 +1,20 @@ +//! FP-02 โ€” bitstream +//! +//! Ring scaffold for `trios-fpga`. 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 { + "FP-02" +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ring_id_matches() { + assert_eq!(ring_id(), "FP-02"); + } +}