agentleFS
derwellsderwells/learn-skill/skills/learn/SKILL.md

learn

Skill2 starsChanged 23 days agoMITView on GitHub

Teach a topic through one lesson or sustained exploration, with or without a course. Use for /learn, requests to learn or understand an idea, course sessions, review, and course teaching improvements; not for routine factual answers.

195 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use add-anydoc, add-clidash and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • TomGranotSkill

    add-anydoc

    Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.

    Also in 5 projects that use this

  • TomGranotSkill

    add-clidash

    Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.

    Also in 5 projects that use this

  • seek888Skill

    open-gstack-browser

    Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".

    Also in 11 projects that use this

  • Saqlain-811Skill

    ios-sync

    Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)

    Also in 6 projects that use this

  • MicrosoftSkill

    add-codex

    Use Codex (CLI + AppServer) as the full agent provider — planning, tool orchestration, native compaction, MCP tools, session resume — in place of the Claude Agent SDK. ChatGPT subscription or OPENAI_API_KEY. Per-group via agent_provider. Distinct from using OpenAI as an MCP tool (where Claude remains the planner).

    Also in 6 projects that use this

  • MicrosoftSkill

    add-deltachat

    Add DeltaChat channel integration via @deltachat/stdio-rpc-server. Native adapter — no Chat SDK bridge. Email-based messaging with end-to-end encryption.

    Also in 6 projects that use this

  • +5 more from TomGranot
  • +1 more from microsoft

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 169 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

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

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

    Read legacy tutor as tutorial.

    line 66
  2. Distinctive:

    When preparing or repairing mathematical lessons, read references/lesson-craft.md for examples of what to explain and where to stop.

    line 90
  3. Distinctive:

    Use relevant figures for geometric or distributional relationships.

    line 124
  4. Distinctive:

    Treat the libraries and coding ideas needed for a lesson as part of teaching it.

    line 129
  5. Very specific:

    Put the general preference in learner notes and the specific library progression beside the relevant curriculum lessons.

    line 135
  6. Distinctive:

    When teaching through a fleet Discord effort thread, read references/discord.md for optional answer and confidence controls.

    line 155
  7. Very specific:

    Read references/notebooks.md when creating or using a lesson notebook.

    line 165
  8. Distinctive:

    Update progress judgments, evidence, misconceptions, and next-session pointers.

    line 177
  9. Very specific:

    Write a short sessions/<date>.md log: what the session answered, consequential learner responses, tutor mistakes, and where to resume.

    line 178
  10. Very specific:

    If the course is within one unit of unresearched material, prepare it now using references/create-course.md.

    line 180

“Common” is measured: kept by at least 6 in 10 of the 169 edited versions of this file we could read. “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

Learn

Take responsibility for preparing a coherent lesson. Help the learner understand more with less effort. Give them a precise mathematical or conceptual structure, choose examples that reveal it, and leave room to make connections privately. Adapt to their responses while maintaining the lesson's direction. They should not need to diagnose omissions or ask the right questions to obtain the foundations.

Load the sibling ../spell-out/SKILL.md first, if available. Use its precision, plain language, and attention to the learner's actual knowledge. For lessons, this skill controls teaching structure and depth: prepare the full argument, but deliver only the segment the learner is considering. Include the foundations needed to reason; leave reachable implications for the learner. A narrow follow-up can deserve a one-line answer. Avoid repeating the learner's message or giving a recap after every reply.

The default is a professor-led tutorial: the tutor prepares and leads; the learner can interrupt, disagree, and ask for another explanation. Academic depth comes from reasoning, assumptions, evidence, and independent application. Use the learner's background to choose the starting point. Teach missing prerequisites without lowering the course's eventual ambition.

Modes

InvocationAction
/learn new <topic>Research and create a course; read references/create-course.md
/learn, /learn continue, "today's lesson"Continue the current ad hoc topic or course; if neither is established, ask what to learn
/learn <topic or question> or an ordinary request to learn itExplore it for as long and as deeply as useful; no course setup required
/learn reviewRevisit important uncertainties and misconceptions; no new syllabus material
/learn statusReport progress across courses
/learn curateDiagnose and retune a course; read references/curate.md

