scorm-41cf67 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited scorm-41cf67 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
@studiolxd/scorm is a headless SCORM 1.2/2004 runtime. A framework-agnostic core (createScormSession) plus thin adapters. Built-in mock mode runs without an LMS.
import { createScormSession } from '@studiolxd/scorm'import { ScormProvider, useScorm, useScormSession } from '@studiolxd/scorm/react'import { useScorm } from '@studiolxd/scorm/vue'import { provideScorm, SCORM } from '@studiolxd/scorm/angular'import { createScormStore } from '@studiolxd/scorm/svelte'import '@studiolxd/scorm/wc' then <scorm-session><script>: global window.ScormResult<T, ScormError>. Session lifecycle methods return undefined when no SCORM API was found (noLmsBehavior: 'error').
initialize() → interact → commit() → terminate(). Nevercall data methods before initialize().
createScormSession('2004', { noLmsBehavior: 'mock' }).(or remount the React provider with a changed key) to start over.
import { createScormSession } from '@studiolxd/scorm';
const session = createScormSession('auto', { noLmsBehavior: 'mock' });
session.initialize();
const name = session.api?.getLearnerName();
if (name?.ok) console.log(name.value);
session.api?.setScore({ raw: 80, min: 0, max: 100 }); // 1.2: raw/min/max must be 0–100
session.api?.setComplete();
session.commit();
session.terminate();import { autoTerminate, autoCommit } from '@studiolxd/scorm';
const stopTerm = autoTerminate(session); // init now; commit+terminate on unload/dispose
const stopCommit = autoCommit(session, 30_000); // flush every 30s
// later: stopTerm(); stopCommit();React: useScormAutoTerminate() and useScormAutoCommit(ms) do this for you.
getInteraction() errors (code 404) in 1.2;only SCORM 2004 can read them back.
raw/min/max must be 0–100 (error 405 otherwise). 2004 scaledmust be -1..1 (error 407).
setProgressMeasure is a no-op in SCORM 1.2.setSessionTime(ms) takes milliseconds; it formats per version internally.recordInteraction(index, record) — index is the FIRST argument.addLearnerComment(comment, location?, timestamp?) — location before timestamp./wc on the client only.code, errorString, operation, path, diagnostic, version, apiFound, initialized.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.