LXPack Full Product Roadmap¶
Doc sync: Phase names and version targets match PLAN.md, SPEC.md, and the repository README. See Developer docs for the release-phase table.
Vision Statement¶
LXPack is an AI-native learning experience application framework and packaging ecosystem.
It enables developers and learning experience designers to: - build web-native learning applications - generate courses with AI systems like Claude - package courses into LMS-compatible formats - deploy modern interactive learning experiences - replace the Storyline packaging/runtime workflow
LXPack treats courses as programmable learning applications rather than slide decks.
Strategic Positioning¶
What LXPack Is¶
- AI-native learning framework
- CLI-first learning runtime
- LMS packaging compiler
- SCORM/xAPI/cmi5 export platform
- web-native course runtime
- developer-friendly learning infrastructure
What LXPack Is NOT¶
- PowerPoint clone
- traditional slide authoring tool
- timeline animation editor
- WYSIWYG-first platform
Product Pillars¶
AI-Native Authoring¶
Goals: - deterministic manifests - schema-driven generation - reusable prompts - AI repair workflows - AI-generated interactions
Web-Native Runtime¶
Goals: - React/Vue/Web Component support - custom JavaScript interactions - simulations - WebGL/canvas support - multiplayer support
LMS Compatibility¶
Standards: - SCORM 1.2 (shipped) - SCORM 2004 (Phase 2) - xAPI (Phase 3 — shipped v0.3.1) - cmi5 (Phase 3 — shipped v0.3.1) - standalone HTML (shipped)
Developer Experience¶
Goals: - Git-friendly - CI/CD support - npm ecosystem integration - plugin system (later phases) - reusable components (Phase 2)
Architecture¶
Major Components¶
CLI¶
- scaffolding
- validation
- builds
- previews
- packaging
Runtime¶
- routing
- tracking
- branching (Phase 2)
- scoring
- LMS communication
Packaging Engine (@lxpack/scorm today)¶
- SCORM 1.2 generation (shipped)
- SCORM 2004 + sequencing (Phase 2)
- standalone HTML ZIP
- xAPI / cmi5 packaging (Phase 3)
Validation Engine (@lxpack/validators)¶
- schema validation
- path containment
- assessment packaging
- accessibility validation (Phase 3+)
Preview Environment¶
- local server (shipped)
- strict validation (shipped)
- hot reload (future)
- mobile preview (future)
- LMS simulation (preview:
localdefault; optional SCORM 1.2/2004 viapreview.scormMode)
Standards Support Roadmap¶
SCORM 1.2 (shipped — v0.1.x)¶
- completion tracking
- bookmarking (
lesson_location) - compact
suspend_data(4096-char limit) - MCQ scoring / passed-failed
- sanitized assessment embedding (no answer YAML in ZIPs)
SCORM 2004 (shipped — v0.2.0)¶
- multi-SCO packages with IMS Simple Sequencing subset in
imsmanifest - SCORM 2004 Run-Time API (
API_1484_11) and preview simulator - per-activity launch pages and shared runtime/components bundles
xAPI (shipped — v0.3.1)¶
- learner events via
XapiReporterand@lxpack/xapi - Tin Can
tincan.xmlexport (lxpack build --target xapi) - optional
tracking.xapiincourse.yaml
cmi5 (shipped — v0.3.1)¶
cmi5.xmlwith per-activity blocks (lxpack build --target cmi5)- cmi5 launch
fetchparam kept separate from LRSendpoint
H5P / QTI / LTI¶
Long-term interoperability — not scheduled for v0.2.
Tech Stack¶
| Layer | Technology |
|---|---|
| CLI | TypeScript |
| Runtime | TypeScript |
| Bundler | Vite |
| Validation | Zod |
| Packaging | JSZip |
| Preview Server | Fastify |
| Testing | Vitest (unit); Playwright (future e2e) |
Repository Structure (current)¶
packages/
cli/
api/
runtime/
validators/
scorm/
components/
tracking-schema/
xapi/
cmi5/
spa-bridge/ # Phase 0.6 (shipped)
conformance/ # Phase 0.6 (shipped)
lessonkit/ # Phase 0.6 (shipped, meta-package)
examples/
security-awareness/
branching-demo/
xapi-awareness/
cmi5-demo/
test/fixtures/
docs/
Course Structure¶
course/
course.yaml
lxpack.config.json
lessons/
interactions/
assets/
assessments/ # authoring only; not shipped in export ZIPs
components/ # optional widget overrides (v0.2.0)
theme/ # reserved; not wired in v0.2.x
.lxpack/ # build output
Manifest may include variables and flow for branching (v0.2.0).
Development Phases¶
Phase 1 — MVP (shipped — v0.1.x)¶
Latest release: v0.1.1
Features:
- project scaffolding (lxpack init)
- markdown lessons and HTML interactions
- local preview with strict validation
- SCORM 1.2 ZIP and standalone HTML export
- YAML MCQ assessments with embedded runtime config
- path containment and safe embedded JSON
- monorepo packages on npm: @lxpack/cli, @lxpack/runtime, @lxpack/validators, @lxpack/scorm
Phase 2 — Runtime expansion (shipped — v0.2.0)¶
Latest release in phase: v0.2.0
Features:
- SCORM 2004 — multi-SCO export with sequencing/navigation in the manifest
- Branching — declarative flow in course.yaml (conditions on variables, assessment results, interaction events)
- Variables — manifest defaults + runtime setVariable / getVariable persisted in suspend data
- Quiz engine — retakes, choice shuffle, feedback modes (immediate | end | never)
- Reusable components — @lxpack/components with built-in widgets and per-course overrides
- Example: examples/branching-demo
Not in Phase 2: xAPI, cmi5 (now Phase 3), hot reload, themes, plugins.
Phase 3 — Modern standards (shipped — v0.3.1)¶
Latest release in phase: v0.3.6
Features:
- xAPI — lxpack build --target xapi, @lxpack/xapi statement builders and Tin Can packaging
- cmi5 — lxpack build --target cmi5, @lxpack/cmi5 manifest generation
- Analytics hooks — AnalyticsReporter / XapiReporter in runtime (separate from SCORM LMS bridges)
- Simulation tracking — window.lxpack.track({ type: "simulation", simulation: { ... } }) emits xAPI interacted with extensions
- Examples: examples/xapi-awareness, examples/cmi5-demo
Deferred to v0.3.1+: automated WCAG validation in preview/build.
Phase 0.4 — LessonKit interoperability (shipped — v0.4.0)¶
This phase makes LXPack a first-class packaging and LMS export layer for LessonKit: preserve React authoring, provide stable library APIs for CI/tooling, and align tracking semantics across runtimes.
Shipped checklist: Historical LessonKit checklist. Next phase: Maintainer upgrade plan.
Shipped in v0.4.0¶
- SPA / React lesson type (
spa) —type: spa,path: <dir-with-index.html>; works across all export targets;window.parent.lxpackBridge.v1bridge API; exampleexamples/lessonkit-spa/ - Programmatic validate/build API —
@lxpack/apiwith typed results, injected assessments, explicitcourseDir - Interchange schema — optional
lessonkit.json/lxpack.import.jsonmerged at validate/build (CLI and API) - Shared tracking event catalog —
@lxpack/tracking-schema - Assessment build-time injection — pass
assessmentstobuildCoursewithout on-disk YAML - Docs and examples — LessonKit interoperability
Remaining for v0.7+¶
- Extensibility for custom lesson runtimes (plugin slot) — runtime registration hooks (v0.7+ ecosystem)
Phase 0.5 — LessonKit integration depth (shipped — v0.5.0)¶
Latest release in phase: v0.5.0
Thin packaging and interchange schema for LessonKit; see Phase 0.6 for bridge SDK, conformance, and meta-package.
Source of truth: Maintainer upgrade plan.
Shipped in v0.5.0¶
packageLessonkit()in@lxpack/api— materializecourse.yaml, copy SPA dirs with path containment, prefer in-memory assessments; no hand-built project tree required- Interchange schema owned by LXPack — versioned Zod schema for
lessonkit.json(format: lessonkit,version: 1);validateCourseaccepts interchange-only projects - CLI —
lxpack build --lessonkitwith--spa-lesson/--spa-dist - Docs — lessonkit interchange reference
Phase 0.6.4 — Flow and validation patch (shipped — v0.6.4)¶
Latest release in phase: v0.6.4
Shipped in v0.6.4¶
- Flow inference —
any/allrules withoutfromapply on all inferrable source activities - Runtime navigation — Next disabled at end of branching path; warn on unreachable flow
goto - Validation parity — component bundle check in preview and
--lessonkitvalidate/preview - API / CLI —
packageLessonkit()output anchor defaults toconfigDir;--spa-lessonrequires absolute paths
Phase 0.6.3 — Flow and navigation patch (shipped — v0.6.3)¶
Latest release in phase: v0.6.3
Shipped in v0.6.3¶
- Position-aware flow — optional
fromon flow rules;interaction.done/assessment.passedinfer source activity when omitted - Runtime navigation — sidebar and Prev/Next disabled state aligned with flow reachability
- CLI parity — lessonkit preview rejects invalid
lxpack.config.json; friendly errors for--spa-lesson,findCourseDir, and build failures - branching-demo — basic path skips advanced component via explicit
fromrules
Phase 0.6.2 — Node.js 18 support (shipped — v0.6.2)¶
Latest release in phase: v0.6.2
Shipped in v0.6.2¶
- Node.js 18 and 20 — all
@lxpack/*packages and the CLI support Node.js 18 and 20 (engines.nodeis>=18) - CI matrix — lint, build, typecheck, test, examples, conformance, and coverage run on Node 18 and 20
- Runtime navigation — clear stale lesson UI on fast navigation; delayed iframe
track()resolves html/spa lessons by interaction id - LessonKit/API parity —
packageLessonkit({ configDir })loadslxpack.config.json;init --forceclears interchange metadata - Validators — interchange files no longer warn as export payloads; markdown warns on unsafe URI schemes blocked at runtime
Phase 0.6.1 — Bugfix patch (shipped — v0.6.1)¶
Latest release in phase: v0.6.1
Shipped in v0.6.1¶
- Omit
lessonkit.json/lxpack.import.jsonfrom LMS export ZIPs - LessonKit CLI loads
lxpack.config.jsonbeside the interchange file - Assessment navigation race guard; shared export CSS with preview
- cmi5 POST fetch fix; xAPI Bearer auth and terminal flush retry
- SCORM bridge session guards; SCORM 2004 adapter post-terminate guards
lxpack init --forceclears stale root artifacts
Phase 0.6 — LessonKit bridge and conformance (shipped — v0.6.0)¶
Latest release in phase: v0.6.0
Shipped in v0.6.0¶
@lxpack/spa-bridge— typed child SDK, score normalization,createLxpackBridgeHost,completeCourseon v1 bridge- Telemetry map —
mapLessonkitTelemetryToLxpack/mapLessonkitTelemetryToBridgeActionin@lxpack/tracking-schema - Theme interchange —
runtime.themePresetpresets (lessonkit:default,lessonkit:brand) lxpack preview --lessonkit— preview from interchange + SPA dist- SCORM SPA recipes — scorm-spa-recipes;
inferScormSpaLayout(); interchange warnings for shared paths @lxpack/conformance— export-target matrix for shared CI@lxpack/lessonkit— meta-package; LessonKit & React hub- API stability — api-stability.md documents LessonKit 1.0.0 interoperability contracts
LessonKit 1.0.0 is the stable public API (github.com/eddiethedean/lessonkit). LXPack 0.6.4 is the supported packaging/runtime baseline (@lxpack/api 0.6.4+, Node 18+).
v0.6+ — LessonKit integration and platform¶
LessonKit integration (remaining)¶
- Deeper bridge v2 / capability negotiation (future)
lxpack previewhot-reload for Vite dev servers (future)
Phase 5 — AI tooling (v0.6+)¶
Features: - Claude integration - AI repair and accessibility remediation - AI-generated interactions
Phase 6 — Ecosystem (v0.6+)¶
Features: - plugin marketplace - component marketplace - hosted previews - custom lesson runtime plugin slot (deferred from Phase 0.4)
Phase 7 — Enterprise platform (v0.7+)¶
Features: - cloud deployment - analytics dashboards - hosted runtime - compliance tooling
npm Package Plan¶
| Package | Phase |
|---|---|
@lxpack/cli |
1 (shipped) |
@lxpack/runtime |
1 (shipped) |
@lxpack/validators |
1 (shipped) |
@lxpack/scorm |
1 (shipped); extended in 2 for SCORM 2004 |
@lxpack/components |
2 |
@lxpack/xapi |
3 |
@lxpack/cmi5 |
3 |
@lxpack/api |
0.4 (shipped) |
@lxpack/tracking-schema |
0.4 (shipped) |
@lxpack/spa-bridge |
0.6 (shipped) |
@lxpack/conformance |
0.6 (shipped) |
@lxpack/lessonkit |
0.6 (shipped) |
Distribution Strategy¶
Primary: npm (@lxpack/*). Secondary: GitHub Releases. CI: lint, build, typecheck, test; publish on tag v*.*.*.
Initial Target Users¶
- technical training teams
- cybersecurity trainers
- AI-native LXD teams
- instructional designers and LMS administrators
Long-Term Vision¶
LXPack becomes an open learning runtime and AI-native course compiler — the Vite/Next.js-style ecosystem for AI-generated learning experiences.