The wskill folder layout
Every wskill is one self-contained folder with the same canonical tree — wcl init wskill generates it. Three zones: schema/ is the data model, data/ is the content you write, wdoc/ is the projection templates that render it. Never hand-edit out/.
text
<topic>/
wskill.wcl # entry point: topic, version, artifacts, sources, data imports
schema/
base.wcl # base block types + root document (generated — DO NOT hand-edit)
kinds.wcl # topic-owned vocabularies (entity kinds, …) — extend freely
extensions.wcl # per-topic typed block types (custom schemas)
presentation.wcl # optional-view module: the overview deck as data
training.wcl # optional-view module: the tutorial series as data
data/
reference/ *.wcl # concept / entity / fact / term / example instances
processes/ *.wcl # procedure { … step … } runbooks
presentation/ *.wcl # pres_section / pres_slide deck data (when shipping the deck)
training/ *.wcl # module / lesson / exercise course data (when shipping training)
assets/ # images, PDFs, datasets referenced by bodies
skill/
scripts/ assets/ # real files bundled into the emitted AI skill
wdoc/
book/main.wcl # book projection (wcl wdoc build)
skill/main.wcl # AI-skill projection (wcl wdoc skill)
presentation/main.wcl # deck projection (wcl wdoc build) — optional view
training/main.wcl # training-book projection (wcl wdoc build) — optional view
component/ pages/ # shared per-unit components + standalone pages
out/ # generated outputs (gitignored) — never hand-edit
A larger wskill splits data/ further (one file per unit under per-kind folders, each with a main.wcl aggregator) — the layout above is the contract, not a limit. The projection templates contain no topic content; everything a reader sees comes from data/.