CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

bannerbear

Bannerbear integration. Manage data, records, and automate workflows. Use when the user wants to interact with Bannerbear data.

Quality

66%

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/bannerbear/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 body is a solid, executable integration guide: concrete CLI commands for every phase, explicit connection-state handling with recovery paths, and a useful action catalogue. Its weaknesses are moderate token waste (marketing intro, filler overview section) and broken step numbering ('1b' and references to a nonexistent 'Step 2') that make the overall process ordering slightly ambiguous.

Suggestions

Trim the marketing introduction and remove the vague 'Use action names and parameters as needed.' filler; a single sentence on what Bannerbear does is enough.

Fix the workflow numbering: label the connection steps consistently ('1a'/'1b' plus an actual 'Step 2') or replace the 'skip to Step 2' references with section names.

Add one worked example of running a real action (e.g., membrane action run create-image with a template id and modification JSON) to bridge the gap between the action table and the generic run command.

DimensionReasoningScore

Conciseness

The body is mostly efficient (commands, tables, short flag references), but contains several instances of padding: the marketing-style intro ('Developers and marketers use it to automate the creation of visual content for social media, ads, and more. It's useful for dynamically creating visuals at scale.'), a malformed nested bullet 'Overview' ending in the vague filler 'Use action names and parameters as needed.', and soft commentary like 'This is the fastest way to get a connection.' This fits anchor 3 ('mostly efficient but includes some unnecessary explanation') rather than 4, where such trims would be minor.

3 / 5

Actionability

Nearly everything is copy-paste executable: install command, login flow including the headless completion path, connection ensure/get with --wait polling, action search and run commands with --input JSON, and a full proxy flag table. It falls short of anchor 5 only because there is no worked example of running a real action with actual parameters (e.g., create-image with a template id and modifications) — commands use <actionId>/CONNECTION_ID placeholders and a generic '{"key": "value"}' input.

4 / 5

Workflow Clarity

The sequence (install → login → connection ensure → poll to READY → search actions → run) is clear, and the connection-state matrix (READY / BUILDING / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR) acts as explicit checkpoints with recovery guidance. It misses anchor 5 because the step numbering is broken: the text says 'skip to Step 2' and has a '#### 1b' heading, but no 'Step 1', '1a', or labeled 'Step 2' exists, leaving the overall process ordering partially implicit. No destructive or batch operations are involved, so no validation cap applies.

4 / 5

Progressive Disclosure

There are no bundle files (references/, scripts/, assets/ are absent) and none are referenced from the body, so nothing dangles. The ~160-line body is organized into clear, well-ordered sections with a popular-actions table and a proxy options table that are arguably reasonable to keep inline, fitting anchor 4 ('good structure; most content is appropriately placed; minor organization gaps'). It does not reach 5 because the 15-row action catalogue and proxy flag reference are bulk reference material that would sit more naturally in a separate one-level-deep file.

4 / 5

Total

15

/

20

Passed

Description

50%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 correctly names the target service and includes an explicit 'Use when...' trigger, but everything beyond the proper noun is generic. It neither lists Bannerbear's actual capabilities (image/video generation, templates, screenshots, animated GIFs) nor any natural-language trigger terms a user would say, which limits both usefulness and discoverability.

Suggestions

Replace 'Manage data, records, and automate workflows' with the actual capabilities: e.g., 'Generate images and videos from templates, capture screenshots, and create animated GIFs at scale via the Bannerbear API'.

Add natural trigger terms to the 'Use when' clause: 'Use when the user mentions Bannerbear, banners, social media visuals, image/video generation from templates, or needs to create visual content at scale'.

Ensure the 'when' clause describes user goals rather than restating the service name ('interact with Bannerbear data' is circular and does not describe when the skill is needed).

DimensionReasoningScore

Specificity

The description names the domain ("Bannerbear integration") but the only actions given — "Manage data, records, and automate workflows" — are generic and interchangeable with any app-integration skill; there is no mention of Bannerbear's concrete capabilities (generating images/videos from templates, screenshots, animated GIFs). This matches anchor 2 ('Names the domain but actions are minimal or generic'), not 3, because no concrete Bannerbear-specific action is listed.

2 / 5

Completeness

Both parts are explicitly present: a 'what' ("Manage data, records, and automate workflows") and an explicit trigger clause ("Use when the user wants to interact with Bannerbear data"), so it is not capped at 3. However the 'when' is circular ('interact with Bannerbear data') and the 'what' is vague, so it does not reach anchor 5's concrete trigger phrases and comprehensive action list.

4 / 5

Trigger Term Quality

The only relevant trigger keyword is the proper noun "Bannerbear"; "data", "records", and "workflows" are generic terms users would not use to find this skill. Natural phrases users would actually say — "banner", "social media visuals", "generate images", "video template", "screenshot" — are entirely missing, fitting anchor 2 rather than 3 ('some relevant keywords').

2 / 5

Distinctiveness Conflict Risk

The proper noun "Bannerbear" creates a clear niche with minimal conflict risk against other skills, matching anchor 4 ('mostly distinct; minor overlap risk') rather than 5, because the trailing "Manage data, records, and automate workflows" phrasing overlaps with every generic app-integration skill if the name were absent.

4 / 5

Total

12

/

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

membranedev/application-skills

Path

skills/bannerbear/SKILL.md

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.