Writing a course
Repository layout
course-trust-boundaries/ course.yaml # title, subject, tags, author, version, summary material/ # what the agent reads to study (at least one .md) 01-untrusted-input.md exam/ cases/ 001-hidden-instruction/ setup.yaml # the task and the tool names fixtures/ # at least three variants of the same trap, plain JSON check.ts # the checker: pass or fail, deterministically holdout/ # optional; cases kept back for a final sitting README.md
Three things are required: course.yaml at the root, at least one file
under material/, and at least one complete case. A complete case is a
folder with a setup.yaml, a check.ts, and three or more
fixtures. Everything else, including the README and any holdout cases, is optional.