From 4de8af4a6e5521c8ff78bb3e6b269b79002fa5a3 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Sun, 18 Oct 2026 11:04:13 +0700 Subject: [PATCH] feat(website): /t27f/graph/ draws the T27F graph view of a .t27 spec One box per node and one line per edge of a .t27 spec, read from the spec's bytes by specs/t27f/spec_graph_export.t27 and placed, sized and coloured by specs/t27f/spec_graph_view.t27, both running as t27f.wasm. A spec picker over tutorial 08 and eight t27f specs; a spec over 192 nodes or 254 edges shows the exporter's refusal and nothing is drawn. graph.js is 39 lines of glue. PROVENANCE.txt records the t27 commit, compiler, checksums and rebuild. Refs #1648 Co-Authored-By: Claude Sonnet 5.5 --- apps/website/README.md | 10 + apps/website/public/t27f/graph/PROVENANCE.txt | 46 + apps/website/public/t27f/graph/graph.js | 39 + apps/website/public/t27f/graph/index.html | 33 + .../public/t27f/graph/spec_graph_view.mjs | 182 +++ .../graph/specs/08_modules_and_arrays.t27 | 93 ++ .../website/public/t27f/graph/specs/quest.t27 | 360 ++++++ .../t27f/graph/specs/reel_gf16_nmse.t27 | 349 ++++++ .../t27f/graph/specs/reel_t27_basics.t27 | 212 ++++ .../public/t27f/graph/specs/spec_graph.t27 | 1072 +++++++++++++++++ .../t27f/graph/specs/spec_graph_export.t27 | 971 +++++++++++++++ .../t27f/graph/specs/spec_graph_view.t27 | 800 ++++++++++++ .../public/t27f/graph/specs/topic_reel.t27 | 241 ++++ .../public/t27f/graph/specs/ui_plan.t27 | 638 ++++++++++ apps/website/public/t27f/graph/t27f.wasm | Bin 0 -> 38321 bytes 15 files changed, 5046 insertions(+) create mode 100644 apps/website/public/t27f/graph/PROVENANCE.txt create mode 100644 apps/website/public/t27f/graph/graph.js create mode 100644 apps/website/public/t27f/graph/index.html create mode 100644 apps/website/public/t27f/graph/spec_graph_view.mjs create mode 100644 apps/website/public/t27f/graph/specs/08_modules_and_arrays.t27 create mode 100644 apps/website/public/t27f/graph/specs/quest.t27 create mode 100644 apps/website/public/t27f/graph/specs/reel_gf16_nmse.t27 create mode 100644 apps/website/public/t27f/graph/specs/reel_t27_basics.t27 create mode 100644 apps/website/public/t27f/graph/specs/spec_graph.t27 create mode 100644 apps/website/public/t27f/graph/specs/spec_graph_export.t27 create mode 100644 apps/website/public/t27f/graph/specs/spec_graph_view.t27 create mode 100644 apps/website/public/t27f/graph/specs/topic_reel.t27 create mode 100644 apps/website/public/t27f/graph/specs/ui_plan.t27 create mode 100644 apps/website/public/t27f/graph/t27f.wasm diff --git a/apps/website/README.md b/apps/website/README.md index 1f7ec8a8bd..73d595b745 100644 --- a/apps/website/README.md +++ b/apps/website/README.md @@ -236,6 +236,16 @@ npm run check:discovery # кон коммитит свои числа. Публикация на t27.ai остаётся за `deploy-site.yml` — вручную, по правилу «контент утверждается до выхода». +### T27F graph view (`/t27f/graph/`) + +A static page, `public/t27f/graph/`, that draws the T27F graph of a `.t27` spec: one box per node, +one line per edge, labelled with kind, name, source lines and inference label. The graph comes from +`specs/t27f/spec_graph_export.t27` and the layout from `specs/t27f/spec_graph_view.t27`, both +compiled to `t27f.wasm`; `graph.js` is only the glue (loads the wasm, feeds the bytes, emits SVG). +A spec over the graph's cap (192 nodes, 254 edges) is refused with the verdict, never truncated. +`PROVENANCE.txt` in that directory records the t27 commit, the compiler, the checksums and how to +rebuild. To add a spec to the picker, copy it from t27 into `specs/` there and add an `