CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

apiflash

ApiFlash integration. Manage Organizations, Pipelines, Projects, Users, Filters. Use when the user wants to interact with ApiFlash data.

Quality

71%

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/apiflash/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 delivers a practical, command-driven integration workflow with real validation checkpoints around connection state, which makes it genuinely actionable. Its weaknesses are editorial: broken step numbering (references to a nonexistent "Step 2"), padded Membrane boilerplate, and no worked example of the skill's core action (capture-screenshot), leaving the ApiFlash-specific content thin.

Suggestions

Fix the dangling step references: the text says "skip to **Step 2**" twice but no section is labeled Step 1 or Step 2 — either number the sections (1. Connect, 2. Search/Run actions) or reword to point at the actual section names.

Add a worked capture-screenshot example with concrete parameters (e.g. `membrane action run capture-screenshot --connectionId=... --input '{"url": "https://example.com", "width": 1280, "format": "png"}' --json`) and fill in the empty Description column of the "Popular actions" table.

Trim the boilerplate: drop restatements like the duplicated READY/skip-to-Step-2 instructions and tighten best-practice bullets ("Always prefer Membrane... burns less tokens") to one line each, moving detailed Membrane CLI usage into a shared reference if these skills share a template.

DimensionReasoningScore

Conciseness

The body is mostly efficient — install, login, connection, action, and proxy sections are dominated by concrete commands — but includes unnecessary explanation that could be tightened ("Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing", duplicated "skip to **Step 2**" instructions, and wordy best-practice bullets like "This will burn less tokens and make communication more secure"). Anchor 3 fits; anchor 4 would require only minor trimming, and this has several padded passages.

3 / 5

Actionability

Nearly all guidance is executable and copy-paste ready: "npm install -g @membranehq/cli@latest", "membrane connection ensure \"https://apiflash.com\" --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}' --json", plus a concrete proxy flag table. It falls short of anchor 5 because the "Popular actions" table has an empty Description column and there is no worked example of the core task — capturing a screenshot with its actual parameters (url, width, height, format).

4 / 5

Workflow Clarity

A clear sequence runs from CLI install through login, "membrane connection ensure", state-based branching with explicit checkpoints (READY / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR, with polling via "--wait" and re-polling after user action), to action search/run and a proxy fallback — genuine validation loops for the connection phase, and the skill is non-destructive so the anchor-3 cap for batch/destructive operations does not apply. It stays at anchor 4 rather than 5 because "skip to **Step 2**" is referenced twice with no section labeled Step 2 (or Step 1), and action-run failures have no error-handling guidance.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, and assets/ are all absent), so the skill is a single file with clear section headers and easy in-file navigation — well above anchor 3's disorganized-inline-content pattern. It does not reach anchor 5 or the under-50-line simple-skill exception because the body is ~140 lines and largely generic Membrane CLI boilerplate whose bulk could live in a shared reference file.

4 / 5

Total

15

/

20

Passed

Description

62%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 has the required structure — a stated 'what' plus an explicit 'Use when...' clause — and is anchored by the distinct ApiFlash brand name. However, it describes ApiFlash as a generic entity-management integration and omits the product's defining capability (website screenshot capture), weakening both specificity and natural trigger-term coverage.

Suggestions

Lead with the core capability using concrete verbs, e.g. "Capture full-page website screenshots from any URL via the ApiFlash API, check usage quota. Manage Organizations, Pipelines, Projects, Users, Filters." — this raises specificity from the generic 'Manage' to several specific actions.

Add the natural trigger terms users would actually say — screenshot, capture a website, website preview, thumbnail, URL to image — to the 'Use when...' clause, e.g. "Use when the user wants to take a website screenshot, generate a thumbnail, or interact with ApiFlash data."

Verify the entity list matches what the integration actually exposes; the body documents only capture-screenshot and get-quota actions, so the Organizations/Pipelines/Projects list may misrepresent coverage and cause the skill to trigger for the wrong requests.

DimensionReasoningScore

Specificity

"Manage Organizations, Pipelines, Projects, Users, Filters" names the domain and several capability areas but relies on a single generic verb, and it never states ApiFlash's core function (website screenshot capture). It fits anchor 3 (names domain and capability areas, not comprehensive) rather than 4, which requires several specific concrete actions.

3 / 5

Completeness

Both parts are explicit: what ("ApiFlash integration. Manage Organizations, Pipelines, Projects, Users, Filters.") and when ("Use when the user wants to interact with ApiFlash data"). The 'when' clause is circular and could be more specific, matching anchor 4 rather than 5, and it is above anchor 3 because the 'Use when...' trigger is explicitly present, not merely implied.

4 / 5

Trigger Term Quality

"ApiFlash" and "Use when the user wants to interact with ApiFlash data" give a relevant brand keyword, but the most natural user phrases — screenshot, capture, website preview, thumbnail — are entirely absent, and the listed entities are generic SaaS terms. Anchor 3 (some relevant keywords, missing common variations/synonyms) is the best fit; it exceeds anchor 2 because a specific brand term is present.

3 / 5

Distinctiveness Conflict Risk

The trigger "Use when the user wants to interact with ApiFlash data" is anchored to a distinct brand name, so it is mostly distinguishable from other skills. The generic nouns ("Organizations, Pipelines, Projects, Users, Filters") create minor overlap risk with other CRUD-style integration skills, keeping it below anchor 5.

4 / 5

Total

14

/

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