Tell your agent what to learn.It writes the lessons.

One skill for the coding agent you already have. Lessons land as plain files on your machine.

one sentence to your agentI want to learn CSS flexbox properly.
reading your learner profileplanning 5 lessonswriting the exercisesciting sources
learn-css-flexboxRenderedSource

Lesson 01: The one line that lines things up

Before Flexbox, boxes just stack. Why?

Drop three <div>s on a page and they stack vertically, each on its own line. That is normal block layout, and for years the only ways to put them side by side were floats and inline-block hacks that leaked spacing bugs everywhere. If Flexbox feels like a pile of properties you paste and pray over, it is usually because nobody showed you the very first thing it does — the thing every other property depends on.

the full lesson continues on your machine

saved to your machine · plain files

Try what it writes.

your agent writes markdown
```agentmentor-check
{
  "id": "css-flexbox-flex-items-scope",
  "label": "which elements are flex items",
  "prompt": "You set display: flex on a container that holds three cards, and each card has a heading and a paragraph inside it. Which elements become flex items and get laid out on the container's main axis?",
  "whyHere": "Beginners often expect display: flex to arrange every descendant. Only the container's direct children become flex items, and that decides what the axis actually moves.",
  "mode": "single",
  "choices": [
    { "id": "all", "text": "Every element inside the container, including the headings and paragraphs.", "correct": false, "feedback": "Flex only reaches one level down. The headings and paragraphs are children of each card, so each card lays them out, not the flex container." },
    { "id": "direct", "text": "Only the container's direct children — the three cards.", "correct": true, "feedback": "Right. display: flex turns the direct children into flex items; a card's own contents are arranged by that card, not by the flex container." },
    { "id": "classed", "text": "Only the elements you also give a special flex class to.", "correct": false, "feedback": "There is no per-item opt-in class. Direct children become flex items automatically once the parent is display: flex." }
  ],
  "copyPurpose": "Copy this question and my answer to an agent so it can check whether I still expect display: flex to arrange every descendant instead of only direct children."
}
```
the local reader renders it, livelesson 01 · which elements are flex items

this block is real · graded locally

What is Agent Mentor?

A skill for your coding agent. It writes lessons; a local Next.js reader renders them.

runs in
Codex, Claude Code, opencode; any agent with web search
files
plain Markdown, under agent-mentor/ on your machine
needs
nothing to install yourself; your agent sets up the reader

The lessons are yours.

They open in any editor, on any machine. Edit them, move them, back them up.

$29.90
one payment · updates for at least 12 months
Get the skill

Reference price $29.90. The platform page has the final price.

what lands on your machine
written by your agent, from this skill and one sentence
agent-mentor/
skills/
export-course/
SKILL.md
generate-course-from-topic/
agentmentor-template.json
lesson-template.md
live-sandbox-example.md
readme-template.md
sources-template.md
course-authoring-guide.md
SKILL.md
showcase/
… 20 lesson sets
lessons/
learn-css-flexbox/
01-display-flex-main-axis.md
# Lesson 01: The one line that lines things up

> Lesson objectives:
> - Say what `display: flex` does to a container and its children.
> - Identify which elements become flex items (and which do not).
> - Predict that flex items sit in a row along the main axis by default.
>
02-two-axes-justify-align.md
# Lesson 02: Two axes, two properties

> Lesson objectives:
> - Name the main axis and the cross axis of a flex container.
> - Match `justify-content` to the main axis and `align-items` to the cross axis.
> - Center an item horizontally and vertically on purpose, not by luck.
>
03-flex-direction.md
# Lesson 03: Turning the main axis with flex-direction

> Lesson objectives:
> - Say what `flex-direction` does and name its four values.
> - Explain why `justify-content` is not "the horizontal property."
> - Predict which property moves items vertically once the main axis is a column.
>
04-flex-grow-shrink-basis.md
# Lesson 04: Sharing the leftover space

> Lesson objectives:
> - Explain what `flex-basis`, `flex-grow`, and `flex-shrink` each control.
> - Predict how `flex-grow` divides the free space (not the total width).
> - Read the `flex` shorthand and know what `flex: 1` expands to.
>
05-wrap-and-build.md
# Lesson 05: Wrapping into real layouts

> Lesson objectives:
> - Use `flex-wrap: wrap` so items flow onto multiple rows instead of overflowing.
> - Space items with `gap` instead of fiddly margins.
> - Build a real, responsive nav and card row using everything from this course.
>
agentmentor.json
{
  "schemaVersion": 2,
  "originalRequest": "I already write basic HTML and CSS — I can set colors, padding, and widths and style a simple page — but Flexbox still feels like guesswork. I never know when to use justify-content versus align-items, I have no intuition for the main axis versus the cross axis, and flex-grow/flex-shrink/flex-basis confuse me. I don't know CSS Grid. Teach me Flexbox so I can confidently build common layouts like centering, nav bars, and card rows.",
  "learnerBrief": "A developer comfortable with basic HTML/CSS but not with Flexbox. The goal is a genuine mental model of the flex container's two axes so the alignment and sizing properties stop being guesswork, ending with the ability to build common real layouts.",
glossary.json
[
  {
    "term": "flex container",
    "def": "An element with display: flex, whose direct children are laid out as flex items along an axis.",
    "source": "[^S1]"
  },
  {
README.md
---
domain: 软件
tags: [CSS, Flexbox, beginner, layout, live-sandbox]
lang: en
---
# CSS Flexbox: axes, alignment, and flexible sizing
sources.md
# Sources

## S1 — MDN: Basic concepts of flexbox
URL: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Flexible_box_layout/Basic_concepts
- authority: official-docs
- supports: Lessons 01-03 — what `display: flex` does, direct children becoming flex items, the main axis and cross axis, and that `justify-content` aligns on the main axis while `align-items` aligns on the cross axis.
maintain-course/
SKILL.md
review-course/
SKILL.md

Questions.

A chat leaves you a transcript. This leaves you a course: lessons as files, sources you can open, practice graded locally, and review scheduled at spaced intervals. All on your machine.

Entirely on your machine — plain Markdown plus a local site. Put it in git if you like. No cloud account.

It can, and free prompts are everywhere. What you buy is the half a prompt cannot carry: a local runtime that grades practice, review scheduled at Leitner intervals, guard checks before a course ships, and the export chain to HTML, PDF, and Anki. That half is software.

For well-covered topics, a curated repo is good. Read it. The difference is elsewhere: here any topic becomes a course, pitched at the background you state, with practice graded on the spot and review that returns when due.

Three gates: a learner brief before writing, mandatory source records while writing, and 20+ course-guard checks before delivery. Every source is there to open and check yourself; a list that is all marketing copy or AI-generated fails guard outright.

Codex, Claude Code, and opencode are all verified out of the box. Any local agent that can read a skill directory and search the web can run it; without search, you can supply the sources.

Not for the core product. The skill uses your agent's own abilities; optionally install yt-dlp to pull YouTube transcripts as sources. The reader also has an optional in-course ask layer that runs on a key you buy from a model provider yourself. Off by default, and without it everything you bought works in full.

Yes. The reader is designed for absolute beginners, and one of the samples has no code at all. Topics follow your request — writing, spreadsheets, any craft; code exercises appear only in programming topics.

The charge appears as “PADDLE.NET* DFDIGITAL” on your bank or credit-card statement, because Paddle is the merchant of record for the purchase.