Use when the user asks about prerequisites, what to study next, what depends on a topic, or wants to query their learning status across knowledge points. Trigger on: "what should I study next?", "what are the prerequisites for X?", "what depends on X?", "show me stale topics", "am I ready to study X?", "show me the knowledge graph for X", "what's my progress?". Also invoked by the teaching-session skill before each session to check prerequisite status. Use this skill any time the user is thinking about navigation, readiness, or learning order — even if they don't say "knowledge base".
Knowledge points are directories containing a meta.yaml file. They can live anywhere
in the workspace — inside a project, as standalone ad-hoc directories, or nested. There
is no fixed knowledge/ directory. Discovery is always by search.
Find all knowledge points by searching the workspace:
rg --glob '*/meta.yaml' -l .
Or equivalently, use Glob with pattern **/meta.yaml. Each result is a knowledge
point; its directory is the point's home.
Read the meta.yaml to understand it.
Required fields:
| Field | Type | Values |
|---|---|---|
name | string | Human-readable name (used to resolve depends) |
description |
| string |
| One-line summary |
status | enum | not-started | in-progress | reviewed | mastered |
depends | list of strings | name values of prerequisites |
Optional fields: tags, sources, created, last_reviewed, review_count,
notes. Read all fields for context but only reason about the required four for
navigation logic.
Dependency resolution: depends entries match by name, not by path or slug.
To find a dependency, scan all meta.yaml files for name: "...". If no file matches,
the dependency is dangling — note it and continue.
When the user wants to study a specific topic, or the teaching-session skill asks you to check prerequisites:
meta.yaml (search by name field or by path if the user named a
directory).depends, find its meta.yaml via name-based search.reviewed or mastered, and last_reviewed (if present) is
within threshold (30 days for reviewed, 90 days for mastered).reviewed/mastered but last_reviewed exceeds threshold.not-started or in-progress.meta.yaml found matching that name.Scan all meta.yaml files. Return topics where:
not-starteddepends have status reviewed or masteredSort by number of unlocked dependents (topics that will become ready after completing this one) — highest unlock value first.
Scan all meta.yaml files. Return topics where depends includes the name matching X.
This answers: "if I learn X, what does it unlock?"
Scan all meta.yaml files. Return topics where last_reviewed is set and:
reviewed and last_reviewed > 30 days agomastered and last_reviewed > 90 days agoList:
One level deep by default. Go deeper if the user asks.
Scan all meta.yaml files. Count by status. Group by project (by directory prefix if
discernible). Present as a brief table.
meta.yaml files here.depends references → note and skip.
Missing optional fields → skip related logic (no last_reviewed = no staleness check).