playlist-builder — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited playlist-builder (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.
The judgment + curation layer for audio (design.md §5) — the ambience and music that set a scene's mood: a crackling tavern, a howling blizzard, a boss fight, a soundboard of one-shot effects. As with every authoring skill: you decide; the tool does.
whether it loops. That curation IS the job.
create-playlist builds the Playlist + one PlaylistSound per path(v14 sound field is path); update-playlist renames / re-modes / sets crossfade. Neither invents audio.
Read _shared/authoring-policy.md. The clarification for audio:
asset-driven, like scenes. Every track is an uploaded sound file referenced by its Data-relative path (upload-asset returns one; list-assets shows them). There is no "copy the book playlist" path.
soundPaths entry must point at a real uploadedfile. If the user has no audio for what they want, say so and offer to upload files — don't invent paths.
repeat?, fade? }`. Builds the stack with one track per path, in order.
mode, or set fade (crossfade). Does not add/remove tracks(rebuild with create for a different track set).
Data/ first; chain the returned paths into soundPaths.| Mode | Plays | Use it for |
|---|---|---|
sequential | one track after another, in order | a curated music set (exploration, a scripted scene) |
shuffle | one at a time, random order | a music pool (combat tracks, varied ambience) so it doesn't feel looped |
simultaneous | all tracks at once, layered | a soundscape — rain + wind + distant thunder, or tavern murmur + hearth + lute |
soundboard | nothing auto; each track triggered manually | one-shot SFX (door creak, sword clash, horn) |
disabled | nothing | a stack you're staging, not playing |
true for ambience/soundscapes that should loop forever; false for a **musicset** that advances and stops (or loops the set in shuffle/sequential).
volume for the whole list; there's no per-track mix yet). For a layered simultaneous soundscape where one element should sit lower, pick pre-balanced files or keep the mix simple.
2000) for smooth transitions between tracks; niceon sequential/shuffle music, usually unnecessary on a looping simultaneous bed.
simultaneous, repeat: true — alayered bed that loops. Or a single looping track in sequential.
shuffle (a pool so it varies) or sequential; repeat: true to loopthrough the fight; a fade for smooth changes.
sequential or shuffle set, repeat to taste.soundboard — a set of one-shot effects the GM fires by hand.A playlist set on a scene's playlist link auto-plays when the scene is ACTIVATED (not merely viewed). So: build the playlist here, then hand off to `scene-builder` (or update-scene) to set the scene's playlist to this one. Building the audio is this skill; wiring it onto a scene is the scene's job.
Build and wire playlists now. The playlist plays via scene activation; manually starting/stopping individual tracks, ducking, or live-mixing during a session is out of scope (a later, in-play phase).
upload-asset if there's none.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.