DeepTutor CLI
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
Develop the current topic into a connected lesson. An agent skill from madhvantyagi/Gnos.
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install madhvantyagi/Gnos lesson-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/lesson-design .claude/skills/lesson-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .claude/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install madhvantyagi/Gnos lesson-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/lesson-design .agents/skills/lesson-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .agents/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install madhvantyagi/Gnos lesson-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/lesson-design .cursor/skills/lesson-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .cursor/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/madhvantyagi/Gnos.git --path skills/lesson-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install madhvantyagi/Gnos lesson-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/lesson-design .gemini/skills/lesson-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .gemini/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install madhvantyagi/Gnos lesson-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/lesson-design .github/skills/lesson-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .github/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add madhvantyagi/Gnos --skill lesson-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install madhvantyagi/Gnos lesson-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/madhvantyagi/Gnos.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/lesson-design .opencode/skills/lesson-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lesson-design" agent skill from https://github.com/madhvantyagi/Gnos/tree/main/skills/lesson-design into .opencode/skills/lesson-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lesson-designDevelop the current topic into a connected lesson. An agent skill from madhvantyagi/Gnos.
Lesson Design is an agent skill from madhvantyagi/Gnos. Develop the current topic into a connected lesson. Choose complementary representations, review each block, register its artifacts, and publish lesson.json.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/lesson-contract.md`, `references/lesson-design.md` and `references/representation-choices.md`).
It sits in Education. The repository describes itself as: Teaching harness , help you to learn anything , It teaches like real teacher , design curriculum , generate videos , simulations , images , pdfs , tracks your learning style etc. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 040fa15. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Lesson Design loads about 2.4k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 43 tokens; SKILL.md has 1,203 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from madhvantyagi/Gnos at commit 040fa15, republished under its MIT licence (© madhvantyagi). 1,203 words, ~2,403 tokens.
.claude/skills/lesson-design/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Build only the lesson for the current topic. The course is already enrolled and designed by course-design. Do not rebuild the course here.
Start here after course-design has enrolled the course. If there is no enrolled
learners/<learner>/courses/<course-id>/course.json, stop and return
to course-design. Return there for a new concept, source, or topic boundary.
Choose media and develop explanations here; those choices alone do not require
a course revision unless the topic has a binding representation plan.
Read these before writing anything:
course.json: depth, length,
current.{chapter_id, topic_id}, and that topic's optional representations[],
skill_routes, concepts,
and teacher.skills/subject/SKILL.md. It says what
learners in this field must inspect.lesson.json.For a core concept or an unverified prerequisite that Khan Academy can explain at the needed level, use the Khan Academy skill to inspect an exact item before choosing it. A prerequisite clip should repair one gap and lead straight back to this topic. A main-topic clip should sit between a specific prediction and GNOS's own explanation or changed example. Use Khan for an important section when it fits, and reuse it only when a later section needs that exact content. Read its selection reference to distinguish target-topic coverage from prerequisite-only coverage. Keep diagrams, code, derivations, simulations, and other forms where they serve the remaining reasoning. Do not add a generic resource list or assume watching proves understanding.
depth and length were agreed during course design. Use them to decide how
far to develop the reasoning and each representation. A survey needs a
carefully chosen central case; working depth needs application under changed
conditions; mastery needs closer examination of assumptions and limits.
Choose complementary forms for those jobs, including within one concept.
Duration alone neither requires more media nor limits a useful combination.
Choose the block type while drafting the reasoning. Write one sentence per block before you build it:
"The learner must inspect, change, hear, compare, derive, or practice ___."
Give each representation a distinct teaching job. Several forms can develop one concept: a video can demonstrate a relation, a diagram can keep its parts inspectable, and a simulation can test a changed input. Remove repetition that adds no new explanation, observation, or practice.
| Representation kind | Lesson block type |
|---|---|
manim | voice-animation |
image | diagram or artifact |
diagram | diagram or artifact |
simulation | interactive-graph or simulation |
pdf | artifact |
text | explanation, bullets, equation, code, source |
exercise | exercise |
khan | khan-video |
| Khan Academy article or exercise | source |
For a mathematical graph, follow the selection rules in representation choices
and use JSXGraph when they fit. Declare its production
route in the lesson as with the other media skills. It uses the existing
interactive-graph or simulation blocks; the graph library does not add a
new representation kind.
When the topic has a representation plan, bind a block to the matching
entry with representation_id and keep its concept, purpose, kind, and
skill route. For a topic without that plan, choose the medium during lesson
design. In either case, put a Khan video in its own khan-video block with
a prompt tied to this lesson's concept and the next learner action. Check the
actual segment before publishing and follow it with GNOS's own example or
exercise. If a planned representation is wrong, revise and validate
course.json before changing the lesson.
A lesson.json holds id, course_id, chapter_id, topic_id,
readable title, observable purpose, concepts from the topic, the
topic's teacher (or null), skill_routes carrying the topic guidance and chosen media producers,
assumptions, ordered blocks, detailed exercises, publication
(draft, ready, or archived), and real UTC timestamps.
Order blocks by reasoning, not by file type. A good order names the claim, lets the learner inspect its changing parts, then asks for a prediction. When a topic has a representation plan, use its approved media or revise that plan. Without a plan, choose the media that teach the current concept.
Validate the skeleton and publish it as draft before producing
files. The draft gives every artifact a real lesson ID:
python3 skills/course-design/scripts/validate_lesson.py lesson.json \
--course learners/<learner>/courses/<course-id>/course.json
python3 skills/course-design/scripts/course_workspace.py publish \
learners/<learner>/courses/<course-id> --lesson lesson.jsonFor schema version 2, give every block a complete production brief, including
blocks the coordinator writes. The brief preserves the teaching decision.
Read the worker packets for per-kind
wording. Each brief names:
skill_route: declared by the lesson. Honor the topic route when a
binding representation specifies it.brief: one bounded job. Name the object, relation, label,
control, or check the worker must produce.must_include: every item the worker must show.continuity: terms, symbols, colors, direction, units, names, and
dates the worker must keep from earlier blocks.acceptance_checks: how you will check the result.depends_on_block_ids: earlier blocks needed for this block; use [] when none.Carry one concrete case through related blocks. Put its exact values, source
passages, assumptions, notation, and visual meaning in continuity. State what
the next view adds: a diagram exposes a relation, a trace explains its order,
or a control tests a changed condition. Do not make workers invent a fresh
example to fill missing context.
Use build_block_context.py to compile the assigned block and its earlier dependencies without rewriting the lesson:
python3 skills/lesson-design/scripts/build_block_context.py lesson.json \
--course learners/<learner>/courses/<course-id>/course.json --block <block-id>The packet is private production context. Attach accepted media exports when a dependency uses them; the script cannot establish that a file was inspected.
Do not write "make it clear", "make it engaging", or "add context". Those words test nothing.
Run multi-agent execution for each file-producing block.
Delegate long explanations or worked code when they benefit from focused production. Keep short explanations, transitions, and notation yourself.
Give each worker only its block, its course representation, the
selected subject guidance, shared continuity rules, and required
source material. Workers write to separate output paths. They return
a completed block fragment or artifact plus its registration payload.
They never edit course.json, lesson.json, or manifest.json.
Check every result against its acceptance checks. Reject a result that breaks the brief or continuity. Revise a medium or block purpose here; return to course design for a new concept, source, or binding representation. A worker proposes a change instead of silently returning a different artifact.
Only the coordinator updates the artifact manifest. Register finished artifacts one at a time and refresh the fingerprint between writes:
python3 skills/course-design/scripts/manage_artifact.py --learners-root learners \
register <learner-id> <course-id> --file artifact.jsonAfter reviewing the assembled explanation and artifacts, write the
design_receipt specified in the lesson contract using the current course
fingerprint. Then validate the lesson, set it to ready, publish it
with course_workspace.py publish, and re-render the course page:
python3 skills/course-viewer/scripts/render_viewer.py learners/<learner>/courses/<course-id>If the learner has requested or approved viewing, give the fresh portal/
link with what to inspect. Otherwise return to the orchestrator's show question.
Teach directly in chat while the learner is actively
interacting. The formal lesson still captures the topic for the
portal. When evidence changes the route itself, send the change to
course-design with the reason so it lands in revision_notes. See
skills/learner-tracking/SKILL.md for the adaptive step.
Use validate_lesson.py, course_workspace.py publish,
and manage_artifact.py register for publication. The context compiler is an
authoring aid. The workspace,
the plan validator, and the manifest live in skills/course-design/scripts/;
call them by those paths.
© madhvantyagi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (scripts, references) in skills/lesson-design of madhvantyagi/Gnos.
Open the folder on GitHubat commit 040fa15
Lesson Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lesson Design this skillmadhvantyagi/Gnos | 339 | — | ~2.4k | Automated safety check: Pass | MIT | |
| DeepTutor CLIHKUDS/DeepTutor | 41k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| AI Engineering Placement Quizrohitg00/ai-engineering-from-scratch | 66k | — | ~2k | Automated safety check: Pass | MIT | |
| Deep Reading Analystginobefun/deep-reading-analyst-skill | 354 | 4 repos | ~3.6k | Automated safety check: Pass | MIT | |
| OpenMAIC Setup and ExtensionTHU-MAIC/OpenMAIC | 40k | — | ~1.7k | Automated safety check: Notes | MIT | |
| Codebase to Coursezarazhangrui/codebase-to-course | 5.7k | — | ~4.4k | Automated safety check: Pass | None |
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
rohitg00/ai-engineering-from-scratch
Runs a 10-question quiz across five areas to place a learner in the AI Engineering from Scratch curriculum, so they skip what they already know.
ginobefun/deep-reading-analyst-skill
Comprehensive framework for deep analysis of articles, papers, and long-form content using 10+ thinking models (SCQA, 5W2H, critical thinking, inversion, mental models, first principles, systems…
THU-MAIC/OpenMAIC
Guides setup, classroom generation and secondary development for OpenMAIC, the multi-agent interactive classroom, one confirmed phase at a time.
zarazhangrui/codebase-to-course
Turns a codebase into an interactive single-page HTML course for non-technical learners, with scroll modules, animated diagrams, quizzes and plain-English code translations.
alchaincyf/zhangxuefeng-skill
Answers education and career questions in the voice of Zhang Xuefeng, looking up current employment and admissions data before giving a direct verdict.
madhvantyagi/Gnos
Design and revise a course's goal, progression, prerequisites, and sources.
madhvantyagi/Gnos
Show an enrolled course and its lessons. An agent skill from madhvantyagi/Gnos.
madhvantyagi/Gnos
Find a Khan Academy video fast and add it only on a strong match.
madhvantyagi/Gnos
Record what the learner does and adapt the course to it in real time.
madhvantyagi/Gnos
Make Manim teaching animations with narration and subtitles when motion helps a concept.
madhvantyagi/Gnos
Turn lesson content into a PDF handout; render and check it before delivery.
Categories
Develop the current topic into a connected lesson. An agent skill from madhvantyagi/Gnos. Lesson Design is an agent skill from madhvantyagi/Gnos. Develop the current topic into a connected lesson.
Lesson Design fits situations like: education work in your project.
Run `npx skills add madhvantyagi/Gnos --skill lesson-design -a claude-code`. Or copy the skill folder (skills/lesson-design in madhvantyagi/Gnos) into .claude/skills/lesson-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add madhvantyagi/Gnos --skill lesson-design -a codex`. Or copy the skill folder (skills/lesson-design in madhvantyagi/Gnos) into .agents/skills/lesson-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add madhvantyagi/Gnos --skill lesson-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lesson-design, .gemini/skills/lesson-design, .github/skills/lesson-design and .opencode/skills/lesson-design in your project.
Going by SKILL.md and its folder, Lesson Design needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Lesson Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Lesson Design: DeepTutor CLI (HKUDS/DeepTutor, 41k stars), AI Engineering Placement Quiz (rohitg00/ai-engineering-from-scratch, 66k stars), Deep Reading Analyst (ginobefun/deep-reading-analyst-skill, 354 stars) and OpenMAIC Setup and Extension (THU-MAIC/OpenMAIC, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
madhvantyagi (a GitHub user) maintains it in madhvantyagi/Gnos, which has 339 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.
Source: madhvantyagi/Gnos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.