Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/duthaho/skillhub/learnnpx skills add duthaho/skillhub --skill learngit clone --depth 1 https://github.com/duthaho/skillhubWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00164 | $0.02630 |
| Opus 5 | $0.00082 | $0.01315 |
| Sonnet 5 | $0.00033 | $0.00526 |
| Haiku 4.5 | $0.00016 | $0.00263 |
Grade A, and why
learn scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
learn — personalized tutor with memory
/learn <topic> — start or continue learning a topic
/learn — list topics in progress and what's due
/learn quiz <topic> — quiz-only session (no new material)
Answer one question per session: what should this learner do for the next N minutes to durably advance toward their goal? One unit per session, active recall before and after, everything scored and remembered. The point is durable learning, not an impressive wall of text.
This skill is deliberately keyless (native WebSearch/WebFetch only,
when verification is needed) and human-paced: the learner answers real
questions in chat; you grade what they actually wrote.
Modes (auto-detect)
- NEW — no
out/learn/<slug>.mdexists for the topic → interview + syllabus. - CONTINUE — a log exists → run the session loop from where it left off.
- STATUS —
/learnwith no topic → summarize all logs: per topic, progress (x/yunits), last session date, review items due, and a suggested next step. - QUIZ — "quiz me" → recall-only session from the review queue + covered units; grade, update the log, teach nothing new.
The learning log — memory across sessions
One file per topic: out/learn/<slug>.md (<slug> = topic lowercased,
non-alphanumerics → hyphens). It is the skill's entire memory
and it is the learner's file too — plain markdown they can read and edit.
Respect manual edits (a unit hand-marked done stays done; ask nothing).
# learn log: <Topic>
## Learner
Goal: <what they want to be able to DO> · Level: <self-described start point>
Background: <relevant experience to hook examples onto> · Session length: ~<N> min
Freshness: <stable — teach from knowledge · fast-moving — verify each unit before teaching>
## Syllabus <!-- status: ☐ not started · ◐ taught, not passed · ✓ passed -->
1. ✓ <unit — one teachable idea>
pass: <the check question/exercise that proves it> · rubric: <2–3 criteria>
2. ◐ <unit>
pass: <…> · rubric: <…>
## Review queue <!-- weak spots; due dates, not session counts -->
- <item missed> — missed 2026-07-05 (conf: sure) · due 2026-07-06 · passes 0/3
## Sources <!-- verified references; check here before searching again -->
- <title> — <url> · verified 2026-07-05 · covers: <units/claims>
## Sessions
| # | Date | Unit | Warm-up | Check | Notes |
|---|------|------|---------|-------|-------|
| 1 | 2026-07-05 | 1. <unit> | — | 3/4 | confused X with Y |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 191 lines · 164 tokens per session scan A e4f65b54c66e
learn is a skill published in the GitHub repository duthaho/skillhub (9 stars, last pushed 9d ago), licensed MIT. It adds 164 tokens to every session and 2,630 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
land
Use when the user wants knowledge delivered to an audience — slides, a deck, a diagram, an explainer for others, teaching or talk material — or shares existing content that isn't getting through.
grasp
Use when the user asks to explain or understand a code change, diff, branch, or PR — or to catch up on a change an agent built before reviewing or shipping it.
toy
Use when the user wants to understand a system by interacting with it themselves — asks for a debugger, visualizer, simulator, stepper, playground, or command center as an aid to their own understanding — or when reading and explanation haven't built intuition for how something behaves. Not for user-facing product…
respond-to-eval
Turn student course evaluations (free-text + numeric) into an actionable teaching-improvement plan — the teaching analogue of /respond-to-referees. Clusters comments into themes, separates signal from noise, classifies each theme Keep / Change / Investigate / Out-of-scope, and drafts concrete changes mapped to the…
create-lecture
Create a new Beamer lecture .tex from source papers and materials, with notation consistency checks and the project's preamble wired in. Use when user says "create a lecture on X", "new lecture from these papers", "start a deck on topic Y", "scaffold a new Beamer file", "build me a lecture from these PDFs". Scaffolds…
devils-advocate
Adversarial 5-7 question challenge to a deck's pedagogical choices — ordering, prerequisites, cognitive load, motivation. Use when user says "devil's advocate", "poke holes in this deck", "push back on my slides", "stress-test the design", "what would a skeptical student ask?". Read-only; surfaces questions to force…