CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

subsonic-api-client

Integration guidance for using Subsonic/OpenSubsonic client libraries in netrunner and other projects.

Quality

66%

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/subsonic-api-client/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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.

A lean, project-specific skill with a concrete executable auth example and specific failure-mode guidance, notably the scan-timing workflow around error code 70. Its main weaknesses are the absence of a sequenced integration workflow and directive-only guidance (backoff, caching, scan polling) for the patterns most central to netrunner.

Suggestions

Present the core netrunner integration as a numbered workflow with explicit checkpoints, e.g. 1) configure .env, 2) call startScan after downloads, 3) poll getScanStatus, 4) only then query metadata, 5) handle error.code 70 by re-polling rather than failing.

Add small executable snippets for the scan loop (startScan + getScanStatus polling) and exponential backoff, since these are the skill's most distinctive guidance but currently have no code.

Trim tangential content: drop the Python/Go library entries and the per-agent Invocation section (or move them to a reference file) to tighten the token budget.

DimensionReasoningScore

Conciseness

The body is lean and does not explain concepts Claude already knows (no 'what is Subsonic' padding); every section carries project-specific information. Minor trimmable padding exists — the Python/Go library entries and the per-agent 'Invocation' section are tangential to the TypeScript-focused netrunner use case — keeping it below the 'every token earns its place' anchor of 5 but above 3, which requires unnecessary explanations.

4 / 5

Actionability

The TypeScript auth snippet is concrete and executable (env-var config, createSubsonicAPI, getArtists) and failure modes cite exact error codes ('error.code === 70'), matching 'mostly executable guidance with minor gaps'. Not a 5 because the most netrunner-specific guidance — startScan/getScanStatus polling, exponential backoff, metadata caching — is directive-only with no executable examples.

4 / 5

Workflow Clarity

The scan workflow embeds a real checkpoint ('Use startScan after new downloads; poll getScanStatus before querying new files'), but the overall integration flow is scattered across Auth Pattern, Key Patterns, and Failure Modes rather than presented as a sequenced workflow — the sequence is present but implicit, matching the 3 anchor. Not a 4 because there is no clear end-to-end sequence for the primary task (set up auth, query metadata, handle scan timing).

3 / 5

Progressive Disclosure

Sections are well-organized (Purpose, Libraries, Auth, Patterns, Inputs/Outputs, Safety, Failure Modes, References) and the References section is clearly signaled with one-level-deep external links; the body stands alone at ~80 lines. Not a 5 because the skill exceeds the under-50-line simple-skill bar and endpoint/error-code details would eventually belong in a reference file; not a 3 because no content that clearly belongs in a separate file is inlined.

4 / 5

Total

15

/

20

Passed

Description

48%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 names a specific, distinctive domain but reads like a category label rather than a capability statement: no concrete actions and no 'Use when' trigger guidance. Its niche focus keeps conflict risk low, but it would rarely be selected from a natural user request without the trigger terms happening to mention Subsonic.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when building or debugging apps that talk to a Subsonic/OpenSubsonic-compatible server (Navidrome, Airsonic), querying artists/albums, or triggering library scans.'

List 2-3 concrete capabilities instead of 'Integration guidance', e.g. 'Authenticate via API keys, query artist/album/track metadata, stream files, and trigger library scans using the subsonic-api TypeScript library.'

Include natural trigger synonyms users would say — 'Subsonic API', 'music server', 'Navidrome', 'OpenSubsonic client' — to improve both trigger term coverage and completeness.

DimensionReasoningScore

Specificity

The description names the domain ('Subsonic/OpenSubsonic client libraries in netrunner') but the only stated action is generic 'Integration guidance' — no concrete actions such as querying artists, triggering scans, or streaming tracks. It is above a 1 because the domain is explicitly named, but below a 3 because no concrete capabilities are listed.

2 / 5

Completeness

The 'what' is reasonably clear (guidance for integrating Subsonic client libraries), but there is no 'Use when...' clause or equivalent trigger guidance anywhere — the judging guidelines explicitly cap completeness at 3 in that case. Not a 2 because the 'what' is not vague, and not a 4 because no 'when' is present even weakly.

3 / 5

Trigger Term Quality

'Subsonic', 'OpenSubsonic', and 'netrunner' are relevant keywords users would say, but common natural variations are missing — 'Subsonic API', 'music server', 'Navidrome' (a major OpenSubsonic-compatible server), or file/URL-based triggers. Fits the anchor 'some relevant keywords but missing common variations or synonyms' rather than 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

'Subsonic/OpenSubsonic' is a clear niche with distinct triggers, unlikely to fire for unrelated skills. Minor overlap risk exists with the closely related companion skill 'subsonic-media-server', since nothing in the description distinguishes client-side integration from server-side operations — matching 'mostly distinct; minor overlap risk with closely related skills' rather than the 5 anchor's minimal conflict risk.

4 / 5

Total

12

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

pvnkmnk/AgenticSelfHostSkills

Path

skills/subsonic-api-client/SKILL.md

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.