CtrlK
BlogDocsLog inGet started
Tessl Logo

media-stack-builder

Assembles and configures the full homelab media stack including slskd, Navidrome/Subsonic, and beets.

56

Quality

70%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/media-stack-builder/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a compact, well-organized orchestrator overview that delegates cleanly to named companion skills, but it stays at the directive level: no executable commands or config examples, and the single "Verify" step lacks checkpoints or a feedback loop for what is a batch pipeline. It reads as a sketch of the stack rather than an executable runbook.

Suggestions

Expand the Verify step into concrete checkpoints with a feedback loop — e.g. confirm a test download lands in the slskd dir, confirm beets import succeeds (re-run on tag errors), then confirm the track appears in Navidrome before logging.

Add executable anchors for the key configuration points: a minimal beets config pointing at the slskd download dir, the Navidrome container's music-library volume mapping, and the reverse proxy/tunnel invocation.

Remove the duplicated companion-skills listing (it repeats the table's Skill column) and keep one canonical mapping of component to skill.

DimensionReasoningScore

Conciseness

The body is lean with no padding or explanations of known concepts, but the intro paragraph restates the frontmatter description and the "Companion Skills" list duplicates the Skill column of the "Stack Components" table — minor trimmable redundancy. Not 5 because of this duplication; not 3 because there is no verbose or unnecessary explanation.

4 / 5

Actionability

Steps delegate to named companion skills with a clear pipeline ("slskd downloads → beets imports → music library → Navidrome scans"), which is more than high-level hints. But there are no executable commands, config snippets, paths, ports, or volume details; "Set username, download directory, shared folders" states what to configure without how. Not 4 because nothing is copy-paste ready; not 2 because named-skill delegation with a specific sequence is concrete guidance.

3 / 5

Workflow Clarity

Eight clearly sequenced steps exist, but the only validation is the vague single line "Verify: Test download → organize → stream end-to-end flow" with no checkpoints, expected outcomes, or error-recovery feedback loop — matching anchor 3's "4. Test the output" example. Since beets import is a batch operation over the music library, the missing feedback loop holds this at 3. Not 4 because checkpoints are implicit rather than minor gaps.

3 / 5

Progressive Disclosure

At under 50 lines with no bundle files (references/ and scripts/ are empty), the content is well organized into a components table, numbered workflow, and one-level-deep reference URLs, so navigation is clear. Not 5 because of the minor organization gap of the duplicated companion-skills listing and the absence of any reference file to offload the configuration detail (beets config, reverse proxy setup) the steps depend on; not 3 because nothing that belongs in a separate file is inlined.

4 / 5

Total

14

/

20

Passed

Description

65%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is distinctive and tool-specific, giving it strong trigger quality and near-zero conflict risk, but it omits any "Use when..." trigger guidance, capping completeness, and its action coverage ("assembles and configures") is thinner than the body's actual scope. Adding an explicit trigger clause and natural synonyms like "Soulseek" and "music streaming" would lift it substantially.

Suggestions

Add an explicit trigger clause, e.g. "Use when setting up or wiring together a homelab music/media stack, or when the user mentions Soulseek, slskd, beets, Navidrome, or Subsonic."

Include natural synonyms and variations users actually say — "Soulseek", "music library", "music streaming server" — alongside the product names.

Broaden action coverage beyond "assembles and configures" to reflect the real scope: deploying containers, wiring the download→organize→stream pipeline, and exposing the server via reverse proxy.

DimensionReasoningScore

Specificity

"Assembles and configures the full homelab media stack including slskd, Navidrome/Subsonic, and beets" names the domain with two concrete actions and specific tools, but coverage is incomplete — the pipeline wiring, reverse proxy exposure, and streaming verification shown in the body are absent. Not 4 because only two verbs are given with broad gaps; not 2 because it goes beyond a generic domain name with named components.

3 / 5

Completeness

It clearly answers "what" ("Assembles and configures the full homelab media stack") but has no "when" — no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. Not 4 because the "when" is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Natural terms users would say are present ("slskd", "Navidrome", "Subsonic", "beets", "homelab media stack") with five distinct product names. Not 5 because common synonyms and variations like "Soulseek", "music library", or "music streaming" are missing; not 3 because keyword coverage is genuinely good, not partial.

4 / 5

Distinctiveness Conflict Risk

Naming exact products (slskd, Navidrome/Subsonic, beets) creates a clear niche with distinct triggers and minimal conflict risk — few other skills would plausibly collide with these specific tool names. It matches the anchor 5 example's pattern of concrete product-scoped triggers.

5 / 5

Total

15

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
pvnkmnk/AgenticSelfHostSkills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.