Skip to content

specs(basics): the 27 t27-basics course lessons, upstreamed from trinity's vendored copy (Closes #7793) - #7799

Merged
gHashTag merged 2 commits into
masterfrom
spec/basics-course-lessons-7793
Oct 8, 2026
Merged

gHashTag merged 2 commits into
masterfrom
spec/basics-course-lessons-7793

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Closes #7793

What

Adds specs/basics/01..27_*.t27, the 27 lesson specs of the t27.ai course "t27 basics" (course 0). Until now they existed only in gHashTag/trinity's vendored mirror of this repository (apps/website/public/t27/files/, trinity commit 127ac93fa). The catalog refresh re-vendors that mirror from this master, so on 2026-10-08 (trinity#1535) it deleted all 27 and the apex publish stopped (gHashTag/trinity#1540).

Evidence

  • Byte for byte: every blob SHA equals the one at trinity 7af714759 (the commit before the refresh).

  • t27c parse-complete (t27c 0.5.0) over the 27 files: 27 parse and consume every token, 0 truncated, 0 discarded, 0 unparsed.

  • t27c spec-status: 8 IMPLEMENTED, 19 NOFN (teaching specs made of constants and test blocks).

  • ASCII only (L3); every file has test blocks (L4).

  • In the site's wasm compiler (t27_compiler.wasm) each compiles clean on all seven backends, which trinity's course-from-spec.mjs requires of a lesson spec.

  • t27c suite --corpus-only over the 27 files: parse, parse completeness, invariant lowering, Verilog test bodies, backend omissions, keyword decls, format strings and typecheck all 27/27; gen, gen-c, gen-rust, gen-verilog, gen-verilog-hir succeed on every file.

  • tools/dupe_scan.py and tools/check_assertionless_spec_tests.py on master + these files: no new duplicate body, no new assertionless test.

One ledger move

The lesson's pub struct Point { x: i32, y: i32 } (17_structs.t27:7) shares its name with TriBezier's pub const Point = struct { x : "f64", y : "f64" } (tri/math/bezier.t27:13), which tri types ratchet reports as a NEW conflict. The second commit blesses it (docs/reports/type_conflicts.json, 101 -> 102) and records the reading as DISTINCT in docs/reports/type_conflicts_classified.json and the DISTINCT table of docs/TYPE_CONFLICTS.md (40 -> 41). The lesson keeps its name because the course page quotes Point { x: i32, y: i32 } verbatim. tri types ratchet: RATCHET CLEAN; tri types classified: OK.

After merge

Trinity's next catalog refresh vendors the same bytes from master, so trinity's restored copy (gHashTag/trinity#1540) becomes a plain mirror again. The other 13 course lesson specs trinity carries have their own upstream PRs: #7496, #7659, #7579, #7586, #7626.

🤖 Generated with Claude Code

…ity's vendored copy (Closes #7793)

The t27.ai course "t27 basics" opens one spec per lesson, specs/basics/01..27.
They were committed only to gHashTag/trinity's vendored mirror of this
repository (apps/website/public/t27/files, trinity 127ac93fa), so the site's
catalog refresh, which re-vendors that mirror from this master, deleted all 27
on 2026-10-08 and the apex publish stopped (gHashTag/trinity#1540).

The files are added byte for byte as trinity carries them (blob SHAs equal to
trinity 7af714759). t27c parse-complete: 27 scanned, 27 parse and consume
every token, 0 discarded. Every file is ASCII and carries test blocks. In the
site's wasm compiler each compiles clean on all seven backends, which is what
trinity's course generator requires of a lesson spec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-08 12:15:25 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 43
PRs with All Checks Green 7
READY 2
FAILING 43
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 43 + 0 + 0 = 45, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=39fa3908f9fd != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

…st TriBezier's control point (Refs #7793)

Adding specs/basics makes `Point` a conflicted type name: the lesson's
`pub struct Point { x: i32, y: i32 }` (17_structs.t27:7) and TriBezier's
`pub const Point = struct { x : "f64", y : "f64" }` (tri/math/bezier.t27:13).
`tri types ratchet` reads that as a NEW conflict, so the set is blessed
(type_conflicts.json, 101 -> 102 names) and the name is read and judged
DISTINCT in type_conflicts_classified.json and the DISTINCT table of
docs/TYPE_CONFLICTS.md (40 -> 41). The lesson keeps its name: the course
page quotes `Point { x: i32, y: i32 }` verbatim.

tri types ratchet: RATCHET CLEAN. tri types classified: OK.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-08 12:37:43 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 45
PRs with All Checks Green 5
READY 2
FAILING 45
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 45 + 0 + 0 = 47, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=39fa3908f9fd != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag enabled auto-merge (squash) October 8, 2026 12:49
@gHashTag
gHashTag merged commit 3e89e83 into master Oct 8, 2026
30 of 31 checks passed
gHashTag pushed a commit that referenced this pull request Oct 8, 2026
Master moved (#7799 and #7802, neither touching t27b); the merge is clean.
It is made on e6e8257 because the t27b lab is receipting that master,
so the lane receipt can compare this head against it. The ledger keeps
only this PR's two rows (zig_test_shadowing blocked -> pass,
shadow_module_var new pass) on master's.

Closes #7668

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag pushed a commit that referenced this pull request Oct 8, 2026
Brings master e6e8257 (t27-basics lessons #7799, AX7203 Ethernet beacon
#7802) in. No conflict.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ScHVrGSr6zZUdwkdC8DR9k
gHashTag pushed a commit that referenced this pull request Oct 8, 2026
…) into the buses-course specs (Refs #7625)

Brings master e6e8257 in. No conflict. Master adds specs/fpga/eth_beacon.t27
and rgmii_sniff.t27 beside this branch's eth_crc.t27 and rgmii.t27; the
duplicate-body scan, the elaboration ratchet and the seal gates are re-run
on the merged tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ScHVrGSr6zZUdwkdC8DR9k
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

specs/basics: the 27 t27-basics course lessons have no home but trinity's vendored copy

1 participant