CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

slsk-mcp-client

Wraps the Slsk MCP server (MCPMarket) with safety rules, rate limits, and session logging for Soulseek access.

Quality

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/slsk-mcp-client/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 rules document that is honest about scope, dependencies, and failure modes without padding. Its weaknesses are operational: the actual MCP tool calls and log format are unspecified, the workflow sequence must be reconstructed from scattered rules, and several rules are stated two or three times across sections.

Suggestions

Add a numbered workflow (e.g. 1. invoke `soulseek-network-orienter` 2. search at ≤1/10s 3. get explicit user approval 4. queue download 5. verify transfer 6. log to `obsidian-music-journal`) so the sequence and checkpoints are explicit.

Specify the concrete MCP tool names (authenticate, search, queue, monitor) and the session-log entry format or file location so the guidance is executable rather than descriptive.

Merge the duplicated rules — consolidate Safety into Rules (credentials, orienter-first) and fold the MCP Action Layer config reference into Invocation — to eliminate repetition.

DimensionReasoningScore

Conciseness

The body is a lean bullet-style document with no concept explanations Claude already knows, but it repeats itself across sections — the credentials rule appears in Rules and Safety, the orienter-first rule in Rules, Safety, and Companion Skills, and the `mcp/slsk-mcp.json` reference in both Invocation and MCP Action Layer — matching anchor 4 ("efficient; minor instances... could be trimmed") rather than 5.

4 / 5

Actionability

Concrete numbers ("max 1 search per 10 seconds", "pause searches for 30 seconds"), exact config paths, and invocation strings are given, but the actual MCP tool names for authenticate/search/queue/monitor and the session-log format or location for `obsidian-music-journal` are never specified, leaving key execution details missing per anchor 3.

3 / 5

Workflow Clarity

The intended sequence (invoke orienter → rate-limited search → user approval → queue → log) exists only implicitly, scattered across Rules, Safety, and Inputs/Outputs sections; there is no explicitly ordered workflow and no verification step (e.g. confirm transfer completed) before logging, matching anchor 3 ("sequence present but checkpoints missing or implicit").

3 / 5

Progressive Disclosure

The ~55-line body is well-sectioned with no nested references, and the bundle directories are empty with no missing referenced files (the `mcp/slsk-mcp.json` pointer is runtime config, not bundle content). However, it sits just over the compact threshold and slightly duplicates pointers across sections, placing it between anchors 4 and 5 — closer to 4.

4 / 5

Total

14

/

20

Passed

Description

53%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 its domain precisely and avoids fluff, but it describes the skill's mechanism (wrapping, governance) rather than its capabilities, omits every action a user would want performed (search, download), and has no "Use when..." trigger guidance. It reads as a technical wrapper summary rather than a trigger-optimized skill description.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user wants to search or download music from Soulseek via the MCP server."

State the concrete capabilities instead of governance features, e.g. "Searches Soulseek, queues user-approved downloads, and logs each session" before mentioning safety rules.

Include natural trigger variations users would say — "Soulseek", "slsk", "download music", "find this release" — to improve trigger-term coverage.

DimensionReasoningScore

Specificity

The description names the domain precisely ("Slsk MCP server (MCPMarket)") and lists wrapper functions ("safety rules, rate limits, and session logging"), but never states the concrete user-facing actions like searching Soulseek or queueing downloads, matching anchor 3 rather than 4.

3 / 5

Completeness

A clear "what" is present ("Wraps the Slsk MCP server (MCPMarket) with safety rules, rate limits, and session logging for Soulseek access") but the "when" is entirely absent with no 'Use when...' clause or equivalent trigger guidance, which caps completeness at 3.

3 / 5

Trigger Term Quality

"Slsk", "MCPMarket", and "Soulseek" are relevant domain keywords, but the natural phrases users would actually say when needing this skill — "search Soulseek", "download music", "find this album" — are missing, matching anchor 3.

3 / 5

Distinctiveness Conflict Risk

The "Slsk MCP server (MCPMarket)" niche is distinct and specific, but the skill family includes a closely related alternative (`slskd-media-acquisition`) that also serves Soulseek acquisition, and the description lacks user-facing trigger terms that would disambiguate them — matching anchor 4 ("mostly distinct; minor overlap risk with closely related skills").

4 / 5

Total

13

/

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/slsk-mcp-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.