Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Paidagogos Path

ASecurity

Use when the user wants a whole learning path rather than one lesson — "I want to become an AI engineer", "give me a roadmap for X", "show me the curriculum", "what should I learn next", "show the learning tree", "/paidagogos:path". Also use when the user asks what a curriculum covers, which concepts feed which, or what resources exist for a topic already in a curriculum. Renders a curriculum as an interactive tree in the browser and routes individual concepts to paidagogos:micro for teaching.

2 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsgobashnodeexpress

Works with

cli

Security Analysis

A100/100

Scanned 9/19/2026

$npx -y skills add neotherapper/claude-plugins --skill paidagogos-path --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paidagogos Path?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Paidagogos Path
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/neotherapper-paidagogos-path/badge)](https://www.skillsdirectory.com/skills/neotherapper-paidagogos-path)

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

Download with Pro
Files
SKILL.md
---
name: paidagogos-path
description: >
  Use when the user wants a whole learning path rather than one lesson — "I want
  to become an AI engineer", "give me a roadmap for X", "show me the curriculum",
  "what should I learn next", "show the learning tree", "/paidagogos:path". Also
  use when the user asks what a curriculum covers, which concepts feed which, or
  what resources exist for a topic already in a curriculum. Renders a curriculum
  as an interactive tree in the browser and routes individual concepts to
  paidagogos:micro for teaching.
license: MIT
metadata:
  version: "0.3.0"
  author: Georgios Pilitsoglou
---

# paidagogos:path — Curriculum paths

Loads a curriculum catalogue, renders it as an interactive tree, and hands
individual concepts to `paidagogos:micro` when the user wants to actually learn one.

A curriculum is **data**, not prose. Never author a learning path inline in the
conversation — write or load a curriculum file and render it.

## Available curricula

Do not keep a list here. Run:

```bash
node plugins/paidagogos/scripts/build-index.mjs
```

It prints a `gallery` SurfaceSpec built from `plugins/paidagogos/packs/*/pack.json`.
Every pack that exists is in that output; anything not in it does not exist.
A list written into this file would be a second source of truth that drifts
from the first one silently.

## Phase sequence

Do not reorder these.

### Phase 1 — Identify the curriculum

Match the user's request to a curriculum by running
`node plugins/paidagogos/scripts/build-index.mjs` and reading the gallery output.
If nothing matches, say so and offer either `paidagogos:micro` for a single
concept or to author a new curriculum (Phase 6). Never silently substitute a
neighbouring curriculum.

### Phase 2 — Show the index when the request is not about one subject

If the user asked what curricula exist, or asked for "the roadmaps", stage the
index instead of a single curriculum:

```bash
node plugins/paidagogos/scripts/build-index.mjs --out .paidagogos/content/roadmaps.json
```

Give them `http://localhost:<port>/p/paidagogos/roadmaps`. Each card links
straight to its curriculum. If the script exits non-zero, report its stderr
verbatim and stop — a manifest is broken, and rendering a partial index would
present a missing curriculum as one that does not exist.

If the user named a subject, skip this phase.

### Phase 3 — Start the renderer

Run `visual-kit serve --project-dir .` with `run_in_background: true`. Poll
`.visual-kit/server/state/server-info` until `status` is `"running"`, then read
the `port`. Do **not** ask the user to start it.

If `visual-kit` is not on PATH, fall back to Phase 5 and report the tree in text.

### Phase 4 — Stage and open

Copy the curriculum JSON to `.paidagogos/content/<surface-id>.json`, where
`<surface-id>` matches `^[a-zA-Z0-9_-]+$` — the server rejects anything else, so
strip dots from the filename.

Give the user the URL: `http://localhost:<port>/p/paidagogos/<surface-id>`

State what they can do with it: click any node for the concept detail and its
resources, and switch study sequence if the curriculum defines more than one.

### Phase 5 — Orient, don't dump

Summarise in **at most 10 lines**: the tracks, the recommended first concept, and
why that one is first. The tree carries the detail — repeating it in chat defeats
the point of rendering it.

If the curriculum defines `orderings`, name which is default and what the
alternative optimises for.

### Phase 6 — Route to teaching

When the user picks a concept, invoke `paidagogos:micro` with:

- `topic` = the node's `label`
- `level` = the level in the node's `badges`, if present
- Seed context = the node's `detail.summary` and `detail.body`

If the node has `requires`, check whether the user has covered those first. Say so
once; do not refuse to teach.

## Authoring a new curriculum

Curricula are `tree` SurfaceSpecs validated against
`plugins/visual-kit/schemas/surfaces/tree.v1.json`. Read that schema before
authoring — it is the contract, and the server rejects anything that fails it.

Conventions this plugin adds on top of the schema:

| Convention | Rule |
|---|---|
| Concept ids | Kebab-case, prefixed with the track letter: `c-entailment-checking` |
| Track ids | Single letters where the curriculum has stable tracks |
| `kind` | `branch` for tracks, `leaf` for teachable concepts |
| `badges` | Estimated time first, then level: `["45 min", "beginner"]` |
| `detail.meta` | Domain fields the tree surface does not model — axis, exam weight, build-to-prove-it |
| `requires` | Real prerequisites only, including cross-track ones. This is what makes it a DAG rather than a list. |
| `orderings` | One per defensible study sequence. Mark one `default`. |
| Pack manifest | Every curriculum needs `packs/<slug>/pack.json` validated against `plugins/paidagogos/schemas/pack.v1.json`. Without it the curriculum is invisible to the index. |

### Sourcing rules for resources

A curriculum that cites a certification is making a factual claim about a third
party. The schema enforces the minimum — any resource with a `certification` field
must carry both `url` and `verified_at` — but the discipline is yours:

1. Read the figure off the **vendor's own page or exam guide**. Never a study-guide
   site; several publish invented blueprints, and one matching the official
   weights once is not evidence the next will.
2. Cite the durable landing page as `url`. If you read a generated PDF, put it in
   `artifact_url` — those links rotate.
3. Set `verified_at` to the date **you** checked it, not the date someone told you.
4. If you are relaying a figure you did not verify yourself, set `provenance` and
   explain in `note`. Do not launder second-hand facts into first-hand ones.

Set `provenance` on every resource — `primary` (you read the publisher's own
page), `secondary` (summarised from someone else's write-up), `relayed` (taken
from another party's extraction unchecked). The three verification fields are
orthogonal and none substitutes for another:

| Field | Answers |
|---|---|
| `verified_at` | When did someone last look? |
| `lifecycle` | Does it still exist in the form described? |
| `provenance` | Is this first-hand, or am I repeating someone? |

**Dropping the URL is not the cautious option.** A precise figure with no source
is unfalsifiable while the precision still reads as verification — that is worse
than a source with no figure. If you cannot cite it, mark it `secondary` and say
what it came from.

Check retirement status before recommending any certification. Search results
routinely present retired exams as current.

### Validate before rendering

```bash
node -e "
import('ajv/dist/2020.js').then(async ({default:A})=>{
  const fs=await import('node:fs/promises');
  const ajv=new A({strict:false,allErrors:true});
  (await import('ajv-formats')).default(ajv);
  const v=ajv.compile(JSON.parse(await fs.readFile('plugins/visual-kit/schemas/surfaces/tree.v1.json','utf8')));
  const ok=v(JSON.parse(await fs.readFile(process.argv[1],'utf8')));
  console.log(ok?'VALID':v.errors);
});" <curriculum.json>
```

The schema cannot express four things you must check by hand: ids are unique,
every `requires` target exists, every `orderings.sequence` entry exists, and every
`group` referenced by a node is declared.

## Out of scope

Lesson generation belongs to `paidagogos:micro`. Rendering belongs to `visual-kit`.
Progress tracking is not modelled — curricula are content, and any progress overlay
is a separate file so the curriculum stays reusable by other learners.

Attribution

neotherapperneotherapper
View sourceSee grades on GitHubMore from neotherapper →
SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

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 (0)

No comments yet. Be the first to comment!

SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

696561 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes
View all in ai-agents →