EPIC: T27 backend - rings from the decision core to silicon
Everything below the interface is written in T27 and generated to its target. Swift keeps the interface and nothing under it. A rule transcribed into Swift, Rust, Zig and Verilog is four rules that agree until someone edits one.
Rings, innermost first
| Ring |
What |
Depends |
Target |
| T27-00 |
Decision core: retry, review, merge gate, capacity |
- |
Rust + Verilog |
| T27-01 |
A2A protocol |
00 |
Rust + Postgres |
| T27-02 |
Orchestration: the Queen's tick |
00, 01 |
Rust + inngest |
| T27-03 |
Transport: SSE |
01 |
Rust |
| T27-04 |
Scoring: salience, reliability, latency |
00 |
Rust + Verilog |
Division of labour
Another agent owns /Users/playra/t27 and the FPGA boards. Do not edit /Users/playra/t27. Do not program a board. t27/fpga/HARDWARE_SSOT.md is authoritative for hardware.
Where it stands
RING-00 is executed on live data every round (#1331) and its Rust answer is compared to Swift's; the Swift answer is the one acted on. Five compiler gaps in the seed block generation of valid Rust for the other rings. Those gaps are the other agent's repository.
What a bee can do here without a Swift compiler, a board or the seed: write the parity ledger that says, per ring, what exists, what is generated, what is executed, and what decides - so the next wave starts from a fact and not from this table.
User Scenarios & Testing
User Story 1 - The ring table is read from the tree, not from this issue (P1)
Acceptance Scenarios:
- Given the directory
trios/rings/,
When the ledger is generated,
Then every T27-* directory present is listed with the count of .t27 files and of generated files under it.
- Given RING-00's parity script
trios/tests/t27/ring00_parity.sh,
When the ledger is generated,
Then the ledger states whether that script exists and how many assertions it contains, by counting.
Requirements
- FR-001: A script MUST walk
trios/rings/ and emit one table row per T27-* directory, with file counts, not descriptions.
- FR-002: The ledger MUST record, for each ring, which of
gen-rust, gen, gen-c, gen-verilog outputs exist as files, by name.
- FR-003: The ledger MUST NOT claim any ring "decides" anything; it records presence only.
- FR-004: The script MUST NOT read or write anything under
/Users/playra/t27.
Success Criteria
trios/tools/ring-ledger.sh exists, is POSIX sh, and produces trios/docs/ring-ledger.md.
- The ledger has one table with a header row and at least one row per
T27-* directory found.
- The ledger contains the exact string
ring00_parity.sh and a count of its test or grep -q lines.
- The script defines a function named
ring_row; that identifier appears nowhere in the tree today.
Boundary
trios/tools/ring-ledger.sh
trios/docs/ring-ledger.md
EPIC: T27 backend - rings from the decision core to silicon
Everything below the interface is written in T27 and generated to its target. Swift keeps the interface and nothing under it. A rule transcribed into Swift, Rust, Zig and Verilog is four rules that agree until someone edits one.
Rings, innermost first
Division of labour
Another agent owns
/Users/playra/t27and the FPGA boards. Do not edit/Users/playra/t27. Do not program a board.t27/fpga/HARDWARE_SSOT.mdis authoritative for hardware.Where it stands
RING-00 is executed on live data every round (#1331) and its Rust answer is compared to Swift's; the Swift answer is the one acted on. Five compiler gaps in the seed block generation of valid Rust for the other rings. Those gaps are the other agent's repository.
What a bee can do here without a Swift compiler, a board or the seed: write the parity ledger that says, per ring, what exists, what is generated, what is executed, and what decides - so the next wave starts from a fact and not from this table.
User Scenarios & Testing
User Story 1 - The ring table is read from the tree, not from this issue (P1)
Acceptance Scenarios:
trios/rings/,When the ledger is generated,
Then every
T27-*directory present is listed with the count of.t27files and of generated files under it.trios/tests/t27/ring00_parity.sh,When the ledger is generated,
Then the ledger states whether that script exists and how many assertions it contains, by counting.
Requirements
trios/rings/and emit one table row perT27-*directory, with file counts, not descriptions.gen-rust,gen,gen-c,gen-verilogoutputs exist as files, by name./Users/playra/t27.Success Criteria
trios/tools/ring-ledger.shexists, is POSIX sh, and producestrios/docs/ring-ledger.md.T27-*directory found.ring00_parity.shand a count of itstestorgrep -qlines.ring_row; that identifier appears nowhere in the tree today.Boundary
trios/tools/ring-ledger.shtrios/docs/ring-ledger.md