From da9430facea43d14b26dc3011e7c136c0e1804ec Mon Sep 17 00:00:00 2001 From: Sean Grace <107606977+8GSean@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:27:23 +0300 Subject: [PATCH 1/2] Quiz redesign (MC + free-text closer, quiz-full), opt-in global install - quiz.md: 4 MC batched in AskUserQuestion + 1 free-text recall closer; new `quiz me full` mode (8 Qs, whole lesson, varies on repeat); scoring rubric - learn.md: route `quiz me full` - setup.md: global install now opt-in (default off); /learn runs repo-local - CLAUDE.md: module-add checklist no longer requires global install - changes.md: document all modifications Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/commands/learn.md | 3 ++- .claude/commands/learn/quiz.md | 32 ++++++++++++++++++++--- .claude/commands/learn/setup.md | 24 +++++++++++++++--- CLAUDE.md | 2 +- changes.md | 45 +++++++++++++++++++++++++++++++++ 5 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 changes.md diff --git a/.claude/commands/learn.md b/.claude/commands/learn.md index b91f113..fbb9fef 100644 --- a/.claude/commands/learn.md +++ b/.claude/commands/learn.md @@ -78,7 +78,8 @@ Create `~/skill-tutor-tutorials/learner_profile.md` with their answers. | Command | Action | |---------|--------| | continue | Move to next section | -| quiz me | Read `.claude/commands/learn/quiz.md` | +| quiz me | Read `.claude/commands/learn/quiz.md` (covered sections) | +| quiz me full | Read `.claude/commands/learn/quiz.md` (whole lesson, 8 Qs) | | explain again | Re-explain from a different angle | | summary | Bullet-point of everything covered | | exercises | Show lesson exercises | diff --git a/.claude/commands/learn/quiz.md b/.claude/commands/learn/quiz.md index 6157854..a86360d 100644 --- a/.claude/commands/learn/quiz.md +++ b/.claude/commands/learn/quiz.md @@ -6,16 +6,42 @@ Respond in `session.language` throughout. --- +## Quiz Modes + +| Trigger | Scope | Questions | +|---------|-------|-----------| +| `quiz me` | only the sections covered in this session | 4 multiple-choice + 1 free-text | +| `quiz me full` / `quiz full` | the **entire** lesson script (load `{lesson_number}_script.txt`, split by `[מעבר שקף]`, use all sections — do not assume a fixed count) | 8 multiple-choice + 1 free-text | + +Before building questions, read the **Quiz History** in `~/skill-tutor-tutorials/tutorials/lesson-{lesson_number}.md`. If the learner has quizzed this lesson before, **vary the questions** — different angles, different distractors, and bias toward previously-recorded weak points. Keep all questions factually correct and on the lesson's material. + +--- + ## Quiz Format -Ask 4 questions — **one at a time**, wait for each answer: +**Step 1 — Multiple-choice (batched in one `AskUserQuestion` call).** + +Build the multiple-choice questions (4 for normal, 8 for full → two `AskUserQuestion` calls of 4) covering these types: 1. **Factual** — what / how 2. **Why it matters** — consequences and motivation 3. **Scenario** — "If X happened, what would you do?" -4. **Weak point** — on a section the learner hesitated on earlier in the session +4. **Weak point** *(normal mode)* — a section the learner hesitated on this session. *In full mode there's no session history → replace with a **synthesis** question connecting two sections.* + +Each question: **1 correct option + 2–3 plausible distractors**, all in `session.language`. `AskUserQuestion` auto-adds an **"Other"** option — if the learner picks it and free-texts, judge that answer qualitatively. Set `multiSelect: false`. + +**Step 2 — One free-text recall question at the end.** + +After the multiple-choice box(es), ask **one** open-ended question (synthesis or "explain in your own words"). This is the recall test — wait for the learner to type their answer. + +--- + +## Scoring + +Give an overall score **1–10** with specific per-question feedback. -After all 4 answers: give an overall score (1–10) with specific feedback per question. +- **Normal:** each correct multiple-choice = 1.5 pts (6 total) + free-text closer judged up to 4 pts → /10. +- **Full:** each correct multiple-choice = 1 pt (8 total) + free-text closer up to 2 pts → /10. *(Speak score summary if TTS enabled)* diff --git a/.claude/commands/learn/setup.md b/.claude/commands/learn/setup.md index 4e584ec..6a42b7b 100644 --- a/.claude/commands/learn/setup.md +++ b/.claude/commands/learn/setup.md @@ -158,9 +158,27 @@ Save `~/skill-tutor-tutorials/settings.json`: --- -## F. Global Install +## F. Global Install (optional) -Copy all skill files to the global Claude commands folder: +By default `/learn` works inside this repo — no install needed. Global install is only useful if the learner wants to run `/learn` from *other* projects (a future cross-repo use case). + +**Note the trade-off:** a global copy is a second source of truth. If the repo's modules are later edited, the global copy goes stale until re-synced. Most learners should say no. + +Use the `AskUserQuestion` tool: + +``` +question: "להתקין את /learn גם בפרויקטים אחרים? (רוב הלומדים: לא)" +header: "התקנה גלובלית" +options: + - label: "לא, רק בריפו הזה" + description: "/learn יעבוד בתוך הריפו. מומלץ — אין עותק כפול שעלול להתיישן." + - label: "כן, התקן גלובלית" + description: "אעתיק את המודולים ל-~/.claude/commands כדי שאפשר יהיה להשתמש מכל מקום." +``` + +**If no:** skip — confirm settings are saved and `/learn` is ready inside this repo. + +**If yes:** copy the skill files to the global Claude commands folder, then warn that future repo edits require re-running setup to re-sync. ```powershell $dest = "$env:USERPROFILE\.claude\commands" @@ -171,5 +189,3 @@ $moduleDest = "$dest\learn" if (!(Test-Path $moduleDest)) { New-Item -ItemType Directory -Force -Path $moduleDest | Out-Null } Copy-Item -Force "$PWD\.claude\commands\learn\*.md" "$moduleDest\" ``` - -Confirm to the learner that settings are saved and `/learn` is now available globally in any project. diff --git a/CLAUDE.md b/CLAUDE.md index a5c8ef3..b67ae13 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -65,4 +65,4 @@ architectures/[project-name].html ← מפות ארכיטקטורה 1. צור קובץ ב-`.claude/commands/learn/[module-name].md` 2. הוסף שורה לטבלת ה-Modules למעלה 3. הוסף routing ב-`learn.md` (Step 2 — Route table) -4. עדכן את הפקודה לגלובל אינסטול ב-`setup.md` +4. (אופציונלי) אם ההתקנה הגלובלית מופעלת — עדכן את רשימת הקבצים שמועתקים ב-`setup.md` סעיף F. ברירת מחדל: `/learn` רץ מתוך הריפו בלבד, ללא התקנה גלובלית. diff --git a/changes.md b/changes.md new file mode 100644 index 0000000..0744cab --- /dev/null +++ b/changes.md @@ -0,0 +1,45 @@ +# Changes — sean_changes branch + +Modifications made while testing the `/learn` user flow on the AI Dev course (lesson 1.1) and streamlining the repo. + +--- + +## 1. Quiz flow redesign — [quiz.md](.claude/commands/learn/quiz.md) + +**Before:** 4 open-ended questions, asked one at a time (back-and-forth). + +**After:** +- **Normal `quiz me`** — 4 multiple-choice questions batched into a single `AskUserQuestion` box, then **1 free-text recall question** at the end. + - Multiple-choice = token-efficient and fast UX (recognition). + - The free-text closer preserves the stronger recall test without back-and-forth. + - Each MC question has 1 correct + 2–3 plausible distractors; the auto-added "Other" option lets the learner free-text any answer. +- **New `quiz me full` mode** — 8 multiple-choice (two boxes of 4) + 1 free-text synthesis closer, drawn from the **whole** lesson script. + - No hardcoded section count — scales to whatever sections a lesson has. + - Reads prior **Quiz History** and **varies the questions** on repeat attempts, keeping them correct and on-topic. +- **Scoring rubric (1–10):** + - Normal: each MC = 1.5 pts (6 total) + free-text up to 4 pts. + - Full: each MC = 1 pt (8 total) + free-text up to 2 pts. + +## 2. Quiz routing — [learn.md](.claude/commands/learn.md) + +- Added `quiz me full` to the Learner Commands table; clarified `quiz me` is scoped to covered sections. + +## 3. Global install made opt-in — [setup.md](.claude/commands/learn/setup.md) + +**Before:** Section F always copied the skill files to `~/.claude/commands/` (global). + +**After:** Global install is **optional, defaulting to off**. +- `/learn` works inside this repo with no install step (the primary goal: learn the material in this repo). +- Setup now asks whether to also install globally (for the future cross-repo use case); most learners say no. +- Avoids a second source of truth / stale copies when repo modules are edited. +- Learner *data* (`~/skill-tutor-tutorials/`) stays per-user and outside the repo — unchanged. + +## 4. Docs — [CLAUDE.md](CLAUDE.md) + +- "Adding a module" checklist no longer treats global install as required; notes repo-local is the default. + +--- + +## Possible follow-up (not yet implemented) + +- A normal `quiz me` can mark a lesson as "Mastered" (score 8+) even if only a few sections were covered. Consider requiring full coverage — or `quiz me full` — before granting mastery in the knowledge map. From 1389814db811bb1ef146bc3e99d9fe0da155914d Mon Sep 17 00:00:00 2001 From: Sean Grace <107606977+8GSean@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:34:20 +0300 Subject: [PATCH 2/2] added text to the followup on adding FAQ and walkthrough and how to set up RTL in claude code --- changes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changes.md b/changes.md index 0744cab..4943121 100644 --- a/changes.md +++ b/changes.md @@ -43,3 +43,5 @@ Modifications made while testing the `/learn` user flow on the AI Dev course (le ## Possible follow-up (not yet implemented) - A normal `quiz me` can mark a lesson as "Mastered" (score 8+) even if only a few sections were covered. Consider requiring full coverage — or `quiz me full` — before granting mastery in the knowledge map. +- still need to add a FAQ and maybe a walkthrough to help with onboarding. +- also to teach about adding RTL support for claude code https://marketplace.visualstudio.com/items?itemName=yechielby.claude-code-rtl \ No newline at end of file