How the Learning Skill is structured: From skill.md as orchestrator through 8 agents to the output structure.
skill.mdThe central configuration file of the Learning Skill. Contains YAML frontmatter with metadata and the complete rule catalog for all modes and phases. is the single file Claude reads at startup. It contains the entire execution plan: which mode is active, which phases run in which order, which agents are dispatched, and which quality rules apply.
The file is organized into logical blocks: YAML frontmatter with metadata, mode detection with keyword lists, phase definitions for both pipelines (KG and Course), template definitions for HTML output, and quality gates as checklists.
# skill.md — Frontmatter excerpt
---
name: Learning Skill
version: 2.0
modes:
course:
keywords: ["Kurs", "Tutorial", "HTML", "course"]
phases: [0, 1, 2, 3, 4, 5, 6]
output: kurs/
understand:
keywords: ["verstehen", "graph", "analyze"]
phases: [0, 1, 2, 3, 4, 5, 6, 7]
output: .claude-learning/
combined:
keywords: ["beides", "kombiniert", "alles"]
phases: [A0-A7, B0-B6]
---
What happens here? The YAML frontmatter defines three operating modes. Each mode has keywords for automatic detection, a phase sequence, and an output directory.
The Course Mode generates HTML files in kurs/, the Understand Mode produces a Knowledge Graph in .claude-learning/, and the Combined Mode does both sequentially — with KG data improving the course scoring.
Beyond mode configuration, skill.md contains complete phase definitions with input/output contracts, agent dispatch rules (which agent is called when with which parameters), the full CSS design system as a template reference, and quality gates checked at the end of each phase.
The eight agents are defined as standalone Markdown files in the agents/ folder. Each file contains YAML frontmatter with the agent's name, role, and output format, followed by a detailed prompt templateA structured text that tells Claude what the agent should do, what inputs it receives, and what format it must respond in. Dynamically filled with project data by skill.md..
Each agent follows the same pattern: it receives structured inputs (e.g., a file list or partial graph), processes them according to its rules, and returns structured output (JSON or Markdown). The orchestrator in skill.md ensures agents are called in the correct order with the right data.
The languages/ and frameworks/ folders provide agents with language-specific knowledge. When the project-scannerThe first agent in the pipeline. It scans the codebase, detects languages and frameworks, and creates a file inventory with paths, LOC, and import maps. detects TypeScript and React, the orchestrator automatically loads languages/typescript.md and frameworks/react.md as additional context for analysis.
# languages/typescript.md — excerpt
---
language: TypeScript
extensions: [".ts", ".tsx", ".mts", ".cts"]
---
## Import Patterns
- ES Modules: import { X } from './module'
- Type imports: import type { T } from './types'
- Dynamic: const mod = await import('./lazy')
## Node Types for TypeScript
- interface -> type: "interface"
- type alias -> type: "type"
- enum -> type: "enum"
- React Component -> type: "component"Currently 23 programming languages are supported (from C++ to YAML) and 10 frameworks (from Django to Vue). The files extend agent knowledge without modifying skill.md — a true plugin system.
The orchestrator in skill.md coordinates the entire workflow. It detects the mode, starts the correct pipeline, dispatches agents sequentially or in parallel, and merges their results at the end. The principle: skill.md thinks, agents work.
Important: Agents run as sub-agentsClaude can spawn additional Claude instances within a session (Task tool). These sub-agents receive their own prompt template and work in isolation. Their results flow back into the main context. in isolated contexts. The file-analyzer, for instance, only receives its batch of 20-30 files and the language addenda — not the entire project state. This saves context tokens and enables parallelization.
Depending on the mode, the Learning Skill produces different outputs. In Understand Mode, a .claude-learning/ folder is created with the Knowledge Graph as JSON, intermediate files, and an HTML dashboard. In Course Mode, a kurs/ folder with the level hierarchy is generated.
# Understand Mode Output
.claude-learning/
knowledge-graph.json # Final graph
dashboard.html # Interactive dashboard
intermediate/
batch-1.json ... batch-N.json
assembled-graph.json # After merge
architecture.json # Layer mapping
# Course Mode Output
kurs/
index_dev_en.html # L0 Developer EN
l1/
skill-architecture_dev_en.html
Understand Mode: The Knowledge Graph is saved as a JSON file. During processing, intermediate files (batch results, architecture data, tour) are created and cleaned up after the final save.
Course Mode: HTML files follow a clear naming convention: [topic]_[audience]_[language].html. Level 0 sits in the root directory, deeper levels in subfolders (l1/, l2/, l3/).
The Knowledge GraphA JSON data structure with nodes (files, functions, classes ...), edges (imports, calls, contains ...), layers (Frontend, Backend, DB ...), and a guided-tour (ordered learning path). itself contains four main sections: nodes (16 types), edges (29 types), layers (3-10 architecture layers), and guided_tour (ordered learning path through key nodes).