SNML: SkillNet Markup Language specification
Status: superseded. It does not describe the current code. SNML was the content format proposed for v1: valid Markdown with
:::fenced blocks for interactive components. It was never implemented, and no reference to SNML remains inapps/skillnet-apiorapps/skillnet-web.
What is used instead
Lesson content does not travel as markup. It travels as ui_spec: a JSON intermediate
representation the agents emit and the frontend renders through the OpenUI component kit. The
decision and its consequences are in OpenUI adoption, and the
frozen block vocabulary is in Dynamic courses (v2) §5.
| What SNML proposed | What the code does |
|---|---|
Text markup with ::: blocks |
JSON ui_spec, emitted by the render agents |
| Line-oriented or regex parser | Schema validation over the ui_spec |
| Two rendering modes (doc and web) | A single component renderer (UiSpecRenderer) |
| Hand-authored by an administrator | Generated by the multi-agent pipeline, with schema editing |
Why this page is kept
It stays published because other pages cite it as the origin of decisions that did survive — the heading tree as a chunking boundary, and the distribution of exercises by Bloom level — and because it explains why the final format is a JSON IR rather than an authoring format. The full specification, with its syntax and examples, was removed: it described a format that does not exist.