Skill Graph Production Pipeline
Generated artifact. Do not edit manually.
Generated by:
scripts/build_compendia.pyRegenerate with:python3 scripts/build_compendia.py --compendium production-pipelines --web-and-texSource of truth:docs/production-pipelines/source/
Language / Sprache: English (EN) · Deutsch (DE) | PDF: English PDF · Deutsches PDF
Compendium: §1 Skill Graph · §2 Package Provisioning · §3 Subject Export Package · §4 MEM/FWU Roundtrip · §5 Exam Example · §6 Sek-I Math Exam
1. Skill Graph Production Pipeline
This chapter defines the general, repeatable, auditable blueprint for turning any authoritative or institutional curriculum source into a clean SkillLandscape JSON graph under curricula/<...>/json/<file>.json (or curricula/DE/Gymnasium/canonical/; for exam authoring, see 5).
1.1. Inputs and Steps 0–2: Extraction, Outline, and JSON Generation
Inputs comprise (1) a normalized plain-text source extract capturing topics, outcomes, prerequisites, grading scope, and source URL/locator, (2) a human-curated outline separating root, clusters, and measurable atomic goals, plus optional (3) sibling landscapes for consistent naming and ID patterns:
- Step 0 (Extract source): Normalize the official curriculum into clean plain text (no HTML) with an explicit URL/page reference.
- Step 1 (Structured outline): Create a root node, group phases/topic fields into clusters, and cut competencies into measurable atomic goals (1–3 tasks, phrased as "The learner can ..."). Include motivation anchors and phase-local autonomy clusters of ordinary exam character (
Übungen E-Phase,Übungen Q1–Q4, plus optionalÜbungen Prozesskompetenzen), keeping global Abitur/final-exam branches separate as an additional assessment layer. - Step 2 (Encode JSON):
- Stable IDs: Project-namespaced UUID v5 or deterministic mapping from
(landscapeId, shortKey)(shortKeyis optional, unique withinlandscapeId; repeating the same(goalId, shortKey)pair across locale files is valid, reusing oneshortKeyfor distinctgoalIds is forbidden). - Required fields: Top-level
landscapeId,title,description,locale,subject,goals; goal-levelid,title,description,weight,requires,contains,dimensionTags(at leastphase; preferarea,topicCode,demandLevel,processCompetencies,guidingIdeas; optionaltags,core,examples,sourceRef,resourceLinks). - Localization, assets & links: Multilingual landscapes keep separate meaning-aligned locale JSONs; co-located images use relative Markdown paths.
sourceRefholds canonical provenance, whileresourceLinksholds ordered learning links (broad overviews on root/clusters, goal-specific practice/visualization links on atomic nodes).
1.2. Steps 3–7: Relations, Reference Implementations, Validation, and Registration
- Step 3 (
containshierarchy): Form an acyclic DAG (cluster \(\to\) subgoals) with shallow, meaningful grouping. - Step 4 (
requiressequencing): Author atomic-to-atomic prerequisites without transitive redundancy (Graph Definition, Graph Validation Rules); inherited clusterrequiresremain a transition mechanism only. Every learner-facing atomic goal should lie on at least one teachable route from a motivation anchor to a phase-local autonomy goal. Two retained Hessen snapshots undercurricula/DE/Gymnasium/input/HE/upper-secondary/source-json/serve as practical authoring benchmarks:DE_HES_S_GYM_2_PHYSIK.de.json.snapshotandDE_HES_S_GYM_2_MATHEMATIK.de.json.snapshot(localÜbungen E-Phase/Q1–Q4plusÜbungen Prozesskompetenzen, cleanly separated from global Abitur containers; live runtime landscapes reside undercurricula/DE/Gymnasium/canonical/). - Step 5 (Validation & manual reviews):
cd app
npm run validate:graph
Complement structural checks with manual atomicity (Atomic Review) and prerequisite (Requires Review) passes.
- Step 6 (Register curriculum): Add root curricula to
curricula/curriculum_manifest.jsonor attach sub-curricula via parentcontains. - Step 7 (QA checklist): Clear titles/descriptions testable in 1–3 tasks, canonical atomic
requires, acycliccontains/requires, closed motivation-to-local-autonomy routes per phase, stable IDs, consistent metadata (phase,area,level,core,weight), and aligned localization.