Choose between cmi5 and SCORM packaging and model a course using cmi5's Assignable Unit / block course structure
domain: aicc.github.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Understand that unlike a SCORM package, which bundles the actual content files with its manifest, a cmi5 package's cmi5.xml course structure file only describes and references Assignable Units (AUs) — the content itself can be hosted anywhere, not just on the LMS.
Model the course as nested block container elements holding one or more au (Assignable Unit) elements in cmi5.xml, rather than SCORM's flat organizations/items manifest tree.
Set a moveOn criterion (e.g. completed, passed, completedAndPassed) on each AU instead of relying on SCORM-style sequencing rules — cmi5 deliberately excludes sequencing/navigation rules from the course structure itself.
Package the cmi5.xml plus any local assets as a zip archive, using Zip64 packaging if the archive is large enough to exceed standard Zip32 limits.
At runtime, launch each AU with xAPI launch parameters (endpoint, auth token, registration, activityId) rather than the SCORM RTE JavaScript API — progress tracking flows through xAPI statements, not LMSSetValue/LMSCommit calls.
Known gotchas
A cmi5 package importing successfully doesn't guarantee its AUs will launch — if an AU references remote content that later moves or goes offline, the course structure still imports fine but the AU fails at launch time.
cmi5's xAPI-based tracking requires an LRS at runtime; a SCORM-only LMS without xAPI/LRS support can parse a cmi5.xml course structure but cannot actually run cmi5 content.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?