Apex publish broken since #1535: the catalog refresh wiped 40 course lesson specs #1540
Description
What broke
Since merge commit 8e81487 (PR #1535, the t27 world scan catalog refresh, 2026-10-08 09:42Z) the apex publish fails: gHashTag/ghashtag.github.io run 37758579139 dies in npm run build -> prebuild -> node scripts/course-from-spec.mjs with 47 problems.
Why
Course PRs committed lesson specs straight into apps/website/public/t27/files/, the tree scripts/sync-t27-specs.mjs wipes and re-vendors from gHashTag/t27 master. The refresh did exactly that, so:
- 33 course-only specs vanished:
specs/basics/01..27(127ac93, course 0),specs/fpga/coverage.t27(cb62daf),specs/fpga/{mmcm,mtbf,reset_sync}.t27(6c745c4),specs/fpga/{eth_crc,rgmii}.t27(6518d5c, course: buses-and-peripherals -- 27 lessons, 33 casts, 392 pages (Closes #1484) #1516); - 7 corpus specs the courses had corrected reverted to t27 master, which the vendored wasm compiler reports as not clean:
specs/numeric/phi_ratio.t27(151 discarded),specs/math/phi_split_optimality.t27(131),specs/math/radix_economy.t27(59),specs/fpga/uart.t27(12),specs/fpga/spi.t27(73),specs/fpga/top_level.t27(57),specs/fpga/bridge.t27(6 typecheck errors).
The world scan's catalog gates never ran check:course, and a PR opened with the workflow token starts no website-checks, so nothing caught it before merge.
Where the truth belongs
In gHashTag/t27. Every one of the 40 files has an upstream PR in gHashTag/t27 with the same blobs: t27#7799 (the 27 specs/basics lessons) and t27#7496, t27#7659, t27#7579, t27#7586, t27#7626 (the other 13).
Done when
node scripts/course-from-spec.mjs --checkpasses on main and the apex publish is green;- the world scan refuses a refresh that drops or breaks a lesson spec.
Activity
website: restore the 40 course lesson specs the catalog refresh wiped…
gHashTag commentedon Oct 8, 2026
Fixed on main by #1539 (cec67b3). The upstream half is in gHashTag/t27: #7799 adds the 27 specs/basics lessons; #7496 (GoldenFloat corrections), #7659 (uart, spi, bridge, top_level), #7579 (coverage), #7586 (mmcm, mtbf, reset_sync) and #7626 (rgmii, eth_crc) carry the other 13. Until they merge, the sync keeps the course's own copies (the lesson-specs rule in #1539).
gHashTag commentedon Oct 8, 2026
Fixed by #1539, and the apex publishes again. "Publish website from trinity" run 37775991945 succeeded at 12:37 UTC. The apex now carries 827a6e3 ("from trinity 32ed4e5"), and
t27/files/specs/basics/19_use_other_modules.t27is back on the site.What #1539 changed: the 40 missing or unclean lesson specs were restored. The sync now keeps a lesson spec whenever the scan's copy is missing or not teachable. The world scan redraws course pages, gates on
check:courseandcheck:course-pages, and dispatches website-checks on its own branch. #1544 updatescheck:discoveryto allow that dispatch.Generated by Claude Code
specs(basics): the 27 t27-basics course lessons, upstreamed from trin…