Skip to content
Back to skills

Learn This

ASecurity

Teach the user a topic and persist what they learn as queryable vault memory, grounded in NotebookLM. Vault-native companion to /teach.

  • 51 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 4, 2026
ai-agentspythonrustgobashnodedatabase

Works with

  • terminal
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add sliamh11/Deus --skill learn-this --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Learn This?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Learn This
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sliamh11-learn-this/badge)](https://www.skillsdirectory.com/skills/sliamh11-learn-this)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: learn-this
description: Teach the user a topic and persist what they learn as queryable vault memory, grounded in NotebookLM. Vault-native companion to /teach.
user_invocable: true
argument-hint: "What do you want to learn?"
---

# /learn-this

Teach the user something and make the learning **stick across sessions** by persisting it into the
semantic memory vault, so the next session (and any project) can recall what they already know.

This is the **vault-native** sibling of `/teach`. Where `/teach` builds a directory-based,
multi-week course workspace (mission file, lesson HTML, local learning-records), `/learn-this`
keeps no local workspace: it writes each learning as a **vault memory node** retrievable anywhere
via `memory_tree.py`, and grounds knowledge in **NotebookLM** rather than parametric guessing.

## Relationship to /teach (read this — single source of truth)

- `/teach` → a self-contained course workspace in the current directory. Best for a sustained,
  structured curriculum with rich interactive HTML lessons.
- `/learn-this` → lightweight, cross-session learning capture into the global vault + NotebookLM.
  Best for "teach me X and remember that I learned it" across projects.

**Never duplicate a learning record across both.** A `/teach` workspace owns its local
`learning-records/`; `/learn-this` owns `$VAULT/Learning/`. If a learning relates to a `/teach`
course, link it with a `see_also` edge — do not copy it.

## Steps

### 1. Resolve the vault path

Read `~/.config/deus/config.json` and use its `vault_path`. If `DEUS_VAULT_PATH` is set, use that
instead. All paths below use `$VAULT` for this resolved path. (Same resolution as `/checkpoint`,
`/compress`, `/preserve` — keep it portable; never hardcode a personal path.)

### 2. Establish the mission

Understand **why** the user wants to learn this — the concrete real-world goal it serves. This
grounds every teaching choice. If it is unclear, ask before teaching; a vague mission produces
abstract, ungrounded lessons. The mission is captured inside the first learning node (step 6), not
in a separate file.

### 3. Compute the zone of proximal development — from the vault

Query the vault for what the user already knows on this topic:

```bash
python3 ~/deus/scripts/memory_tree.py query "<topic> — what has the user already learned?"
```

Read the returned learning nodes. Teach the **next** thing that builds on them — challenging "just
enough", neither re-teaching the known nor jumping past a gap. This is the cross-session ZPD (vs
`/teach`, which reads a local `learning-records/` folder).

### 4. Ground the knowledge in NotebookLM

Do not trust parametric knowledge. Pull high-trust material from NotebookLM:

- Pick a relevant notebook (the user's course notebooks are listed in the vault's `STUDY.md`).
  `mcp__notebooklm-mcp__notebook_query` for explanations, definitions, and citations.
- For a long-form lesson, `mcp__notebooklm-mcp__studio_create` (audio / video / slides), poll
  `mcp__notebooklm-mcp__studio_status`, and link the artifact in the learning node.

**Auth degradation is explicit, never silent.** If a NotebookLM call fails authentication, tell the
user to run `nlm login` in their terminal, and ask whether to proceed *without* NotebookLM grounding
(flagging that the lesson will then rest on lower-trust sources). Do not silently skip grounding.

### 5. Deliver the lesson

Teach in the user's style (see the `ai-role` and study preferences in the vault):

- **Visual-first** — diagrams / flowcharts before walls of text (Mermaid where useful).
- **Feynman-first** — simple analogy → why it matters → how it connects to what they already know.
- Keep it short and within working memory; one tangible win per lesson, tied to the mission.
- Cite the NotebookLM sources so claims are checkable.
- Close with a **tight retrieval-practice loop**: ask the user to recall/apply it and give immediate
  feedback. Effortful retrieval is what builds long-term retention (storage strength), not fluency.

### 6. Persist a learning record as a vault node

**Only when there is real evidence of understanding** (a correct recall, a solved problem, a
corrected misconception) — coverage is not learning. Write:

```
$VAULT/Learning/<topic-slug>/NNNN-<dash-case-name>.md
```

`NNNN` = next integer in that topic folder (scan for the highest existing). Use the frontmatter and
guidance in [LEARNING-NODE-FORMAT.md](./LEARNING-NODE-FORMAT.md). **Write an `id` in the
frontmatter** — the memory tree indexer and the auto-embed hook *skip* any node without one (they
return `no_id`), so an id-less node is silently never retrievable. Mint one in the `make_id` format
(32-char hex = 48-bit ms timestamp + 80-bit random):

```bash
python3 -c "import time,secrets; print((int(time.time()*1000).to_bytes(6,'big')+secrets.token_bytes(10)).hex())"
```

The `description` field is the embedding source — make it a tight summary of *what was learned and
why it matters*, since that is what future `memory_tree.py query` calls match on. Add `see_also`
edges to related learning nodes, the vault `STUDY.md`, and any related `/teach` workspace.

### 7. Make it retrievable

Writing the node file triggers the vault PostToolUse hook (`memory_tree_hook.py`), which embeds the
node into the **memory tree** — so the `memory_tree.py query` in step 3 finds it in future sessions
automatically. If you need it indexed immediately, or the hook is not active (e.g. a headless run),
run:

```bash
python3 ~/deus/scripts/memory_tree.py build
```

(walks the vault and upserts new nodes + edges). **Do not use `memory_indexer.py --add`** — that
indexes *session logs* into a separate atom/search database, not the navigation tree that step 3
queries; a learning node added there would not be reachable via `memory_tree.py query`.

### 8. Wisdom — point to a community

When a question needs real-world practice beyond what you can give, point the user to a
high-reputation community (forum, subreddit, local group) where they can test the skill. Respect a
stated preference not to join communities.

## Notes

- The mission may shift as the user learns; when it does, write a new learning node capturing the
  shift rather than rewriting history (vault is soft-append; never overwrite a node's meaning).
- Keep lessons grounded in the mission — abstract lessons with no real-world anchor do not stick.

Files in this skill

  • LEARNING-NODE-FORMAT.md3.5 KB
  • SKILL.md6.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.