Skip to content

fix(course): 9 modules of 3 lessons in every course - #1472

Merged
gHashTag merged 5 commits into
feat/course-t27-basics-0from
fix/course-nine-modules
Oct 7, 2026
Merged

gHashTag merged 5 commits into
feat/course-t27-basics-0from
fix/course-nine-modules

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Every t27 course is 9 modules of 3 lessons, 27 lessons in total (owner, 2026-10-07). An earlier change misread this as 27 modules of one lesson and flattened courses 0, 1 and 2. This PR restores 9x3 everywhere the course shape lives.

Changes

  • specs/course/courses.t27: MODULES_PER_COURSE = 9, LESSONS_PER_MODULE = 3, asserted in every_course_is_three_cubed.
  • t27-basics.t27, course.t27, ai-numbers.t27 and their RU bundles: 9 module titles each, LESSON_MODULES regrouped 3 per module. Course 1 returns to its earlier 9x3 grouping; course 0's grouping is new and has not been reviewed by the owner.
  • scripts/course-from-spec.mjs + test: checks each course's shape against the catalog.
  • src/pages/Course.css: module headers with three lessons under each.
  • Regenerated course.generated.ts, public/learn/* pages and cards.
  • Blog post nine-modules-of-three-again (English body, Russian ruBody).

Proof

Base is feat/course-t27-basics-0 (trinity#1463) because course 0 is not on main yet. Course 3 (#1470) carries the same courses.t27 values and turns green once this lands.

{
  "version": 1,
  "head_sha": "6e6efd25ddaf8c56f5aa9df432923c06c67a03b5",
  "summary": "Every t27 course goes back to 9 modules of 3 lessons, the owner's shape, after an earlier change flattened courses 0 to 2 into 27 modules of one lesson.",
  "changes": [
    "specs/course/courses.t27: MODULES_PER_COURSE 9 and LESSONS_PER_MODULE 3, asserted by every_course_is_three_cubed",
    "specs/course t27-basics, course and ai-numbers with their RU bundles: nine module titles each, three lessons per module",
    "scripts/course-from-spec.mjs and its test: every course's shape is checked against the catalog values",
    "src/pages/Course.css plus regenerated course.generated.ts, learn pages and cards; blog post nine-modules-of-three-again"
  ],
  "tests": [
    {
      "command": "npm run check:course, test:course, check:course-pages, check:widgets, test:widgets-spec, check:widget-pages, check:onboarding, check:play, check:subpath-urls; npx tsc --noEmit",
      "result": "all rc 0, exit code 0 with no error output",
      "status": "passed",
      "evidence": "local run on 6e6efd25"
    },
    {
      "command": "mutant MODULES_PER_COURSE 9 to 27 then npm run check:course",
      "result": "rc 1, every_course_is_three_cubed asserts 2 and 3 false; restored rc 0",
      "status": "passed",
      "evidence": "local run on 6e6efd25"
    }
  ],
  "limitations": [
    "Course 0's nine modules are a new grouping and have not been reviewed by the owner",
    "Base is feat/course-t27-basics-0, so this lands only after trinity#1463 or with it",
    "Course 3 GoldenFloat (trinity#1470) repeats the catalog values and needs this merged first"
  ],
  "tags": [
    "t27",
    "course"
  ],
  "blog": {
    "title": "Nine modules of three lessons, again",
    "summary": "Every t27 course is back to nine modules of three lessons after a misread flattened them.",
    "outline": [
      "The owner's shape for a t27 course is nine modules of three lessons, twenty-seven lessons, and an earlier change misread it as twenty-seven modules.",
      "That change flattened courses 0, 1 and 2, so a reader saw one long list of lessons instead of nine steps with three lessons each.",
      "The catalog now asserts nine and three, and the generator refuses any course whose shape differs, which a planted 27 proved red.",
      "Course 0's new grouping is still waiting for the owner's review, and course 3 joins the same shape once this lands."
    ]
  }
}

🤖 Generated with Claude Code

The owner's shape is 9 modules of 3 lessons, 27 lessons per course.
An earlier change flattened every course into 27 modules of one lesson;
this restores 9x3 in the catalog (MODULES_PER_COURSE, LESSONS_PER_MODULE),
in courses 0, 1 and 2, in the generator and its test, and in the pages.
Course 0's 9 modules are a new grouping, not yet reviewed by the owner.
Blog post: nine-modules-of-three-again (EN body + RU ruBody).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag gHashTag added the owner-approved-foreign Owner approved hand-written non-t27 code in this PR label Oct 7, 2026
@github-actions github-actions Bot added the status:in-progress 🔵 Agent working label Oct 7, 2026
gHashTag and others added 2 commits October 7, 2026 21:37
…loy builds again

Dependabot bumped core, tsconfig and theme-live-codeblock to 3.10.2 on
2026-10-04 and left preset-classic, theme-mermaid, types and
module-type-aliases on 3.10.0. Docusaurus refuses mixed versions
("Invalid name=docusaurus-plugin-content-docs version number=3.10.0"),
so deploy-docs.yml has failed on every main push since, and t27.ai
still serves the 2026-10-04 build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(docs): align every @Docusaurus package on 3.10.2 so the Pages deploy builds again
gHashTag and others added 2 commits October 7, 2026 15:33
@gHashTag
gHashTag merged commit 797c899 into feat/course-t27-basics-0 Oct 7, 2026
18 checks passed
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Oct 7, 2026
gHashTag added a commit that referenced this pull request Oct 7, 2026
restore: re-land merged #1472 + #1470 after main was force-reset to e13c5f5
github-actions Bot added a commit that referenced this pull request Oct 7, 2026
Merge pull request #1496 from gHashTag/fix/restore-merged-courses

restore: re-land merged #1472 + #1470 after main was force-reset to e13c5f5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

owner-approved-foreign Owner approved hand-written non-t27 code in this PR status:completed Done

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant