CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

blink

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

Quality

69%

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

This is a solid, executable integration guide: commands are concrete and copy-paste ready, and the connection lifecycle is documented unusually well. The main weaknesses are broken step references ("Step 2", "1b"), no validation or error-recovery guidance around destructive actions, a filler overview section that never explains its own bullets, and a docs URL (developer.blinkforhome.com) that appears to belong to a different product than the app at joinblink.com.

Suggestions

Fix the workflow numbering: define an explicit numbered step list for connecting (1. ensure, 2. poll until READY, ...) so "skip to **Step 2**" resolves, and renumber or remove the orphaned "1b" heading.

Add validation and error-recovery guidance for destructive and batch actions — e.g. read back the resource (get-linked-account) before running delete-user-linked-account, check the response `output` for errors, and how to handle partial failures when sending feed events to many users.

Remove or make concrete the "Blink Overview" section (the Contact/Call/Message bullets and "Use action names and parameters as needed" give no actionable mapping), and verify the official docs URL — developer.blinkforhome.com appears to be Blink home-security cameras, not the joinblink.com DevOps product.

DimensionReasoningScore

Conciseness

The body is mostly lean and command-driven, but the "Blink Overview" bullet tree ("Contact", "Call", "Call History", "Message") plus "Use action names and parameters as needed" is filler, the `--json` flag is explained twice, and the opening paragraph carries marketing-style context Claude doesn't need. Fits anchor 4 (efficient with minor trimmable instances); not 5 because of that padding.

4 / 5

Actionability

Nearly everything is copy-paste-ready: `npm install -g @membranehq/cli@latest`, `membrane connection ensure "https://joinblink.com/" --json`, `membrane action run <actionId> --input '{"key": "value"}'`, and a full proxy flag table, plus a 15-row actions table with keys. Held at 4 rather than 5 because the Contact/Call/Message overview items never resolve to actual action names or parameters, and "skip to **Step 2**" points to a step that is never defined.

4 / 5

Workflow Clarity

The install → login → connection ensure → poll → search → run → proxy sequence is coherent and the connection state machine (READY/BUILDING/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR) is handled well, but step numbering is broken (references to "Step 2" and a "1b" heading with no 1a or numbered step list), and destructive actions (delete-user-linked-account, archive-feed-event) are run with no validation, verification, or error-recovery guidance — the rubric's cap for destructive/batch operations without validation applies. Not 4 because the checkpoints that do exist cover only the connection stage, and the sequence references are dangling.

3 / 5

Progressive Disclosure

There are no bundle files (references/, scripts/, assets/ are absent), and the body is well organized under clear headers with a sensible overview-to-detail flow; the 15-row popular-actions table is reasonable to keep inline and the external docs URL is an appropriate pointer. Scored 4 rather than 5 because the document exceeds the simple-skill threshold, the actions table and CLI flag reference are candidates for a separate reference file, and the disconnected "Blink Overview" section creates a minor organization gap.

4 / 5

Total

15

/

20

Passed

Description

57%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 short and names the app explicitly, and includes an explicit "Use when" clause, but its capability statement is generic and disconnected from what the skill actually supports. It would trigger reliably only when the user says "Blink", and fails to surface the skill's real capabilities (feed events, forms, linked accounts, users).

Suggestions

Replace "Manage data, records, and automate workflows" with the concrete actions the body already documents, e.g. "Send and dismiss feed events, manage user linked accounts, manage forms and submissions, and fetch users".

Add natural trigger terms users of the app would say: "on-call", "incident", "feed events", "forms", "linked accounts", and the app domain "joinblink.com".

Tighten the "when" clause to concrete triggers, e.g. "Use when the user wants to send or manage Blink feed events, forms, linked accounts, or users, or automate on-call workflows in Blink."

DimensionReasoningScore

Specificity

"Manage data, records, and automate workflows" names the Blink domain but the actions are generic abstractions; the concrete capabilities actually documented in the body (send/archive feed events, manage linked accounts, forms, users) are absent. It matches anchor 2 rather than 3 because none of the three listed actions is concrete like "extracts content".

2 / 5

Completeness

Both are present: a "what" ("Blink integration. Manage data, records, and automate workflows") and an explicit "when" clause ("Use when the user wants to interact with Blink data"). Not 5 because the "what" is vague and the "when" lacks concrete trigger phrases; not 3 because the when-clause is explicit rather than merely implied.

4 / 5

Trigger Term Quality

"Blink" is a strong, natural trigger term and "interact with Blink data" is a plausible user phrase, but "data", "records", and "workflows" are generic, and common variations a Blink user would actually say (feed events, on-call, incidents, forms, linked accounts, joinblink.com) are missing. Fits anchor 3 (some relevant keywords, missing variations/synonyms) better than the pure-generic anchor 2.

3 / 5

Distinctiveness Conflict Risk

"Blink integration" and "interact with Blink data" pin a clear named-app niche with minimal conflict risk. Not 5 because the generic "Manage data, records, and automate workflows" tail could overlap with other data-management or automation skills when the user doesn't mention Blink by name.

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

membranedev/application-skills

Path

skills/blink/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.