$learn takes the same arguments. A request to inspect or improve the skill itself is skill maintenance, not a course session. Do not create a course or alter learner records for that request unless course changes are also authorized. Ad hoc study can deepen across many turns without a syllabus or .learning/ files. Keep the question and reasoning developed in the conversation in view, and build the next useful segment from them. Continue that topic when the learner asks to continue; the presence of .learning/ alone does not switch to a course. If there is no topic or course to continue, ask what they would like to learn. If a course session is explicitly requested without a .learning/ directory, offer course creation. Infer the active course from context; ask only if ambiguous.

Make learning easy to enter

When the learner says they are tired or on a phone, or clear context shows limited time or energy, reduce the work needed to participate. Do not infer fatigue from a short reply alone. Lead with a coherent segment: the needed idea, its reasoning, and a concrete example. Let reading or listening count as participation, and accept short natural replies. Do not require a quiz, confidence rating, notebook, setup step, or choice menu to continue. A request for depth or a longer segment deserves it; use no fixed length cap. Ask about pace or format when useful, without repeatedly seeking a preference or making the choice a prerequisite for teaching.

Make relationships visible

Use an available diagram skill, such as diagram-design, for teaching diagrams with labelled objects and connections. Load it before drawing. Use standard plotting tools for mathematical and data figures. Reuse the course's established visual style, subject to the learner's latest preferences. Use color to explain relationships or distinguish quantities; avoid decorative color. Prepare and inspect a rendered image when the delivery channel cannot render the diagram source. For Discord, follow references/discord.md; a text drawing is not a substitute for a requested image.

When visual reasoning helps or the learner says pictures help, use a well-labelled drawing or diagram to make a shape, mechanism, comparison, or relationship easier to understand, in ad hoc study as well as courses. Keep labels, scale, and visual distinctions accurate; make text and essential details readable on a phone. Explain beside the figure what to notice and how it supports the argument. Inspect the rendered figure and verify that the learner can see it; a saved file or path alone is not a displayed figure. Use the current interface's mathematical rendering; if it cannot render equations, use clear fenced notation or an executed notebook. In Paseo, display figures inline with the explanation. If inline display fails, link the saved figure and say what failed. Send figures to Telegram or another separate channel only when the learner explicitly requests it, following the host's authorization rules. Use figures when they reduce mental translation, not as decoration or a quota.

Storage and continuity

.learning/
├── learner.md             # background, preferences, delivery, across courses
└── <course-slug>/
    ├── curriculum.md      # goals, course mode, units and lessons
    ├── progress.json      # judgments and evidence about understanding
    ├── materials/         # researched teaching notes per unit
    ├── notebooks/         # runnable examples and figures per lesson
    └── sessions/          # short session logs

At course session start, read learner.md, then progress.json (course contract first), the curriculum's current lesson, and its materials and notebook. Consult the recent session log when it explains an unresolved teaching problem. Use this context throughout the session; do not reread everything on every turn.

Keep cross-course preferences in learner.md; keep subject-specific decisions in the course. Persist course-run feedback in the turn it is given. Checkpoint progress at lesson boundaries and around the half-hour mark. Read references/progress-schema.md before the first progress write in a conversation, and parse JSON after each write. Record what the learner has demonstrated, what remains uncertain, and which explanation helped. Teaching content belongs in materials, not progress notes.

The course contract is a short list of actual learner preferences at the top of the progress notes. Avoid accumulating rules for every tutor mistake. When rules conflict or repeatedly fail, curate them. Suggest committing course files if useful; never commit unasked.

Course mode and existing courses

The Course mode section of curriculum.md records the intended level, goals, pacing, and participation preferences. Default style: tutorial.

  • tutorial: lead a coherent lesson, demonstrate reasoning, involve the learner in useful decisions, and gradually reduce help.
  • design-partner: use the same explanation standard in discussions of the learner's work. Prioritize application and current evidence. Practice is optional; do not build a queue of deferred checks. Honor "just tell me."

Read legacy tutor as tutorial. Adjust practice intensity within a style; a request for fewer questions does not automatically change the course's purpose or level.

When resuming an older course, adapt its upcoming lesson materials to this teaching approach. Preserve completed work, concept IDs, history, and explicit learner preferences. Treat generic inherited rules such as a 150-word cap, mandatory stops, or automatic probe debt as superseded defaults. Do not silently discard a restriction the learner explicitly chose; reconcile it with their latest request. Update only the relevant course notes as part of that session, not every course in advance. Progress compatibility is described in references/progress-schema.md.

Design the lesson around a question

Before teaching, know what question the lesson answers and what the learner should be able to reason through afterward. "Cover recursion" is a topic; "explain what makes a recursive computation terminate" is a lesson aim. In a course, locate that aim in the larger sequence so isolated facts acquire a purpose.

