# New Recap

> Generates a Recap for an existing course in the Teacher app at ~/.tutor/modules. Reads each section's lesson content and writes a condensed summary and fresh quiz to courses/{courseId}/recap/. The Recap button then appears automatically in the course sidebar. Works for any subject in English or Persian.

- Skill: `shayan-shojaei/new-recap` (Agent Skill)
- Install (CLI): `npx skillmds@latest add shayan-shojaei/new-recap`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shayan-shojaei/new-recap/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shayan-shojaei (https://skillmd.com/u/shayan-shojaei)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shayan-shojaei/new-recap

---


# /new-recap Skill

## Purpose

Generate a Recap for an existing course. Each recap section is a condensed synthesis of the lesson (key concepts, formulas, takeaways) plus a fresh set of quiz questions distinct from the original section quiz. Once written, the Recap button appears automatically in the course sidebar for that course.

---

## Step 1 — Interview

Ask each question one at a time. Wait for the user's answer before proceeding.

**1a. Pick a course.**
Run: `ls ~/.tutor/modules/courses/`
Show the list and ask: "Which course should I generate a recap for?"

**1b. Confirm language.**
Read `~/.tutor/modules/courses/{courseId}/config.json`. Extract `"language"`.
Tell the user: "This course is in [English / Persian]. Do you want to keep that language for the recap, or switch?"

**1c. Summary depth.**
Ask: "How detailed should each section summary be?
- **Brief** (~100 words) — key terms and formulas only
- **Standard** (~200 words) — key concepts with a sentence of context each
- **Detailed** (~300 words) — fuller synthesis with brief examples"

---

## Step 2 — Generate content per section

Read the full `config.json` to get the ordered list of chapters and sections.

For **each section** in order:

1. Read `~/.tutor/modules/courses/{courseId}/sections/{sectionId}.md`
2. Read `~/.tutor/modules/courses/{courseId}/sections/{sectionId}.quiz.json` (if it exists) — note existing questions to avoid repetition

Generate two outputs before moving to the next section:

### Summary (`{sectionId}.md`)

- Compact prose — no headings, no bullet lists unless the source uses them for a series of items
- Cover the key concepts, definitions, and formulas from the lesson
- Do **not** copy sentences verbatim; synthesize and rephrase
- Preserve all LaTeX ($...$ and $$...$$)
- Preserve all code fences with their language tags
- For Persian courses: write prose in Farsi; keep math and code LTR

### Quiz (`{sectionId}.quiz.json`)

- 3–5 multiple-choice questions
- Must **not** repeat any question from the existing `{sectionId}.quiz.json` — check for overlap in concept and wording
- Questions may be more integrative or applied than the original quiz (the user has already studied the material)
- Each option should be plausible — avoid obviously wrong distractors
- Distribute `correctIndex` across 0, 1, 2, and 3 — do not put the correct answer at the same index for every question

Format:
```json
[
  {
    "id": "rq1",
    "type": "multiple-choice",
    "question": "Question text (LaTeX OK)",
    "options": ["Option A", "Option B", "Option C", "Option D"],
    "correctIndex": 2,
    "explanation": "Why the correct answer is correct."
  }
]
```

---

## Step 3 — Write files

**Before writing anything:**
Check if `~/.tutor/modules/courses/{courseId}/recap/` already exists.
If it does, tell the user: "A recap already exists for this course. Overwrite all files? (yes / no)"
If the user says no, stop.

Create the directory if it does not exist.

For each section, write:
- `~/.tutor/modules/courses/{courseId}/recap/{sectionId}.md`
- `~/.tutor/modules/courses/{courseId}/recap/{sectionId}.quiz.json`

Announce each section as you write it: "Writing recap for: {sectionTitle}…"

Do **not** modify `config.json` — recap detection is directory-based.

**Important:** Do not use the chapter ID `recap` when creating new courses with `/new-course` — it would collide with the recap route.

---

## Step 4 — Confirm

Tell the user:
- How many sections were covered
- "The Recap button now appears in the sidebar when you open this course."
- URL: `http://localhost:3000/learn/{courseId}/recap`

---

## Quality Rules

1. **Synthesis over quotation** — rephrase; do not paste from the source lesson.
2. **Fresh questions** — read the existing quiz first; avoid any conceptual overlap.
3. **Persian support** — prose in Farsi, math/code stays LTR.
4. **Shuffle correctIndex** — vary across 0, 1, 2, 3 within each quiz file.
5. **IDs** — use `rq1`, `rq2`, … for recap quiz question IDs to distinguish them from original quiz IDs.
6. **Depth** — honor the user's chosen depth (brief/standard/detailed) consistently across all sections.

