CtrlK
BlogDocsLog inGet started
Tessl Logo

ad-angle-miner

Research supported advertising promises from a specific buyer's context, current product facts, customer language and observed ads. Turn them into static, video or copy ideas; match video ideas to actual recipes and save a product-scoped angle bank for write-video-ad-script. Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.

64

Quality

81%

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

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 highly actionable, well-sequenced workflow document: every phase names its tools, endpoints, thresholds and output shapes, and risky steps carry explicit validation and fallback behavior. The main gaps are a dangling in-bundle reference ([[references::render-street-interview]]) and some duplicated evidence-caveat and street-ad policy text that belongs in the references it defers to.

Suggestions

Resolve or create references/render-street-interview.md — the body's street-ad section defers to it ("The selected [[references::render-street-interview]] guide and writer's files reference define the record") but no such file exists in the bundle.

Move the inline street-ad and podcast policy paragraphs (Phase 2.5, Video) into the street-interview reference, leaving a one-line pointer, to cut duplication with video-handoff.md and tighten the body.

Collapse the repeated "observations, not proof of performance" hedge (Summary, Core principle, 1A, Phase 3) into a single stated rule referenced where needed.

DimensionReasoningScore

Conciseness

The body is dense and telegraphic with essentially no explanation of concepts Claude already knows, and specifics like "commerce_info.bc_label_test_text" and "statistics.play_count" earn their tokens. It sits below anchor 5 because the hedge "observations, not proof of performance" is repeated across the Summary, Core principle, 1A and Phase 3, and the street-ad/podcast policy block largely restates material already in video-handoff.md — minor instances that could be trimmed.

4 / 5

Actionability

Fully executable instruction-only guidance: exact endpoints ("/v1/tiktok/video/comments", "/v1/facebook/adLibrary/search/ads"), tool names ("ads_template_read in query mode", "video_project_upsert"), numeric thresholds ("30+ days, or with 3+ variants", "under about 0.5, try a second phrasing"), the save path "video-scripts/<brand_id>/<product_id>/angle-bank.json", and complete output table schemas for all three output types. Specific examples cover the common cases.

5 / 5

Workflow Clarity

Phases 0 through 5 are clearly sequenced with explicit validation checkpoints and error-recovery loops: the paid-call gate ("before the first one, say roughly how many you'll run and ask one yes/no"), the stored-page-vs-found-page check in 1A, the retry on low similarity ("when the best similarity is under about 0.5, try a second phrasing"), reject-before-scoring ("Reject unsupported product promises and impossible angle–template pairs before scoring"), and the workspace-write fallback ("If workspace writes fail, retain the run copy and pass directly").

5 / 5

Progressive Disclosure

Good structure overall: two real one-level-deep references are used at the right moments ("Read [buyer case and supported product role](references/buyer-and-product-role.md)"; "read the video-handoff reference"), both of which exist in the bundle. It falls below anchor 5 because "[[references::render-street-interview]]" and "[[references::write-video-ad-script]]" point to files not present in this bundle's references directory, and the street-ad and podcast policy paragraphs are inlined where the (missing) reference should carry them.

4 / 5

Total

18

/

20

Passed

Description

66%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, domain-grounded description that clearly states multiple concrete actions and its place in a larger pipeline. Its main structural weakness is the absence of any 'Use when…' trigger guidance, which caps completeness, and the omission of the natural trigger phrases (angles, hooks, competitor ads) its own body documents.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks for ad ideas, ad angles, or ad copy for a brand, or wants to know what is working in competitors' ads."

Include the natural user phrases the body already lists as Trigger Phrases — "what video ads should I make", "ad angles", "hooks" — so the description matches how users actually ask.

Trim the two evidence-caveat sentences ("Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.") into one boundary sentence to free room for the trigger clause.

DimensionReasoningScore

Specificity

Quotes several concrete actions — "Research supported advertising promises", "Turn them into static, video or copy ideas", "match video ideas to actual recipes", "save a product-scoped angle bank" — with named sources ("current product facts, customer language and observed ads"). It falls short of the anchor-5 'comprehensive coverage' example because static and copy outputs get no parallel detail and the research actions behind each source remain implied.

4 / 5

Completeness

The 'what' is explicit and multi-part (research promises, produce three output types, match video ideas to recipes, persist an angle bank), but there is no "Use when…" clause or equivalent trigger guidance; "for write-video-ad-script" names a downstream consumer, not a use condition. Per the rubric guideline, a missing use-when clause caps completeness at 3 — not 4 because the when-dimension is entirely absent rather than just imprecise.

3 / 5

Trigger Term Quality

Good natural keyword coverage: "advertising promises", "static, video or copy ideas", "observed ads", "reviews". A few natural terms users actually say are missing — "ad angles", "hooks", "competitor ads" — phrases the skill's own body lists under Trigger Phrases, so it does not reach anchor 5.

4 / 5

Distinctiveness Conflict Risk

A clear niche (ad-promise research producing angle banks for a named downstream script writer) makes it mostly distinct from generic copywriting skills, and the explicit "save a product-scoped angle bank for write-video-ad-script" separates research from writing. Minor overlap risk remains with sibling ad-creation skills since no distinct trigger phrases are given, keeping it below anchor 5.

4 / 5

Total

15

/

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