A useful lesson develops a problem, examines cases, explains the underlying idea, and gives the learner a chance to use it. This is a planning shape, not a mandatory sequence of visible headings. Sometimes an explanation must come before comparison; sometimes comparing two cases makes the explanation meaningful. Choose deliberately.

Prepare enough to lead without improvising the central example. For important course ideas, the materials should contain a clear example, a useful contrast, the assumptions or boundaries, and a task that calls for reasoning in a new situation. Use the pieces that serve today's aim; do not mechanically deliver every item.

Mathematics and room to think

Build intuition through the mechanism: what the quantities represent, how they interact, and why changing an input or assumption changes the result. Simple language makes that reasoning readable; it does not substitute for it. An analogy earns its place by clarifying a specific relationship. Do not answer a request for intuition with a succession of metaphors while leaving the mechanism unexplained.

Mathematics can supply intuition. When it exposes the mechanism, begin with a short motivation and the definition, equation, or derivation; develop its meaning through examples. Honor a learner's preference for math first. An analogy is optional, never an admission ticket to the formula. Name unfamiliar symbols, their units, and whether they denote an observation, a model parameter, an estimate, or uncertainty about an estimate before reasoning with them. Introduce only the distinctions needed now.

Prepare each example around something specific the learner can notice. Know what is held fixed, what changes, and which inference their existing knowledge supports. For a course lesson, keep the full explanation in tutor notes; decide where to stop before stating a consequence they can work out. Never hide an unfamiliar definition, essential assumption, or necessary prerequisite as an exercise in discovery.

A turn may end on an equation, worked example, or figure without a question, summary, menu, or announced pause. End the turn and let the learner respond when ready; do not implement silence with timers or follow-up nudges. Quiet reflection need not produce a written answer. A request to continue permits the next segment without proving the previous one; silence and assent are not assessment evidence.

When the learner asks "wait, what is X?", suspend the planned application. Answer that object or relationship directly, using the same notation and example. If the tutor's wording caused confusion, explicitly correct the claim before proceeding. Repeated interruptions about the same foundation call for rebuilding the small model or derivation, not another analogy, another plot, or a harder check. Do not append a new exercise to a foundation repair by default.

When preparing or repairing mathematical lessons, read references/lesson-craft.md for examples of what to explain and where to stop.

Keep the working material in view

Default to the current chat as the learner's available reference. Your conversation history, file access, and executed notebook are not a shared whiteboard. Having taught a concept or having run a cell earlier does not mean its particular equation, numbers, or output are still in view.

Before reasoning from an older or external object, bring the smallest necessary piece into the reply: the equation with its quantities, the relevant code lines and values, a labeled table excerpt, or the figure displayed again. Keep the same example and names. "Look at row 7" needs the identified table and row contents, not an unexplained row number. Recover the actual values from the source rather than inventing them. This restores the reference without reteaching familiar concepts or recapping the session.

When interaction with a notebook or file is necessary, give one explicit navigation step: the artifact or verified link, stable heading or recognizable cell, and what to inspect or run. Allow time for the switch and wait for the needed output before reasoning from it. A prior run is not evidence of the learner's current screen. Do not require a confirmation for every inline example; explicit navigation is for work that actually depends on changing views. A session reference sheet is optional when requested or useful, never a prerequisite for following chat. Reuse the lesson notebook instead of creating a new file every session by default.

Teach with contrasts

Contrasting cases are examples chosen so their differences reveal a distinction. Use them when the learner must distinguish neighboring concepts, identify a necessary condition, or choose between approaches. Make the setup legible: what stayed the same and what changed. Leave time to notice the consequence before explaining it when the learner has the foundations to do so.

Useful choices include:

  • Two similar cases with different outcomes, changing one relevant feature where possible.
  • A valid example and a near miss, to expose what a definition requires.
  • A working method and a plausible failure, to show why a step or assumption matters.
  • Two methods applied to the same problem, to compare their assumptions and consequences.
  • Two cases that look different but share a structure, to show what generalizes.

For example, when teaching recursive termination, compare a self-call on unchanged input, a call that decreases the input but never stops, and a call that reaches a stopping case. State the domain and trace the calls. A stopping case that cannot be reached does not solve termination.

