CtrlK
BlogDocsLog inGet started
Tessl Logo

competitor-signals

Extract leads from competitor product activity — Product Hunt commenters/upvoters, HN posts about competitors, case studies, testimonials, tech press, and switching signals. Detects people actively switching from competitors as highest-priority leads.

60

Quality

76%

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/lead-generation/packs/lead-gen-devtools/competitor-signals/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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.

A strongly actionable, well-structured skill whose commands, config examples, and search queries are copy-paste ready and whose heavy logic is properly delegated to the bundled script. Its weaknesses are repetition of the switching-signal priority messaging, a step-numbering gap (no Step 9), and missing validation/error-recovery checkpoints around the tool run.

Suggestions

Fix the step numbering — the workflow jumps from Step 8 to Step 10 with no Step 9 — and add validation checkpoints such as verifying the CSV was produced and non-empty, plus what to do when both the Product Hunt API and the Apify fallback fail.

Consolidate the switching-signal priority guidance into one section (the scoring table already conveys it) to remove four near-duplicate statements across Phase 3, 10a, Step 11, and the table.

Move the output-schema, cost-estimate, and lookback tables into a well-signaled reference file (e.g., references/output-schema.md) to keep SKILL.md a lean overview.

DimensionReasoningScore

Conciseness

The body is mostly directive with useful tables and exact queries, but includes unnecessary repetition — 'switching signals are highest priority / immediate outreach' appears in the tool description, section 10a, Step 11, and the scoring table, and case-study-company rationale is restated across Steps 4, 5, 10b, and 11. It is not a 4 because these repeats and strategic asides ('Someone who commented… 60 days ago is still a viable lead') could be meaningfully tightened.

3 / 5

Actionability

Guidance is fully executable: copy-paste-ready bash commands with real paths ('python3 ${CLAUDE_SKILL_DIR}/scripts/competitor_signals.py --config … --output …'), a complete config JSON block, an exact manual-signals JSON schema with a worked example, and literal search-query strings per source. The referenced script scripts/competitor_signals.py exists in the bundle, so the commands run as written.

5 / 5

Workflow Clarity

Phases and steps are clearly sequenced with user checkpoints ('Present all discovered pages to the user for review', Step 12's go-ahead), but the numbering skips Step 9 entirely (jumps from Step 8 to Step 10) and there are no validation or error-recovery checkpoints around the scraping or the tool run (e.g., what to do if the PH API and Apify both fail, or the CSV is empty). It is not a 4 because these gaps are more than minor.

3 / 5

Progressive Disclosure

Good structure: the SKILL.md body stays an overview, and the 26KB of tool logic is correctly deferred to the existing bundle file scripts/competitor_signals.py referenced via ${CLAUDE_SKILL_DIR}. It is not a 5 because supporting material like the output-schema table, cost estimates, and scoring rubric are inlined in the overview where well-signaled one-level reference files would ease navigation.

4 / 5

Total

15

/

20

Passed

Description

75%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.

A specific, well-scoped description that names its sources concretely and reads in third person, but it entirely lacks a 'Use when…' trigger clause, which both caps completeness and leaves some natural trigger phrasings ('alternatives to', 'who is using') unused. Adding an explicit when-to-use clause would resolve the main weakness.

Suggestions

Append an explicit trigger clause, e.g. 'Use when the user mentions competitors, Product Hunt launches, competitor case studies or press coverage, or asks who is using or switching from a competitor.'

Include the natural user phrasings already present in the body — 'alternatives to [competitor]', 'who is using [competitor]', G2/Capterra — to broaden trigger-term coverage.

State the deliverable (a scored CSV of leads with priority rankings) so the 'what' answers what the user gets, not just what is monitored.

DimensionReasoningScore

Specificity

The description enumerates concrete sources ('Product Hunt commenters/upvoters, HN posts about competitors, case studies, testimonials, tech press, and switching signals') plus a concrete detection action ('Detects people actively switching from competitors'), comprehensively covering the skill's collection scope in third-person voice. It is not a 4 because coverage of the signal sources matches the skill's full breadth with no material gaps.

5 / 5

Completeness

The 'what' is clear ('Extract leads from competitor product activity…'), but there is no 'Use when…' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 2 because the 'what' is specific and multi-faceted, not vague.

3 / 5

Trigger Term Quality

Good natural keywords users would say — 'Product Hunt', 'HN', 'case studies', 'testimonials', 'competitor', 'switching' — but common variations surfaced in the body ('alternatives to [competitor]', 'who is using', G2/Capterra) are absent. It is not a 5 because synonym coverage is incomplete, and not a 3 because the terms present are ones users naturally say rather than jargon.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche — mining a competitor's audience for leads — with distinct triggers (competitor PH/HN activity, case studies, testimonials, switching signals) that are unlikely to fire for unrelated skills. It is not a 4 because the competitor-scoped framing distinguishes it even from sibling lead-generation skills.

5 / 5

Total

17

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository
gooseworks-ai/goose-skills
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.