Reddit API with PRAW (Python) and Snoowrap (Node.js)
35
32%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/reddit-api/SKILL.mdQuality
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 any concrete capabilities or provide trigger guidance for when Claude should select this skill. It would be very difficult for Claude to reliably choose this skill from a large pool based on this description alone.
Suggestions
Add specific concrete actions the skill enables, e.g., 'Fetch posts and comments from subreddits, submit posts, manage Reddit accounts, search Reddit content, and analyze upvotes/engagement.'
Add an explicit 'Use when...' clause with natural trigger terms, e.g., 'Use when the user asks about Reddit, subreddits, Reddit bots, scraping Reddit, PRAW, Snoowrap, or interacting with the Reddit API.'
Include common user-facing terms like 'subreddit', 'Reddit bot', 'Reddit scraping', 'posts', 'comments' to improve trigger term coverage.
| Dimension | Reasoning | Score |
|---|---|---|
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 | There is no 'Use when...' clause or equivalent trigger guidance, and the 'what' is extremely weak—it only names the API and libraries without explaining what the skill actually does. Both what and when are very weak. | 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', or 'scraping Reddit'. | 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 generic API or Python/Node.js 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 highly actionable with excellent, executable code examples across multiple languages and approaches, but it suffers significantly from verbosity and lack of progressive disclosure. It tries to be a comprehensive Reddit API reference rather than a focused skill, covering four different client approaches (PRAW, Snoowrap, raw Python, raw TypeScript) plus OAuth2 flow, models, and reference tables all in one file. The content would be much stronger if trimmed to one primary approach with advanced topics split into referenced files.
Suggestions
Split into a concise SKILL.md covering PRAW basics (the recommended approach) with references to separate files for Snoowrap, direct API usage, OAuth2 flow, and Pydantic models.
Remove the project structure section, scopes table, and quick reference endpoints table — these are standard reference material Claude can look up or infer.
Add explicit error handling examples and validation checkpoints (e.g., verify authentication before proceeding, handle 429 responses with retry logic) rather than just listing anti-patterns.
Consolidate to one language per section or clearly designate a primary approach, moving alternatives to referenced files to reduce the monolithic nature of the content.
| Dimension | Reasoning | Score |
|---|---|---|
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 project structure section, scopes table, and Pydantic models add significant bulk without being essential to the core skill. | 1 / 3 |
Actionability | The code examples are concrete, executable, and copy-paste ready across all sections — PRAW setup, Snoowrap setup, direct API clients, and OAuth2 flow. Specific commands for installation, authentication verification, and common operations are all provided with complete, runnable code. | 3 / 3 |
Workflow Clarity | The setup steps (create app → set env vars → authenticate) are clearly sequenced, but there are no validation checkpoints or error recovery steps. The anti-patterns section mentions error handling but doesn't show how to implement it. No feedback loops for common failure modes like expired tokens or rate limit hits. | 2 / 3 |
Progressive Disclosure | Everything is in a single monolithic file with no references to supporting files. The direct API implementations, OAuth2 web flow, Pydantic models, and scopes reference table should be split into separate files. The content is organized with headers but the sheer volume makes it a wall of text that would benefit greatly from progressive disclosure. | 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.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
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 | |
7e5f7a2
Table of Contents
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.