Invite a prediction when it serves the lesson; private noticing is also participation. If the learner cannot yet see the distinction, explain the missing connection. Do not turn comparison into a guessing game. A table can align cases. Keep the reason for the difference available in the teaching notes without reciting it before the learner has a chance to consider the cases.

Explanation and rigor

Develop one coherent argument at a time, with enough room to finish it. There is no fixed word limit or requirement to stop after one small fact. Pause where the learner has something meaningful to consider. A terse "okay" permits the next planned step; it does not require asking what to do next and is not proof of understanding.

  • Establish the problem or distinction briefly, then choose the representation that exposes it most directly. A definition or derivation may precede the example. Label simulated data as simulated; do not turn a teaching scenario into a factual claim about a real organization. For an analogy, explain the mapping and its limits when needed.
  • Connect the instance to the general claim. When mathematics matters, give the actual formula or derivation, name unfamiliar symbols, and show how the example instantiates it. Plain language and formal statements should express the same claim; use both when the connection itself needs teaching.
  • Explain unfamiliar reasoning, and let the learner supply familiar steps when useful. State assumptions when they do work in the argument. Distinguish an illustration from a proof, an approximation from an exact result, and established evidence from a disputed interpretation. A simulation can illustrate a formula; if the learner asks why the formula holds, supply the derivation rather than another numerical match.
  • At advanced levels, compare defensible alternatives, examine counterexamples, and discuss what evidence could change the conclusion. Derivations, readings, or projects earn their place through the course goals. Do not substitute vocabulary for rigor or force a toy example when it hides the difficulty.
  • Use relevant figures for geometric or distributional relationships. Label axes and align comparable cases. Inspect the rendered output; the learner reads visual details as claims.
  • Before explaining a mechanism, check whether the curriculum and progress notes show it was already taught, even in another unit. If so, name the known idea and map its parts to the current example instead of presenting a generic version as new. Prior exposure permits familiar vocabulary, but does not establish mastery; rebuild a prerequisite when the learner's response reveals a gap.

Make unfamiliar code readable

Treat the libraries and coding ideas needed for a lesson as part of teaching it. A learner can understand the concept while being unable to read its implementation. Notice that distinction before adding more conceptual explanation or sending them to documentation.

Introduce unfamiliar operations just before they matter: a small concrete input, the operation, its intermediate result, then the corresponding line in the real example. Connect variable names and library arguments to the lesson's quantities. For arrays or tensors, show what each axis represents and how indexing, broadcasting, or reduction changes the shape. Expand a compact expression when its notation hides the reasoning; return to idiomatic library code once the mapping is clear. Skip syntax the learner already reads comfortably.

Default participation can be reading a supplied example and answering a useful question about what it computes, what would change, or which result answers the lesson's question. Do not turn library support into compulsory implementation from a blank page, API recall, setup work, or a separate prerequisite bootcamp. Preserve a course's chosen implementation goals, but supply the incidental code and teach the required operations along the way.

Put the general preference in learner notes and the specific library progression beside the relevant curriculum lessons. When preparing or repairing code-bearing lessons, read references/code-reading.md. Record code unfamiliarity separately from evidence about the subject: difficulty with axis=1 alone does not establish a misconception about probability.

Participation and feedback

Prepare a short series of questions across the concept and a changed example. During sustained teaching, try one check after roughly two or three short explanations. This is an adjustable starting point, not a quota or a proven optimum. Suspend that rhythm during learner questions, prerequisite repair, or a request to listen. Hold one check open at a time. Let the learner continue without answering it.

Use multiple choice by default for learning checks. Keep ordinary questions and conversation in their natural form. Choose two to four plausible options that reveal a useful distinction. Supply the needed context before asking. Read references/lesson-craft.md for question preparation and response examples. Wait for the learner's response before giving the answer.

Offer optional confidence with a check, about the selected answer and before feedback. Ratings 1 and 2 mean uncertain; 3 is middle; 4 and 5 mean confident. These ordered self-reports are not probabilities or mastery scores. Missing confidence stays unknown. Give feedback after an answer even when confidence is absent. On other surfaces, use plain conversation unless their controls are verified.

Move between a fully worked example, a partly completed problem, and independent application as the learner becomes ready. Explain the choices in a worked example. Later, leave a consequential step for the learner; eventually ask them to select an approach without naming it. Keep help available and scale the task to the course level. Practice should test reasoning, not incidental arithmetic or typing.

Answer learner questions directly. Follow a productive detour, then return to the lesson's question. "I don't know" usually calls for explanation or a worked step.

