Install any skill in seconds. Free to start, no credit card required.
Get Started Free →perminder-klair/subwave-log-analysis
Analyse the SUB/WAVE radio station's unified event log (state/logs/events-*.jsonl) and give the operator a diagnostic report on how the station is behaving — Navidrome/ Subsonic API call patterns, the DJ picker's behaviour and music-library coverage, and runtime health anomalies.
Passed 10 of 17 test cases with the skill, and 3 of 17 without it.
and 14 more in the full report
13 fixed3 passed either way10 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/21/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
I want to run a quick diagnostic check on SUB/WAVE events from just the past 6 hours. What command flag filters the analysis window accordingly?
| Checked | Without skill | With skill |
|---|---|---|
| Recommends passing --since 6h to scripts/analyze_events.py. | Missed | Passed |
The instructions your model reads when the skill loads.
The SUB/WAVE controller writes a unified, append-only event log to
state/logs/events-YYYY-MM-DD.jsonl — one JSON object per line. It is the
station's flight recorder: every LLM call, every agent tool call, every
Navidrome/Subsonic API call, plus track plays and session boundaries. Events
made inside one DJ decision share a traceId, so a decision and the calls it
triggered read back as a single trace.
This skill turns that raw stream into a written diagnostic report for the operator, covering three lenses: Navidrome usage, picker/DJ quality, and health & anomalies. The job is to diagnose and recommend — describe what the logs show, then suggest concrete changes with reasoning.
A bundled script does the aggregation; your job is interpretation. Do not re-derive numbers by hand or eyeball the JSONL — run the script and reason about its output.
python3 scripts/analyze_events.py [--state-dir DIR] [--since 24h] [--day YYYY-MM-DD]
--state-dir — path to the SUB/WAVE state/ directory. Omit it and the
script auto-detects ./state or ../state, so from the subwave repo root it
usually needs no argument. Pass it explicitly if the repo is elsewhere.--since — narrow to a recent window: 6h, 24h, 3d, 1w. Use this when
the user asks about "today", "the last few hours", "this week". Omit it to
analyse everything on disk.--day — pin to a single day's file.The script prints a sectioned digest. Read all of it before writing anything.
If the script reports no events files: the unified log is written by the
controller, and it is a recent addition — it only exists once the controller
has been rebuilt with observability/events.js and has run. A controller
restart is not enough; its source is baked in at build time. Tell the
test cases passed, vs 3 / 17 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.