Help us improve
Share bugs, ideas, or general feedback.
From dj-music
This skill should be used when the user asks to deliver a set, export a set, finalize a set, do a rekordbox export, sync a set to YM, or generate a cheat sheet. Covers M3U8, Rekordbox XML, JSON guide, cheat sheet export and YM sync.
npx claudepluginhub evgenygurin/dj-music-plugin --plugin dj-musicHow this skill is triggered — by the user, by Claude, or both
Slash command
/dj-music:deliver-setThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide the user through exporting a completed DJ set via the v1 polymorphic dispatchers. See @docs/tool-catalog.md (**20 tools** = 14 core dispatchers + 6 UI Prefab + 27 resources + 6 prompts).
Applies 10 pre-set color/font themes or generates custom ones for slides, documents, reports, and HTML landing pages.
Share bugs, ideas, or general feedback.
Guide the user through exporting a completed DJ set via the v1 polymorphic dispatchers. See @docs/tool-catalog.md (20 tools = 14 core dispatchers + 6 UI Prefab + 27 resources + 6 prompts).
Review set quality first
local://sets/{id}/review — hard conflicts (score=0.0) surface hereui_set_view(set_id=<id>) — energy arc + transition badges + cheatsheetbuild-set — replacement / new version) before deliveryEnsure audio files on disk (L4)
entity_create(entity="audio_file", data={"track_ids": [...], "persistent": true})
(handler audio_file_download fetches MP3 from provider + registers DjLibraryItem + bumps features to L4 / structure)Use the deliver_set_workflow prompt
deliver_set_workflow(set_id=<id>, formats=["m3u8","json","cheatsheet"], sync_to_ym=false)app/prompts/; list via list_prompts MCP method.Inspect output resources
local://sets/{id}/cheatsheet?version=<v>local://sets/{id}/narrativelocal://sets/{id}/fullgenerated-sets/{sanitized_set_name}/ — numbered MP3 copies + format artifacts.Optional: Sync to Yandex Music
sync is locked by default. Unlock once per session:
unlock_namespace(namespace="sync", action="unlock")playlist_sync(playlist_id=<set.linked_playlist_id>, direction="push", source="yandex", dry_run=false)provider_write(provider="yandex", entity="playlist", operation="create", params={"name": "..."})
then add tracks: provider_write(provider="yandex", entity="playlist", operation="add_tracks", params={"kind": <kind>, "track_ids": [...], "revision": <rev>})
(provider:write also needs unlock)Verify output
generated-sets/ directory| Format | Content | Use Case |
|---|---|---|
| M3U8 | Standard + #EXTDJ-* tags (BPM, key, energy, cues, transitions) | DJ software, media players |
| Rekordbox XML | Full Rekordbox-compatible XML with cues, loops, beatgrid | Rekordbox DJ import |
| JSON Guide | Per-track / per-transition details + analytics | Programmatic access, tooling |
| Cheat Sheet | Human-readable text: BPM, key, transition type, score, warnings | Print for live DJ performance |
Valid values passed to the workflow prompt: m3u8, rekordbox, json, cheatsheet. Default if omitted: ["m3u8", "cheatsheet"].
dry_run=true on playlist_sync previews YM mutations without applying — use before pushaudio_file_download handler — no need for a separate analyze calldeliver_set_workflow — answer continue or abort