CtrlK
BlogDocsLog inGet started
Tessl Logo

reddit-api

Reddit API with PRAW (Python) and Snoowrap (Node.js)

35

Quality

32%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/reddit-api/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Discovery

22%

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

This description is essentially just a title rather than a functional description. It names the technology stack (Reddit API, PRAW, Snoowrap) but fails to describe what actions the skill performs or when Claude should select it. It needs substantial expansion to be useful for skill selection among many options.

Suggestions

Add specific concrete actions the skill enables, e.g., 'Fetch posts and comments from subreddits, submit posts, manage Reddit accounts, search Reddit content, analyze upvotes and engagement metrics.'

Add an explicit 'Use when...' clause with natural trigger terms, e.g., 'Use when the user asks about Reddit, subreddits, Reddit posts, Reddit bots, scraping Reddit, or interacting with the Reddit API.'

Include common user-facing terms like 'subreddit', 'Reddit bot', 'Reddit scraping', 'posts', 'comments' to improve trigger term coverage.

DimensionReasoningScore

Specificity

The description only names the domain (Reddit API) and the libraries (PRAW, Snoowrap) but lists no concrete actions like 'fetch posts', 'submit comments', 'scrape subreddits', etc.

1 / 3

Completeness

The description barely answers 'what does this do' (just names the API/libraries) and completely lacks any 'when should Claude use it' guidance. There is no 'Use when...' clause or equivalent.

1 / 3

Trigger Term Quality

It includes some relevant keywords like 'Reddit', 'PRAW', 'Snoowrap', 'Python', and 'Node.js' that users might mention, but misses common natural terms like 'subreddit', 'posts', 'comments', 'upvotes', 'scrape Reddit', etc.

2 / 3

Distinctiveness Conflict Risk

The mention of Reddit API and specific libraries (PRAW, Snoowrap) provides some distinctiveness, but without concrete actions it could overlap with general Python/Node.js API skills or web scraping skills.

2 / 3

Total

6

/

12

Passed

Implementation

42%

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

This skill is comprehensive and highly actionable with excellent executable code examples across multiple languages and approaches. However, it is far too verbose for a SKILL.md — it reads more like a complete tutorial/reference guide than a concise skill file. The monolithic structure with no progressive disclosure and the inclusion of content Claude could easily derive (scopes tables, project structure, basic Pydantic models) significantly reduce its effectiveness as a context-window-efficient skill.

Suggestions

Split into a concise SKILL.md overview (setup + PRAW basics + anti-patterns) with separate files for Snoowrap (SNOOWRAP.md), direct API usage (DIRECT_API.md), OAuth2 web flow (OAUTH2.md), and models (MODELS.md).

Remove the scopes table, project structure, and Pydantic models from the main file — these are reference material Claude can derive or that belong in supplementary files.

Add explicit validation checkpoints: verify authentication succeeded before proceeding, show error handling for 429/403 responses inline rather than just listing them as anti-patterns.

Consolidate to one primary language (Python/PRAW) in the main skill file and reference the TypeScript/Snoowrap alternative in a separate file to reduce token usage.

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~400+ lines, covering Python PRAW, Snoowrap, direct API for both Python and TypeScript, OAuth2 web flow, Pydantic models, project structure, and scopes tables. Much of this is reference material Claude already knows or could derive. The scopes table, project structure suggestion, and Pydantic models are padding that don't add unique instructional value.

1 / 3

Actionability

The code examples are concrete, executable, and copy-paste ready across multiple languages and approaches. Authentication setup, common operations, streaming, posting, and direct API usage all have complete, runnable code blocks with realistic patterns.

3 / 3

Workflow Clarity

The setup steps (create app → env vars → authenticate → use) are sequenced but lack validation checkpoints. There's no explicit verification step after authentication beyond a print statement, no error handling workflow for rate limits or failed auth, and the anti-patterns section mentions error handling but doesn't show how to implement it.

2 / 3

Progressive Disclosure

Everything is crammed into a single monolithic file with no references to supporting files. The direct API implementations, OAuth2 web flow, Pydantic models, and TypeScript examples could all be split into separate reference files. For a skill this large, the lack of any content splitting is a significant organizational failure.

1 / 3

Total

7

/

12

Passed

Validation

81%

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

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (592 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

Repository
alinaqi/claude-bootstrap
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.