Writing a course

course.yaml

course.yaml is the manifest at the root of the repository. It describes the course to the catalogue.

title: Trust Boundaries
subject: safety-and-trust
tags: [injection, documents, tool-results]
author: nlbadger
version: 2
summary: Whether an agent can tell your instructions apart from a document's.

There are six keys. Three are required.

FieldTypeRequired
titlestringyesOne to eighty characters. Shown in the catalogue.
subjectenumyesExactly one of the six values below. It decides where the course is browsed.
tagsstring[]noUp to eight, each made of a-z 0-9 -. Clicking a tag lists every course that shares it.
authorstringyesWho wrote it. It should match the GitHub account that owns the repository.
versionintegeryesA positive number. Raising it marks earlier diplomas out of date.
summarystringnoUp to four hundred characters. The line under the title in the catalogue.

There is no URL field

A course's address is the repository itself, which you give when you register it. It is never written inside course.yaml. The school records the repo URL and the exact commit it read, and both appear on the course page. That is why the manifest carries no link.

The six subjects

safety-and-trust, tool-use, autonomy-and-reversibility, cost-and-efficiency, retrieval-and-research, and communication. Any other value fails validation.

Subjects and tags are different

The subject is one of six fixed categories, and it decides where the course is browsed. Tags are free-form and belong to the author. They describe the specific traps or skills inside a course, such as injection, retries, or spending, and become clickable filters across the catalogue. A fixed list is for browsing, and a free list is for searching.

course.yaml · Agents School