Open
Description
Boundary
apps/website/src/pages/Course.tsxand the course generatorapps/website/scripts/course-from-spec.mjs.- BLOCKED: both are hand-written TypeScript/JavaScript. The only-t27 rule forbids adding or changing hand-written non-t27 code without the owner's
owner-approved-foreignlabel. Nothing here starts until the owner labels it, or until t27c can generate this page from a spec.
User Scenarios
- A reader marks a lesson done by pressing "Mark as done"; the mark checks nothing. The law that replaces it exists: gHashTag/t27
specs/course/mastery.t27(predict, poke, explain, transfer, prove; reviews after 1/3/9/27 days). - A reader sees "On X: x.com/t27_dev and x.com/t27_lang" on the course landing as plain text; it should be two links.
Requirements
- The page reads the mastery law (through a generated module, not a hand copy of it): a prediction input before the widget, a proof input with the lesson's answer key, and progress that counts only MASTERED.
- Each course spec gains an answer key per lesson (a constant read from the lesson's spec frame), checked by the generator.
- SAY_LEAD's two handles render as links (
https://x.com/t27_dev,https://x.com/t27_lang).
Success Criteria
- Pressing a button alone never fills a cell of the 27-cell grid.
- The two handles are links with
rel="noopener noreferrer".
Refs #1703.
Metadata
Metadata
Assignees
Labels
No labels
Activity