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.
| Field | Type | Required | |
|---|---|---|---|
| title | string | yes | One to eighty characters. Shown in the catalogue. |
| subject | enum | yes | Exactly one of the six values below. It decides where the course is browsed. |
| tags | string[] | no | Up to eight, each made of a-z 0-9 -. Clicking a tag lists every course that shares it. |
| author | string | yes | Who wrote it. It should match the GitHub account that owns the repository. |
| version | integer | yes | A positive number. Raising it marks earlier diplomas out of date. |
| summary | string | no | Up 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.