From 8220e9395eae6f44fc7ed1f224052b7becdd7c14 Mon Sep 17 00:00:00 2001 From: Dmitrii Fedorov Date: Thu, 24 Sep 2026 15:12:25 -0300 Subject: [PATCH 1/2] fix(site): the onboarding snapshot follows the refreshed catalog, so the build passes again The catalog refresh (#1039) moved the manifest to 1577 specs over 12 repositories, and apps/website prebuild (onboarding-from-spec) refuses to build while specs/catalog/onboarding.t27 still carries the 2026-09-21 snapshot. That is what failed the vibee-editor image on Railway at 2026-09-24 17:49, so app.t27.ai kept serving the 2026-09-21 board. - Snapshot to the manifest: SPEC_COUNT 1577, SPEC_LINES 451235, health 1185 / 232 / 160, REPO_COUNT 12, WORLD_COUNT 7, HEALTH_FAIL_UNPARSED 160, HEALTH_PARTIAL 113, MEASURED_AT 2026-09-24. - The subset asserts become '<=': the seven specs that parsed and lost a backend were repaired, so every remaining fail is unparsed, and a strict '<' made that repair fail the build (the spec's own rule: a test must not forbid its subject from reaching zero). - public/agents.t27 and public/llms.txt regenerated. npm run build (prebuild included) passes locally; onboarding-from-spec reports 10 spec tests, 54 asserts, all hold. Co-Authored-By: Claude Opus 5.5 --- apps/website/public/agents.t27 | 40 +++++++++++++---------- apps/website/public/llms.txt | 40 +++++++++++++---------- apps/website/specs/catalog/onboarding.t27 | 38 ++++++++++++--------- 3 files changed, 68 insertions(+), 50 deletions(-) diff --git a/apps/website/public/agents.t27 b/apps/website/public/agents.t27 index 85182108f7..e0ddd752ab 100644 --- a/apps/website/public/agents.t27 +++ b/apps/website/public/agents.t27 @@ -1,5 +1,5 @@ ; GENERATED by apps/website/scripts/onboarding-from-spec.mjs (gHashTag/trinity) -; from specs/catalog/onboarding.t27, sha256 aca0bd9bada151e67d5cda4af796c137089d52f734c33f793a3a11b6c20572e3 +; from specs/catalog/onboarding.t27, sha256 118027449e2dded19319aa5474e72e533131407a57e891401a0252ebf4eb6545 ; Served as https://t27.ai/agents.t27 and https://t27.ai/llms.txt -- the same bytes at both addresses. ; Do not edit either file: edit the spec and re-run the generator. @@ -101,34 +101,38 @@ pub const JS_TS_DIVERGENCES : u16 = 0; pub const REQUIRES_RUNNING_OUR_CODE : bool = false; ; --- The corpus on the day this was written -------------------------------------------------- -pub const MEASURED_AT : str = "2026-09-21"; -pub const SPEC_COUNT : u16 = 1419; -pub const SPEC_LINES : u32 = 373151; +pub const MEASURED_AT : str = "2026-09-24"; +pub const SPEC_COUNT : u16 = 1577; +pub const SPEC_LINES : u32 = 451235; ; Health as the manifest reports it. The three add up to SPEC_COUNT, and the test below says so. ; These moved a long way on 2026-09-21, and the cause was the instrument, not the corpus: the ; wasm served here until then was built from no committed source, and it accepted anything. ; Fed a Zig file, a Markdown file or a string literal left open, it answered typecheck.ok and ; emitted C, Rust, Verilog and Zig. The binary now served is built from bootstrap/src, and it ; reads what is actually in the file. Nothing in the corpus got worse; it got measured. -pub const HEALTH_OK : u16 = 1017; -pub const HEALTH_WARN : u16 = 184; -pub const HEALTH_FAIL : u16 = 218; +; They moved again on 2026-09-24, and this time the corpus did: specs written in Zig or Rust +; idioms, the older test style or with typos were translated to t27 -- 62 in gHashTag/t27 +; (t27#4793) and 54 in four other repositories -- and two more worlds joined the scan. +pub const HEALTH_OK : u16 = 1185; +pub const HEALTH_WARN : u16 = 232; +pub const HEALTH_FAIL : u16 = 160; ; Repositories the manifest was built from, and the worlds the scan found on GitHub. -pub const REPO_COUNT : u8 = 10; -pub const WORLD_COUNT : u8 = 5; +pub const REPO_COUNT : u8 = 12; +pub const WORLD_COUNT : u8 = 7; ; "fail" is two different things wearing one label, and the split is measured rather than ; described: a spec that NEVER PARSED, so no backend ran and its clean counters mean nothing ; ran rather than nothing went wrong -- and a spec that parsed and then lost a backend. -; Do not report the second count as the first, and do not read the total as "218 broken specs". +; Do not report the second count as the first, and do not read the total as that many broken specs. ; A file with the .t27 extension is not always t27: Zig source, Markdown prose, an older ; `spec Name { }` dialect and fixtures this repository damages on purpose all sit in the first ; group. This file no longer prints a count per class. It carried one until 2026-09-21, hand ; typed, adding to 154 beside a sentence that said 145 -- a breakdown nothing checked, which is ; the one kind of number this document is not allowed to hold. pub const HEALTH_FAIL_NOTE : str = "health=fail covers both a spec that did not parse and a spec whose backend failed; the manifest's backendFailures separates them"; -pub const HEALTH_FAIL_UNPARSED : u16 = 211; -; What is left once the unparsed are set aside: seven specs that parse, typecheck, and emit -; six of seven languages. That is the honest size of "broken and readable". +pub const HEALTH_FAIL_UNPARSED : u16 = 160; +; What is left once the unparsed are set aside was seven specs on 2026-09-21 that parsed, +; typechecked and emitted six of seven languages -- the honest size of "broken and readable". +; On 2026-09-24 it is none: those seven were repaired, so every remaining fail never parsed. ; The largest class used to be a different one. js and ts are declarations-only backends, and ; a const whose initialiser they had no spelling for failed the WHOLE module -- costing every ; declaration that was fine to refuse the one that was not, on files the other five backends @@ -139,7 +143,7 @@ pub const HEALTH_FAIL_JS_ONLY : u16 = 0; ; Announced, not dropped. A spec here emits a real module that says inside itself what it left ; out, as data -- `__NOT_EMITTED__`, a list a tool can read without parsing comments. That is ; neither whole nor broken, so it is counted apart and coloured a warning, never a pass. -pub const HEALTH_PARTIAL : u16 = 71; +pub const HEALTH_PARTIAL : u16 = 113; ; --- The game -------------------------------------------------------------------------------- pub const GAME : str = "Queen Hive"; @@ -210,10 +214,12 @@ test health_accounts_for_every_spec { assert HEALTH_FAIL > 0; // The qualifier is part of the count, not a footnote to it: each of these is a SUBSET of // fail, so a reading of HEALTH_FAIL that ignores them is reading a smaller number wrong. - assert HEALTH_FAIL_JS_ONLY < HEALTH_FAIL; - assert HEALTH_FAIL_UNPARSED < HEALTH_FAIL; + // A subset may be the whole: on 2026-09-24 every fail is unparsed, because the specs that + // parsed and lost a backend were repaired. A strict '<' here made that repair fail the build. + assert HEALTH_FAIL_JS_ONLY <= HEALTH_FAIL; + assert HEALTH_FAIL_UNPARSED <= HEALTH_FAIL; // The subset that is worth stating on its own: 209 of the 216 never reached a backend at - // all. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true + // all on 2026-09-21, and 160 of 160 on 2026-09-24. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true // the day it was written and is a lie the moment the class it counts is fixed. A test // that forbids its own subject from reaching zero is a test against the work. assert HEALTH_FAIL_UNPARSED > 0; diff --git a/apps/website/public/llms.txt b/apps/website/public/llms.txt index 85182108f7..e0ddd752ab 100644 --- a/apps/website/public/llms.txt +++ b/apps/website/public/llms.txt @@ -1,5 +1,5 @@ ; GENERATED by apps/website/scripts/onboarding-from-spec.mjs (gHashTag/trinity) -; from specs/catalog/onboarding.t27, sha256 aca0bd9bada151e67d5cda4af796c137089d52f734c33f793a3a11b6c20572e3 +; from specs/catalog/onboarding.t27, sha256 118027449e2dded19319aa5474e72e533131407a57e891401a0252ebf4eb6545 ; Served as https://t27.ai/agents.t27 and https://t27.ai/llms.txt -- the same bytes at both addresses. ; Do not edit either file: edit the spec and re-run the generator. @@ -101,34 +101,38 @@ pub const JS_TS_DIVERGENCES : u16 = 0; pub const REQUIRES_RUNNING_OUR_CODE : bool = false; ; --- The corpus on the day this was written -------------------------------------------------- -pub const MEASURED_AT : str = "2026-09-21"; -pub const SPEC_COUNT : u16 = 1419; -pub const SPEC_LINES : u32 = 373151; +pub const MEASURED_AT : str = "2026-09-24"; +pub const SPEC_COUNT : u16 = 1577; +pub const SPEC_LINES : u32 = 451235; ; Health as the manifest reports it. The three add up to SPEC_COUNT, and the test below says so. ; These moved a long way on 2026-09-21, and the cause was the instrument, not the corpus: the ; wasm served here until then was built from no committed source, and it accepted anything. ; Fed a Zig file, a Markdown file or a string literal left open, it answered typecheck.ok and ; emitted C, Rust, Verilog and Zig. The binary now served is built from bootstrap/src, and it ; reads what is actually in the file. Nothing in the corpus got worse; it got measured. -pub const HEALTH_OK : u16 = 1017; -pub const HEALTH_WARN : u16 = 184; -pub const HEALTH_FAIL : u16 = 218; +; They moved again on 2026-09-24, and this time the corpus did: specs written in Zig or Rust +; idioms, the older test style or with typos were translated to t27 -- 62 in gHashTag/t27 +; (t27#4793) and 54 in four other repositories -- and two more worlds joined the scan. +pub const HEALTH_OK : u16 = 1185; +pub const HEALTH_WARN : u16 = 232; +pub const HEALTH_FAIL : u16 = 160; ; Repositories the manifest was built from, and the worlds the scan found on GitHub. -pub const REPO_COUNT : u8 = 10; -pub const WORLD_COUNT : u8 = 5; +pub const REPO_COUNT : u8 = 12; +pub const WORLD_COUNT : u8 = 7; ; "fail" is two different things wearing one label, and the split is measured rather than ; described: a spec that NEVER PARSED, so no backend ran and its clean counters mean nothing ; ran rather than nothing went wrong -- and a spec that parsed and then lost a backend. -; Do not report the second count as the first, and do not read the total as "218 broken specs". +; Do not report the second count as the first, and do not read the total as that many broken specs. ; A file with the .t27 extension is not always t27: Zig source, Markdown prose, an older ; `spec Name { }` dialect and fixtures this repository damages on purpose all sit in the first ; group. This file no longer prints a count per class. It carried one until 2026-09-21, hand ; typed, adding to 154 beside a sentence that said 145 -- a breakdown nothing checked, which is ; the one kind of number this document is not allowed to hold. pub const HEALTH_FAIL_NOTE : str = "health=fail covers both a spec that did not parse and a spec whose backend failed; the manifest's backendFailures separates them"; -pub const HEALTH_FAIL_UNPARSED : u16 = 211; -; What is left once the unparsed are set aside: seven specs that parse, typecheck, and emit -; six of seven languages. That is the honest size of "broken and readable". +pub const HEALTH_FAIL_UNPARSED : u16 = 160; +; What is left once the unparsed are set aside was seven specs on 2026-09-21 that parsed, +; typechecked and emitted six of seven languages -- the honest size of "broken and readable". +; On 2026-09-24 it is none: those seven were repaired, so every remaining fail never parsed. ; The largest class used to be a different one. js and ts are declarations-only backends, and ; a const whose initialiser they had no spelling for failed the WHOLE module -- costing every ; declaration that was fine to refuse the one that was not, on files the other five backends @@ -139,7 +143,7 @@ pub const HEALTH_FAIL_JS_ONLY : u16 = 0; ; Announced, not dropped. A spec here emits a real module that says inside itself what it left ; out, as data -- `__NOT_EMITTED__`, a list a tool can read without parsing comments. That is ; neither whole nor broken, so it is counted apart and coloured a warning, never a pass. -pub const HEALTH_PARTIAL : u16 = 71; +pub const HEALTH_PARTIAL : u16 = 113; ; --- The game -------------------------------------------------------------------------------- pub const GAME : str = "Queen Hive"; @@ -210,10 +214,12 @@ test health_accounts_for_every_spec { assert HEALTH_FAIL > 0; // The qualifier is part of the count, not a footnote to it: each of these is a SUBSET of // fail, so a reading of HEALTH_FAIL that ignores them is reading a smaller number wrong. - assert HEALTH_FAIL_JS_ONLY < HEALTH_FAIL; - assert HEALTH_FAIL_UNPARSED < HEALTH_FAIL; + // A subset may be the whole: on 2026-09-24 every fail is unparsed, because the specs that + // parsed and lost a backend were repaired. A strict '<' here made that repair fail the build. + assert HEALTH_FAIL_JS_ONLY <= HEALTH_FAIL; + assert HEALTH_FAIL_UNPARSED <= HEALTH_FAIL; // The subset that is worth stating on its own: 209 of the 216 never reached a backend at - // all. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true + // all on 2026-09-21, and 160 of 160 on 2026-09-24. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true // the day it was written and is a lie the moment the class it counts is fixed. A test // that forbids its own subject from reaching zero is a test against the work. assert HEALTH_FAIL_UNPARSED > 0; diff --git a/apps/website/specs/catalog/onboarding.t27 b/apps/website/specs/catalog/onboarding.t27 index caad119d03..be5763b8fd 100644 --- a/apps/website/specs/catalog/onboarding.t27 +++ b/apps/website/specs/catalog/onboarding.t27 @@ -89,34 +89,38 @@ pub const JS_TS_DIVERGENCES : u16 = 0; pub const REQUIRES_RUNNING_OUR_CODE : bool = false; ; --- The corpus on the day this was written -------------------------------------------------- -pub const MEASURED_AT : str = "2026-09-21"; -pub const SPEC_COUNT : u16 = 1419; -pub const SPEC_LINES : u32 = 373151; +pub const MEASURED_AT : str = "2026-09-24"; +pub const SPEC_COUNT : u16 = 1577; +pub const SPEC_LINES : u32 = 451235; ; Health as the manifest reports it. The three add up to SPEC_COUNT, and the test below says so. ; These moved a long way on 2026-09-21, and the cause was the instrument, not the corpus: the ; wasm served here until then was built from no committed source, and it accepted anything. ; Fed a Zig file, a Markdown file or a string literal left open, it answered typecheck.ok and ; emitted C, Rust, Verilog and Zig. The binary now served is built from bootstrap/src, and it ; reads what is actually in the file. Nothing in the corpus got worse; it got measured. -pub const HEALTH_OK : u16 = 1017; -pub const HEALTH_WARN : u16 = 184; -pub const HEALTH_FAIL : u16 = 218; +; They moved again on 2026-09-24, and this time the corpus did: specs written in Zig or Rust +; idioms, the older test style or with typos were translated to t27 -- 62 in gHashTag/t27 +; (t27#4793) and 54 in four other repositories -- and two more worlds joined the scan. +pub const HEALTH_OK : u16 = 1185; +pub const HEALTH_WARN : u16 = 232; +pub const HEALTH_FAIL : u16 = 160; ; Repositories the manifest was built from, and the worlds the scan found on GitHub. -pub const REPO_COUNT : u8 = 10; -pub const WORLD_COUNT : u8 = 5; +pub const REPO_COUNT : u8 = 12; +pub const WORLD_COUNT : u8 = 7; ; "fail" is two different things wearing one label, and the split is measured rather than ; described: a spec that NEVER PARSED, so no backend ran and its clean counters mean nothing ; ran rather than nothing went wrong -- and a spec that parsed and then lost a backend. -; Do not report the second count as the first, and do not read the total as "218 broken specs". +; Do not report the second count as the first, and do not read the total as that many broken specs. ; A file with the .t27 extension is not always t27: Zig source, Markdown prose, an older ; `spec Name { }` dialect and fixtures this repository damages on purpose all sit in the first ; group. This file no longer prints a count per class. It carried one until 2026-09-21, hand ; typed, adding to 154 beside a sentence that said 145 -- a breakdown nothing checked, which is ; the one kind of number this document is not allowed to hold. pub const HEALTH_FAIL_NOTE : str = "health=fail covers both a spec that did not parse and a spec whose backend failed; the manifest's backendFailures separates them"; -pub const HEALTH_FAIL_UNPARSED : u16 = 211; -; What is left once the unparsed are set aside: seven specs that parse, typecheck, and emit -; six of seven languages. That is the honest size of "broken and readable". +pub const HEALTH_FAIL_UNPARSED : u16 = 160; +; What is left once the unparsed are set aside was seven specs on 2026-09-21 that parsed, +; typechecked and emitted six of seven languages -- the honest size of "broken and readable". +; On 2026-09-24 it is none: those seven were repaired, so every remaining fail never parsed. ; The largest class used to be a different one. js and ts are declarations-only backends, and ; a const whose initialiser they had no spelling for failed the WHOLE module -- costing every ; declaration that was fine to refuse the one that was not, on files the other five backends @@ -127,7 +131,7 @@ pub const HEALTH_FAIL_JS_ONLY : u16 = 0; ; Announced, not dropped. A spec here emits a real module that says inside itself what it left ; out, as data -- `__NOT_EMITTED__`, a list a tool can read without parsing comments. That is ; neither whole nor broken, so it is counted apart and coloured a warning, never a pass. -pub const HEALTH_PARTIAL : u16 = 71; +pub const HEALTH_PARTIAL : u16 = 113; ; --- The game -------------------------------------------------------------------------------- pub const GAME : str = "Queen Hive"; @@ -198,10 +202,12 @@ test health_accounts_for_every_spec { assert HEALTH_FAIL > 0; // The qualifier is part of the count, not a footnote to it: each of these is a SUBSET of // fail, so a reading of HEALTH_FAIL that ignores them is reading a smaller number wrong. - assert HEALTH_FAIL_JS_ONLY < HEALTH_FAIL; - assert HEALTH_FAIL_UNPARSED < HEALTH_FAIL; + // A subset may be the whole: on 2026-09-24 every fail is unparsed, because the specs that + // parsed and lost a backend were repaired. A strict '<' here made that repair fail the build. + assert HEALTH_FAIL_JS_ONLY <= HEALTH_FAIL; + assert HEALTH_FAIL_UNPARSED <= HEALTH_FAIL; // The subset that is worth stating on its own: 209 of the 216 never reached a backend at - // all. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true + // all on 2026-09-21, and 160 of 160 on 2026-09-24. An earlier version of this test demanded HEALTH_FAIL_JS_ONLY > 0, which was true // the day it was written and is a lie the moment the class it counts is fixed. A test // that forbids its own subject from reaching zero is a test against the work. assert HEALTH_FAIL_UNPARSED > 0; From e95bf21fa369609d47a3bcf8bc56d6fef7722f71 Mon Sep 17 00:00:00 2001 From: Dmitrii Fedorov Date: Thu, 24 Sep 2026 15:20:52 -0300 Subject: [PATCH 2/2] fix(site): classify the tt-trinity-gamma copies the refresh brought in The catalog refresh (#1039) vendored tt-trinity-gamma's own copies of three format converters and three widths above the GF4-GF24 ladder. The silicon coverage gate (website-checks, check:silicon) requires every spec naming a verified format to be classified, so it went red on main. They get the same EXCLUDED reasons as their tt-trinity-euler twins. Co-Authored-By: Claude Opus 5.5 --- apps/website/src/data/siliconHistory.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/website/src/data/siliconHistory.ts b/apps/website/src/data/siliconHistory.ts index d3762ddf30..f697ba63b0 100644 --- a/apps/website/src/data/siliconHistory.ts +++ b/apps/website/src/data/siliconHistory.ts @@ -195,6 +195,11 @@ export const EXCLUDED: Record = { 'tt-trinity-euler/specs/numeric/gf64.t27': 'format above the silicon-verified GF4-GF24 ladder', 'tt-trinity-euler/specs/numeric/gf128.t27': 'format above the silicon-verified GF4-GF24 ladder', 'tt-trinity-euler/specs/numeric/gf256.t27': 'structural by design — bias is an open R&D parameter', + // tt-trinity-gamma carries its own copies of the same three (catalog refresh of + // 2026-09-24, #1039); same widths, same reasons. + 'tt-trinity-gamma/specs/numeric/gf64.t27': 'format above the silicon-verified GF4-GF24 ladder', + 'tt-trinity-gamma/specs/numeric/gf128.t27': 'format above the silicon-verified GF4-GF24 ladder', + 'tt-trinity-gamma/specs/numeric/gf256.t27': 'structural by design — bias is an open R&D parameter', // Widths the GitHub-sourced refresh brought in from t27 master, none of them // rungs of the silicon-verified ladder (GF4, GF8, GF12, GF16, GF20, GF24 -- @@ -225,6 +230,9 @@ export const EXCLUDED: Record = { 'tt-trinity-euler/specs/fpga/gf16_to_fp16.t27': 'a converter between two formats', 'tt-trinity-euler/specs/fpga/gf16_to_posit16.t27': 'a converter between two formats', 'tt-trinity-euler/specs/fpga/gf32_to_fp32.t27': 'a converter between two formats', + 'tt-trinity-gamma/specs/fpga/gf16_to_fp16.t27': 'a converter between two formats', + 'tt-trinity-gamma/specs/fpga/gf16_to_posit16.t27': 'a converter between two formats', + 'tt-trinity-gamma/specs/fpga/gf32_to_fp32.t27': 'a converter between two formats', } /**