v0.14.0 — demonstration_plan
The tour that is also the end-to-end test.
demonstration_plan
Follows the CINO DEMO-AS-END-TO-END-TEST.md pattern, marked [proven]. A demonstration and an end-to-end test are the same artifact seen from two sides — and people actually run demonstrations.
Two modes. read_only changes nothing and is safe against the production organization these credentials reach. read_write also creates and deletes content — a course, a quiz, questions, a bank, an empty group — and never a learner, a publication or a credential. Every write step is paired with cleanup.
It returns the plan, not the result. The model calls the tools. Running them inside the tool would block a conversation behind one call and demonstrate nothing — and it would skip the thing no unit test reaches: whether the descriptions are good enough to use from a standing start.
Coverage is computed from the live registry, not maintained, so a tool added next block shows up as a hole. Both modes reach zero gaps across all 112 tools — exercised, excluded with a written reason, or out-of-scope for the mode. Thirty-two exclusions each say why: irreversible PII erasure, credential minting, anything that emails a real person, and get_purchase, which has no listing endpoint so a demo has no id to use.
Learner steps use named accounts only and every learner-facing listing carries a filter — list_vilt_registrations is pinned to one session, because unfiltered it returns hundreds of real names and email addresses.
Live run: 52 of 61 steps, 2 errors, both the scope pre-check refusing correctly and both now predicted up front. The first run predicted zero refusals and hit two, because it checked the capability profile and not the OAuth scopes; prediction now covers both and says which refused — a profile is an environment variable and a restart, a scope needs the credential re-issued.
Also in this release
The [0.13.0] changelog section, which never existed. That release bumped the version string and nothing else, so Blocks 14–17 shipped with no entry at all and Block 14's notes were stranded under [Unreleased]. Reconstructed from the shipped commits and marked as written after the fact rather than backdated silently.
Full changelog: https://github.com/CloudSecurityAlliance/csa-skilljar/blob/main/CHANGELOG.md