agentleFS
cheyuriycheyuriy/codelabgen/skills/lesson-review/SKILL.md

lesson-review

Skill1 starsChanged 24 days agoMITView on GitHub

How to review a finished codelabgen lesson (code, read-along, notes) against its spec, the pinned technology version and the course rules, and write `.codelabgen/lessons/<id>/review.md` with a pass/revise verdict and concrete fixes. Used by the lesson-reviewer agent.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every statement about the technology is true for the pinned version.

    line 25
  2. Distinctive:

    No deprecated or removed APIs, in code or text.

    line 26
  3. Very specific:

    Every function or class it names exists, and every #L… link points at the line it describes (open them).

    line 41
  4. Very specific:

    Only GitHub-and-site syntax: no !!!, content tabs, code annotations or --8<--.

    line 53
  5. Distinctive:

    Don't fix things yourself.

    line 69
  6. Very specific:

    Write .codelabgen/lessons/<id>/review.md (in English: it is for the agents):

    line 73

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Reviewing a lesson

You are the last check before a lesson counts as done. Judge it as a demanding teacher and a careful engineer would. The code already passed codelabgen verify, so your job is correctness of what is taught, clarity, and consistency, not whether the code runs.

What to read

  • The curriculum node: .codelabgen/curriculum.yaml (title, summary, objectives, example storyline)
  • The spec: .codelabgen/lessons/<id>/spec.yaml
  • The code: <lesson dir>/src/, tests/, pyproject.toml
  • The read-along: <lesson dir>/docs/readalong.md
  • The notes: <lesson dir>/docs/notes.md
  • The latest verify run: .codelabgen/runs/<id>/<latest>/ (result.json, live-run.log)
  • For an extending lesson: the previous lesson's spec and code
  • Source digests and .codelabgen/research/deprecations.md, when they exist

Checklist

Technical accuracy (most important)

  • Every statement about the technology is true for the pinned version. Spot-check claims against the installed sources (where they are: the runtime's reference in ${CLAUDE_PLUGIN_ROOT}/skills/code-authoring/references/) and the official docs.
  • No deprecated or removed APIs, in code or text.
  • The output quoted in the notes matches live-run.log.

Objectives

  • Each objective in the curriculum node is actually taught and shown in the example.
  • Nothing important for this concept is missing; nothing belongs to a later lesson.

Example and code

  • The example is as simple as the idea allows (see the example-design skill). The domain doesn't distract.
  • For an extending lesson, the delta is focused on the new concept.
  • Comments explain why. Names are clear. No dead code. No hardcoded secrets.
  • Tests check the behaviour the lesson is about, and run offline.

Read-along

  • Explains the code file by file in a sensible order, without repeating the code comments or copying code.
  • Every function or class it names exists, and every #L… link points at the line it describes (open them).
  • Short and plain: it explains, it doesn't teach theory or set exercises.

Notes

  • Explain the concept properly, in a book-like way, and tie it to the code.
  • The real output matches the latest run; the experiments are concrete and their explanations are right (check them by running).
  • Diagrams are correct and readable; generated ones match the code.
  • Self-check questions have correct answers. Further-reading links are real and relevant.

Consistency and form

  • Code, read-along and notes agree with each other: same names, same behaviour, same output.
  • Text is in the course language and reads naturally to a native speaker. Code and comments are in English.
  • Only GitHub-and-site syntax: no !!!, content tabs, code annotations or --8<--. Math uses $…$ and $$…$$.
  • Relative links resolve.

Checking claims by running code

Running code is the best way to check a claim, but never change the lesson or shared state while doing it:

  • Work in a scratch copy of the lesson directory outside the course (cp -r <lesson dir> /tmp/…), with the module's toolchain (for Python: env -u VIRTUAL_ENV uv run --project <module dir> …; for Node, Go and Rust, run the commands in the copy, which still sees the module's workspace when it sits next to the original — or copy the whole module).
  • For services, use a temporary database or key prefix and drop it afterwards. If you must touch the course's own data, restore it exactly and say so in the review.
  • Spec entries that turned out wrong (for example an experiment's predicted outcome) are a [spec] item: name the entry and the verified behaviour.

Verdict

  • pass: nothing that would mislead or confuse a learner. Small polish issues may still be listed for later.
  • revise: at least one issue a learner would trip over: a wrong claim, an unmet objective, unclear key explanation, broken snippet or link.

Don't fix things yourself. Describe each issue so the responsible agent can fix it without guessing.

review.md

Write .codelabgen/lessons/<id>/review.md (in English: it is for the agents):

# Review of lesson 1.2 — round 1

Verdict: revise
Rework from: readalong        # the earliest part that must change: code | readalong | notes

## Must fix
1. [readalong] Section "Маршрутизация": claims `add_conditional_edges` requires a path map; it is optional in 1.2.15 (see langgraph/graph/state.py). Remove the claim.
2. [notes] …

## Nice to have
- [notes] …

Each item is tagged [code], [readalong], [notes] or [spec]. [spec] items never block a pass: the orchestrator corrects the spec itself. Rework from names the earliest part with a must-fix item: a code change also forces the read-along and notes to be refreshed. Omit it for a pass.

End with the status JSON from the state-protocol skill, adding "verdict" and "rework_from":

{"lesson": "1.2", "status": "ok", "stage": "reviewed", "verdict": "revise", "rework_from": "readalong", "artifacts": [".codelabgen/lessons/1.2/review.md"]}

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.