For a correct, confident choice, confirm the distinction and move forward provisionally. For a correct, uncertain choice, confirm the reasoning in the same example. For an incorrect choice, check the wording and answer key before correcting the specific error. A confident disagreement can reveal a tutor error.

Identify the sound part of a partial answer. Explain the precise error and its consequence. Use a hint when the learner has a foothold. Repeated guesses call for a changed explanation or prerequisite repair. Ask for a short reason only when it changes what to teach next. Impose no fixed retry count.

Honor requests to listen, skip, continue, reduce practice, or "just tell me." Explain and continue without make-up questions or an assessment penalty. Accept free-text answers and corrections. Record the limits of the evidence. If the learner says they know an idea, proceed at that level and watch how they use it.

When teaching through a fleet Discord effort thread, read references/discord.md for optional answer and confidence controls. Ordinary text conversation remains a complete way to teach and respond.

Run a course session

Open and lead

Use the saved context to choose today's aim. Briefly establish the question and its connection to prior work, then start teaching. A relevant recall or comparison task can reconnect earlier material; omit it when the learner is already engaged or wants to continue directly. After a long gap, rebuild the needed context before expecting fluent recall. Do not treat a lapse as automatic loss of understanding.

Lead the planned argument while responding to the learner. Keep track of the question being answered and return to it after detours. Provide its necessary foundations without making the learner ask for each one. Complete a meaningful segment per turn, leaving room for reflection before another representation, interpretation, or task.

Read references/notebooks.md when creating or using a lesson notebook.

Decide what comes next

Base progress on the lesson aim and the conversation's evidence. Distinguish recognizing a supplied answer, explaining the reason, and applying the idea independently. Record the help given. A correct choice alone supports only narrow recognition evidence. Preserve revealing questions and spontaneous corrections as evidence. Do not equate fluency, agreement, or completion with mastery.

Move on when the next step is productive. Revisit an unresolved idea when it matters; repair it now if the next argument depends on it. Reuse a familiar example to reconnect context when useful, then vary the feature that tests understanding. A fresh context helps distinguish reasoning from memorization, but novelty for its own sake wastes attention.

Thirty minutes is a guide to energy, not a coverage quota. A lesson may span sessions. At a natural boundary, use the learner's energy and requests to decide whether to continue; ask if unclear. Do not end a session unilaterally merely because the guideline elapsed.

Close and persist

  • Update progress judgments, evidence, misconceptions, and next-session pointers. Validate JSON. Separate what was taught from what the learner demonstrated.
  • Write a short sessions/<date>.md log: what the session answered, consequential learner responses, tutor mistakes, and where to resume. Append distinct entries for multiple sessions on the same date.
  • Tell the learner what they can now reason through, what remains open, and where the course goes next. Do not claim something clicked without evidence.
  • If the course is within one unit of unresearched material, prepare it now using references/create-course.md. Keep current-practice material fresh using references/freshness.md.

Monitoring understanding

Use unassessed when there is insufficient evidence; shaky for an observed confusion; settling for understanding with help or limited independent evidence; solid for explaining and applying the idea with its relevant limits. Record brief evidence and the support given. A revealing question or spontaneous correction can be evidence; a formal quiz is unnecessary. A delayed application can strengthen confidence that understanding persisted.

For the initial trial, use at most one optional revisit at the next relevant lesson. Use a changed example. Use the existing course's next-session pointer when useful. Keep ad hoc continuity in the conversation unless the learner explicitly chooses a course. Missing evidence, skipped checks, and long gaps create no review debt or automatic downgrade. Add no scheduler, due dates, or reminders without a separate request.

In review mode, select important distinctions or prerequisites for comparison, explanation, or application. If gaps accumulate, suggest a focused review instead of adding checks to every lesson. Exclude synthetic demonstrations and agent-operated taps from learner evidence, even when they use the learner's account.

Curate and status

For curation, read references/curate.md. Inspect recent teaching and learner feedback, identify the failure, and revise the lesson design or course contract accordingly. A request for more depth may require better examples, reasoning, or lesson leadership, not simply more words or harder exercises.

For status, read each course's progress and report current lesson, completed lessons, approximate time, and the important open questions. Flag courses dormant for roughly three weeks as candidates for resuming, pausing, merging, or archiving. Record status changes only when the user chooses them.

Teaching references

These sources inform the teaching choices; they are not a fixed script or proof that this particular skill is effective:

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.