Learn
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.From its SKILL.md
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.
2 things 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.
- runs commandsInstructs the agent to run 1 command, including `python skills/learn/scripts/build-hub.py <root> --out <root>/learn-hub --title "我的学习库"`.
SKILL.md
5.5 KB, ~1.1k tokens by cl100k_base, 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.
What ships with it: 5 files
24.2 KB alongside SKILL.md, 1 of them executable
assets/
- hub-template.html10.2 KB
evals/
- evals.json1.6 KB
references/
- hub.md3.2 KB
- routing.md3.0 KB
scripts/
- build-hub.pyruns6.3 KB