Reddit Ads API - campaigns, targeting, conversions, agentic optimization
38
37%
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-ads/SKILL.mdQuality
Discovery
32%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 identifies a clear domain (Reddit Ads API) but reads more like a comma-separated list of topics than a proper skill description. It lacks concrete action verbs, has no 'Use when...' clause, and doesn't provide enough detail for Claude to confidently select this skill over other advertising-related skills.
Suggestions
Add concrete action verbs describing what the skill does, e.g., 'Creates and manages Reddit ad campaigns, configures audience targeting, tracks conversion events, and optimizes ad performance.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks about Reddit advertising, Reddit Ads API, creating Reddit ad campaigns, or optimizing Reddit ad spend.'
Include more natural trigger terms and variations users might say, such as 'Reddit advertising', 'Reddit ad account', 'promoted posts', 'Reddit ROAS', or 'Reddit ad metrics'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Reddit Ads API) and lists some areas (campaigns, targeting, conversions, agentic optimization), but these are high-level categories rather than concrete actions. No verbs describing what the skill actually does (e.g., 'create campaigns', 'configure targeting rules', 'track conversions'). | 2 / 3 |
Completeness | Only partially addresses 'what' (listing topic areas without concrete actions) and completely lacks a 'when' clause or any explicit trigger guidance. The missing 'Use when...' clause would cap this at 2 per the rubric, but the 'what' is also weak, so it scores 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Reddit Ads', 'campaigns', 'targeting', 'conversions' that users might naturally say, but misses common variations like 'ad groups', 'Reddit advertising', 'ad spend', 'ROAS', 'Reddit marketing', or file/API-specific terms. | 2 / 3 |
Distinctiveness Conflict Risk | 'Reddit Ads API' is fairly distinctive and unlikely to conflict with generic advertising or other platform-specific ad skills. However, terms like 'campaigns', 'targeting', and 'conversions' are generic enough to potentially overlap with other ad platform skills (Google Ads, Facebook Ads, etc.). | 2 / 3 |
Total | 7 / 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 executable code throughout, but it is massively over-engineered for a SKILL.md file. The dual-language duplication (every example in both TypeScript and Python), inline full client implementations, and complete optimizer services make it extremely token-inefficient. The content would benefit enormously from splitting into separate reference files and choosing a single primary language, with the SKILL.md serving as a concise overview with pointers to detailed implementations.
Suggestions
Split into multiple files: move client implementations to `reddit-ads-client.ts` and `reddit_ads_client.py`, API reference tables to `API_REFERENCE.md`, optimizer services to `OPTIMIZER.md`, and keep SKILL.md as a concise overview with quick-start examples and navigation links.
Choose one primary language for examples in SKILL.md and reference the other language's implementation in a separate file, eliminating the pervasive dual-language duplication.
Remove content Claude already knows: OAuth2 flow mechanics, basic REST patterns, Docker/docker-compose boilerplate, and explanations of what API scopes are. Focus on Reddit-specific quirks and gotchas.
Add explicit validation checkpoints to the campaign creation workflow (e.g., verify campaign creation succeeded before creating ad groups) and add rollback/confirmation steps to the agentic optimizer before executing destructive actions like pausing ads.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~1500+ lines. Provides full client implementations in both Python and TypeScript (duplicated), full OAuth flows in both languages, complete API endpoint tables Claude could infer from docs, and massive agentic optimizer code in both languages. The dual-language duplication alone doubles the token cost with minimal added value. Concepts like OAuth2 flows, REST API patterns, and basic CRUD operations don't need this level of explanation for Claude. | 1 / 3 |
Actionability | The code examples are fully executable and copy-paste ready. Complete client implementations, OAuth flows, campaign creation examples, conversion tracking, and the full agentic optimizer service are all concrete and runnable with proper credentials. | 3 / 3 |
Workflow Clarity | The complete workflow example shows a clear campaign creation sequence (create campaign → create ad group → create ad), and the agentic optimizer has a clear cycle (fetch → analyze → execute → log). However, there are no explicit validation checkpoints — the campaign is created without verifying success before proceeding to ad group creation, and the optimizer executes changes without confirmation or rollback mechanisms for destructive operations like pausing ads or scaling budgets. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of content with no bundle files to offload detail into. The full client implementations, both language variants, complete optimizer services, multi-agent architecture, Docker deployment, and mock testing code are all inline. The API endpoint reference tables, auth flows, and optimizer code should each be in separate referenced files. There are no references to external files within the bundle. | 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 (1983 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.