Skip to content

Commit faafcfb

Browse files
psytoclaude
andcommitted
lessons: L1 build-along — workspace + Reth + Malachite (Stages 1-3)
First hands-on lesson of the build-along course. Reader writes the workspace skeleton from scratch (Stage 1), then pins Reth and Malachite as workspace deps (Stage 2+3). L1 structure (the build-along template): - Goal: cargo check --workspace passes - Recap: what L0 setup gave you (~/code/my-openhl + reference) - Plan: 3 stages, each with a test gate - Walk-through: 9 numbered steps with full TOML/Rust to type - Test: cargo check + cargo build --bin openhl - Design reflection: 2 load-bearing decisions (workspace-level deps; SHA-pinned git deps) - Answer key: diff against psyto/openhl@5fc7ca1 - Common questions: 4 FAQs (git commits, warnings, disk, parallelism) - Next lesson: preview of L2 (openhl-types) Generator updates: - Module 1 (Foundations) added to both EN and JA configs - L1 LessonSpec in both locales - COURSE_SHARED duration: 20→65, xpReward: 60→140 Pilot state: course now shows 2 lessons (L0 + L1) / 2 modules / 65 min / 140 XP. L2-L14 still pending, drafted incrementally after L1 format approved. Verified locally — both L0 and L1 render correctly at: - http://localhost:3000/courses/reth-openhl-consensus-ja - .../lessons/openhl-workspace-ja Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2868a48 commit faafcfb

5 files changed

Lines changed: 1869 additions & 291 deletions

File tree

.github/scripts/build-openhl-seed.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ const EN: LocaleConfig = {
7373
},
7474
modules: {
7575
0: { title: 'Orientation', sortOrder: 0 },
76+
1: { title: 'Foundations', sortOrder: 1 },
7677
},
7778
lessons: [
7879
{
@@ -86,6 +87,17 @@ const EN: LocaleConfig = {
8687
h1Marker: '# Build OpenHL — from `cargo init` to a single-validator devnet',
8788
startSignature: 'This is not a course you read. This is a course you **build**.',
8889
},
90+
{
91+
draftFile: 'openhl_l1_en.md',
92+
moduleNumber: 1,
93+
sortOrder: 0,
94+
title: 'Lesson 1 — Workspace + Reth + Malachite (Stages 1-3)',
95+
slug: 'openhl-workspace-en',
96+
duration: 45,
97+
xpReward: 80,
98+
h1Marker: '# Lesson 1 — Workspace + Reth + Malachite (Stages 1-3)',
99+
startSignature: 'By the end of this lesson, run from your `~/code/my-openhl/` directory:',
100+
},
89101
],
90102
};
91103

@@ -106,6 +118,7 @@ const JA: LocaleConfig = {
106118
},
107119
modules: {
108120
0: { title: 'Orientation', sortOrder: 0 },
121+
1: { title: 'Foundations', sortOrder: 1 },
109122
},
110123
lessons: [
111124
{
@@ -119,6 +132,17 @@ const JA: LocaleConfig = {
119132
h1Marker: '# OpenHL を自作する — `cargo init` から動く single-validator devnet まで',
120133
startSignature: 'これは「読む」コースではない。これは「**作る**」コースだ。',
121134
},
135+
{
136+
draftFile: 'openhl_l1_ja.md',
137+
moduleNumber: 1,
138+
sortOrder: 0,
139+
title: 'レッスン 1 — Workspace + Reth + Malachite (Stages 1-3)',
140+
slug: 'openhl-workspace-ja',
141+
duration: 45,
142+
xpReward: 80,
143+
h1Marker: '# レッスン 1 — Workspace + Reth + Malachite (Stages 1-3)',
144+
startSignature: 'このレッスンの終わりに、`~/code/my-openhl/` ディレクトリで次を実行する:',
145+
},
122146
],
123147
};
124148

@@ -140,8 +164,8 @@ interface Lesson {
140164

141165
const COURSE_SHARED = {
142166
difficulty: 'EXPERT' as const,
143-
duration: 20, // L0 only (build-along pilot)
144-
xpReward: 60, // L0 only (build-along pilot)
167+
duration: 65, // L0 (20) + L1 (45) — build-along pilot
168+
xpReward: 140, // L0 (60) + L1 (80) — build-along pilot
145169
tags: ['reth', 'malachite', 'bft', 'evm', 'clob', 'l1', 'openhl', 'expert'],
146170
sortOrder: 600,
147171
isPublished: false,

0 commit comments

Comments
 (0)