CtrlK
BlogDocsLog inGet started
Tessl Logo

competitive-ads-extractor

Extract and analyze competitors' ads from ad libraries to understand messaging and creative approaches that resonate.

49

Quality

53%

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/competitive-ads-extractor/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

53%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 content is a tidy, well-organized catalogue stub rather than a functioning skill: it is concise and easy to scan, but provides almost no executable guidance, deferring everything to an upstream repository the agent cannot act on directly. Workflow and actionability are the weak points.

Suggestions

Replace "install the upstream bundle into your active agent's skills directory" with a concrete, copy-pasteable command (e.g., a git clone or file-copy step plus the exact target path).

Add at least a minimal in-bundle quick-start (one command or invocation example showing what the skill actually does once installed), so the entry is actionable without leaving the session.

Trim redundancy: drop the verbatim restatement of the description in 'What it does' and consolidate the three mentions of the upstream source into the Source section.

DimensionReasoningScore

Conciseness

The body is short and free of concept over-explanation, but carries minor redundancy: the 'What it does' section repeats the frontmatter description verbatim and the upstream provenance is stated three times (blockquote, Source section, and How to use). This fits 'efficient; minor instances that could be trimmed' rather than the perfectly lean anchor 5.

4 / 5

Actionability

The core instruction "install the upstream bundle into your active agent's skills directory" provides no concrete command, and the only executable line is `open https://github.com/...` for inspecting the README. This matches 'high-level hints but missing the specific steps to execute' rather than 3, which would require at least partially executable guidance for the install/invoke flow.

2 / 5

Workflow Clarity

A rough sequence exists (inspect upstream README → install bundle → invoke by name or trigger), but the steps are poorly defined: no install command, no path placement guidance, and no verification that the skill is discoverable. This is anchor 3 ('sequence present but checkpoints missing or implicit'), not 4.

3 / 5

Progressive Disclosure

The body is under 50 lines with clearly organized sections and one clearly signaled external reference (the upstream GitHub URL), and no bundle files exist to organize. It does not reach 5 because all substantive content is delegated to an external URL rather than a self-contained overview with one-level-deep reference files, making the skill itself unexecutable from this bundle.

4 / 5

Total

13

/

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 is concrete and appropriately concise, clearly stating what the skill does in a distinct niche. Its main weakness is the complete absence of 'when to use' guidance, which caps completeness, and thin natural-keyword coverage relative to how users actually request ad teardowns.

Suggestions

Add an explicit trigger clause, e.g., "Use when the user asks to analyze competitor advertising, pull ads from an ad library, or teardown competitor creative."

Broaden natural trigger terms to include variations users actually say, such as "Facebook Ad Library", "ad spy", "competitor ad analysis", and "ad creative research".

Specify 1-2 more concrete outputs (e.g., "...and summarize messaging angles, hooks, and creative formats") to raise specificity from 2 actions to several.

DimensionReasoningScore

Specificity

"Extract and analyze competitors' ads from ad libraries" names the domain plus two concrete actions, matching the '1-2 concrete actions, but not comprehensive' anchor. It does not list several specific actions (e.g., what the analysis produces or how), so it falls short of 4.

3 / 5

Completeness

The 'what' is clear (extract and analyze competitor ads from ad libraries) but there is no 'Use when...' clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. It is above 2 because the 'what' is concrete, not vague.

3 / 5

Trigger Term Quality

Relevant keywords are present ("competitors' ads", "ad libraries", "messaging", "creative") but common user variations are missing (e.g., "Facebook Ad Library", "ad spy", "competitor ad analysis"), fitting the 'some relevant keywords but missing common variations' anchor rather than 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

"competitors' ads", "ad libraries", and "messaging and creative approaches" establish a fairly distinct niche with minimal overlap risk versus generic marketing-analysis skills. It is not 5 because the phrasing could still overlap with broader ad-analysis or creative-research 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
nexu-io/open-design
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.