Prism: AI Course Authoring
Prism is LucentSkill's built-in AI assistant. It turns a structured admin brief into complete lesson modules, self-validates exercises, and synthesizes survey responses into skill gaps.
What it is
Prism powers every AI capability in LucentSkill. It generates structured course content from a plain-English brief, auto-generates survey questions, and turns raw survey responses into an enterprise skill-gap vector.
Prism never executes code, code blocks it produces are illustrative only, and it is constrained to workplace AI upskilling (strategy, engineering, productivity).
Use
- Course Authoring Studio: describe goals, target roles, and key concepts; Prism generates a full lesson with rich visuals (charts and diagrams, planned by a dedicated visual pass), tables, callouts, worked examples, inline knowledge-check questions, and exactly two graded exercises. Generation runs in the background: the course appears on the Courses page as Queued, then becomes a ready-to-review Draft once Prism finishes, so the admin is never blocked waiting.
- Source material: optionally upload a document (.txt, .md, .csv, .json, .pdf, or .docx) or paste a URL, and Prism grounds the lesson in its facts and terminology while still writing original prose.
- Section-level regeneration: from the course editor, refresh a single section's visual, rewrite the section, or generate its inline questions without touching the rest of the course.
- Survey questions: give a topic; Prism generates assessment questions.
- Synthesis: Prism reads survey responses and extracts concrete skill gaps, rated by urgency and mapped to a track.
Setup
Prism runs automatically when an admin uses any AI feature. It requires the platform AI key configured in the environment. No per-user setup is needed.
By default Prism uses the platform key and model. An org can instead bring its own OpenAI-compatible endpoint, see Bring Your Own Model.
Security
- All user input is guarded against prompt injection and off-topic requests before any model call (lib/guard.ts).
- User data is delimiter-isolated so it is treated as data, never as instructions.
- Model output is schema-validated (Zod) and sanitized (stored-XSS + PII scrub) before it is persisted or shown.
- Source-material URLs are SSRF-guarded: private, loopback, link-local, and cloud-metadata addresses are blocked (with a re-resolved DNS check before fetch), and fetches are size- and time-bounded.
- Uploaded documents are parsed in memory only (never executed) and truncated to a bounded size before any model call.
- Every failure path is a structured, non-throwing return, the UI degrades gracefully if the key is missing or the model misfires.