Learn
Turn a GitHub project / paper / technical book / field into an offline, shareable, interactive learning page — a family of standard skills (Claude Code, Codex, Gemini, OpenCode…). Personal use; not token-optimized.
npx -y skills add shangjunyang1986/ai-learning-skills --skill learnAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
The front door to the ai-learning-skills family — mainly a ROUTER: given anything the user wants to learn — a GitHub repo/org URL, an arXiv link / paper / PDF, a technical book, or a bare topic/field — detect the source type and hand off to the right family skill (github-project-learn / paper-learn / textbook-learn / domain-learn), asking one quick question when it's ambiguous. Use this when the user types /learn, says "我想学这个 / 帮我 学习…" without it being obvious which skill fits, or asks to learn something but isn't sure how. If the input ALREADY clearly matches one specific family skill (a plain GitHub URL, a clear arXiv link, a named textbook, a bare field name), that skill can trigger directly — this router is for the unified entry point and ambiguous inputs. It ALSO has an OPTIONAL secondary capability — a library hub that aggregates all the learning pages you've generated into one offline index — worth building only once you've accumulated many pages; trigger it only on an explicit "建/打开我的学习库 / build my learning hub / 把我做的学习页汇总". Not for: generic web apps or answering a one-off question.
SKILL.md
5.5 KB, as published. Nobody here has run it
learn — family front door (router; + optional library hub)
The single entry point to the ai-learning-skills family. Its main job is routing: send
any "I want to learn X" to the right sibling skill. It also has an optional library hub
(Mode B) that collects everything you've generated into one offline index — useful only once
you've accumulated many pages, so treat it as a bonus, not the headline. (The hub can't read a
page's internal progress across file:// origins, so it tracks only library-level status you
set on the hub — another reason it's a nice-to-have, not core.)
The four siblings, by source:
- github-project-learn — a GitHub repo or whole organization.
- paper-learn — a single paper / arXiv link / paper PDF.
- textbook-learn — a technical book / textbook PDF / EPUB.
- domain-learn — an open topic or field (not one repo, paper, or book).
Mode A — Route to the right skill
- Detect the source type from the user's input (see
references/routing.mdfor the full decision table + disambiguation). Quick version:- Contains a github.com URL →
github-project-learn. - Contains an arxiv.org / ar5iv link, or names a paper ("精读…", "这篇论文"), or a
PDF that looks like one paper (abstract + references, ~8–20 pages) →
paper-learn. - Names a book / a PDF or EPUB that's a textbook (chapters, a TOC, many pages) →
textbook-learn. - A bare topic/field with no URL and not a specific book/paper ("学习 3DGS", "研究下
扩散模型") →
domain-learn.
- Contains a github.com URL →
- If ambiguous, ask one quick question rather than guessing (e.g. a PDF that could be a book or a paper; a GitHub URL that's actually a paper's official code; a topic that's really one famous paper). One AskUserQuestion, then route.
- Hand off by invoking the chosen skill via the Skill tool, passing the user's source. That skill owns the actual build (research → page → verify). Don't re-implement it here.
- After it finishes, offer to add the new page to the library hub (Mode B).
Mode B — Build / refresh the library hub (optional)
This is a bonus, not the point of the skill — only worth doing once the user has accumulated
many learning pages and wants one place to see them. Don't push it for a handful of pages (a
folder or samples/README already does that job). When the user explicitly asks to build/open
their learning library:
- Find the library root — the folder under which their
*-learn/pages live (ask if unknown; default to the current project or a~/learningstyle folder). - Run the builder:
It scanspython skills/learn/scripts/build-hub.py <root> --out <root>/learn-hub --title "我的学习库"<root>for family pages, classifies each (by an explicitlearn:typemeta, else the…/<skill>/<name>/folder layout, else content heuristics), picks a thumbnail from each page'sassets/, and writes<root>/learn-hub/index.html— a self-contained offline index with type filters, search, and a per-page learn-status toggle (未开始 / 在学 / 学完) saved in the hub's own localStorage. - Open it (
start/openthe generatedindex.html) and tell the user it refreshes by re-running the script.
See references/hub.md for the builder's options, classification rules, and the layout that
makes auto-classification clean.
Bundled resources
scripts/build-hub.py— the offline hub generator (Python stdlib only; no deps).assets/hub-template.html— the hub page shell (same family design system); the script injects the page list into itsLIBRARYarray.
Principles
- Route, don't re-implement. This skill picks the right sibling and hands off; the sibling does the faithful research + build. Keep the routing logic thin and the disambiguation honest (ask when unsure, don't guess wrong).
- The hub is just an index. It links to real pages and tracks library-level status in its own storage. It can't read another page's localStorage (separate file origins), so it tracks "started / done" at the page level on the hub itself — honest about what it can know.
- Offline-first, faithful, consistent — same as the rest of the family. The hub is a self-contained page with relative links; it never invents pages that aren't there.