Skip to content

EPIC: T27 backend — rings from the decision core to silicon #1279

Description

@gHashTag

Everything below the interface is written in T27 and generated to its target. Swift keeps the interface and nothing under it. The single exception is the seed — t27/bootstrap, the minimal Rust compiler t27c, where hand-written Rust is the point.

A rule transcribed into Swift, Rust, Zig and Verilog is four rules that agree until someone edits one. Generated from one .t27 it is one rule.

Rings, innermost first

Like the layers of a trunk. A ring depends only on rings inside it, and is not started until the one inside it runs in production.

Ring What Depends Target
T27-00 Decision core: retry, review, merge gate, capacity. No clock, no network, no store, no strings Rust + Verilog
T27-01 A2A protocol: agent card, message, task, registry semantics 00 Rust + Postgres
T27-02 Orchestration: the Queen's tick, delegation, review sweep, bounded send-back 00, 01 Rust + inngest
T27-03 Transport: SSE, per-agent buffer, event ids 01 Rust
T27-04 Scoring: salience, reliability, latency — where TNF belongs 00 Rust + Verilog

Ring 00 needs no floating point at all: enums and integers, which is why it is also the ring that synthesises without argument.

Division of labour — read before touching anything

Another agent owns the t27 repository and the FPGA boards (wave W931, branch claude/igla-fpga-improvements). Their ledger shows an active yosys/nextpnr sweep across 19 tracts, per-arm XDC, and the TNF publication gate G8.

Therefore:

  • Do not edit /Users/playra/t27. Compiler gaps are raised with them, not patched here.
  • Do not program a board. A pnr or route job may be in flight.
  • t27/fpga/HARDWARE_SSOT.md is authoritative for hardware. This epic does not keep a second register.

This epic owns the trios side: .t27 ring sources, the parity harnesses, and the service that runs them.

Verified here on 19 August 2026

The compiler builds; targets exist: gen-rust, gen (Zig), gen-c, gen-verilog, icarus-simulate.

Open toolchain, no Vivado: openFPGALoader, iverilog, yosys, nextpnr-xilinx.

Two stands answer over JTAG:

  • -c ft232 / digilent_hs2 → idcode 0x3636093, Artix-7 200T. Their SSOT names this board QMTech Wukong V1 (XC7A200T-FGG676); the operator called it an ALINX AX7203. Same idcode, same die — the naming needs one word from the operator, and their SSOT wins until it comes.
  • -c ft2232 / digilent → idcode 0x3727093, Zynq xc7z020 + Cortex-A9 (0x4ba00477) — tri-net's board.

Blocked on the seed

Ring 00 generates Rust today, but not valid Rust. Found by generating and reading:

  1. Enum.variant emits as Enum.variant; Rust needs Enum::variant.
  2. .variant shorthand emits as variant::.
  3. switch as a function body emits an empty match x { }; — the arms are dropped.
  4. ; comments inside an enum body become variants. Use // inside braces.
  5. pub module name; was not parsed from a //-commented file; gen-verilog named the module unknown.

(1) and (2) block every ring. All five are in the seed, which is the other agent's repository.

Already built — do not rewrite

A2A is already a client/server split on Postgres: nine routes (register, unregister, heartbeat, agents, matrix, message, task/assign, task/update, stream), table agents, view agent_matrix. Ring 01 restates this contract; it does not invent one.

Railway project 999 already runs Postgres, Redis, inngest, postgrest and MinIO. The Queen's loop is a durable workflow, not a five-minute timer inside an app that has to stay alive.

TNF

Sign, exponent in balanced ternary trits, M-bit mantissa, 1 + E_t + M = N. No implementation was found in the trios tree; the other agent's ledger reports it measured at gate G8 (19/19 tracts routed, 14/15 within seed noise, bin16 exactly 1.00×, LNS16 an honest 1.46× outlier). Their numbers, not ours. This epic does not claim TNF is applied until a .t27 module in trios uses it and the answer is checked.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions