CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

affinda

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

Quality

65%

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/affinda/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, highly actionable integration guide with concrete commands, explicit connection-state checkpoints, and good error-recovery branching. Its weaknesses are a dangling 'Step 2' cross-reference, an actions table whose descriptions are all empty, and light background padding. Tightening the table and fixing the step labels would raise conciseness and workflow clarity.

Suggestions

Fix the broken step cross-references: the text says 'skip to Step 2' and labels a section '1b', but no Step 1/Step 2 numbering exists — either number the workflow steps explicitly or reword to section names.

Trim or enrich the popular-actions table: 20 rows whose description column is uniformly 'No description' add token cost with almost no information — either source real descriptions, drop the Description column, or cut the table to the handful of actions users actually start with.

Cut the two-sentence Affinda background paragraph and the filler line 'Use action names and parameters as needed' — the essential domain context (resume/document data extraction) is better placed in the description, and the filler instructs nothing.

Add one end-to-end example that bridges a real action key from the table to a concrete `membrane action run` command with actual --input parameters.

DimensionReasoningScore

Conciseness

The body is mostly efficient, command-focused content, but there is measurable waste: two background sentences about what Affinda is and who uses it, the filler line 'Use action names and parameters as needed', and a 20-row actions table in which every single description cell reads 'No description' — twenty lines that convey only action names. This fits 'Mostly efficient but includes some unnecessary explanation or could be tightened'; it is not anchor 2 because there is no Concept-explaining padding, and not anchor 4 because the actions table alone is a sizable low-value block.

3 / 5

Actionability

Nearly every instruction is a copy-paste-ready command: npm install, membrane login (including the headless completion flow), connection ensure, wait-polling, action list/run with --input JSON, and the proxy request with a complete flags table. It stays at anchor 4 rather than 5 because the popular-actions table lists action keys while the run command takes an <actionId>, and no end-to-end example bridges a real action key to a working run command with concrete parameters.

4 / 5

Workflow Clarity

The install → authenticate → connect → poll → run sequence is clear and includes explicit state checkpoints with error recovery: READY / CLIENT_ACTION_REQUIRED (with clientAction sub-fields) / CONFIGURATION_ERROR each map to a concrete next step, and the user-action path loops back to polling. It misses anchor 5 because the doc instructs 'skip to Step 2' and numbers a section '1b' while no Step 1 or Step 2 labels exist anywhere — the sequence references are incoherent — and there is no validation guidance for destructive actions like delete-document.

4 / 5

Progressive Disclosure

This is a single-file skill (no references/, scripts/, or assets/ exist) with clear, well-ordered section headers covering setup through fallback, so all content is appropriately placed inline. It holds at anchor 4 rather than 5 because the 165-line body exceeds the simple-skill threshold and contains inline reference material (the 20-row actions table, the proxy flags table) that reads like auto-generated API reference content that would be better externalized or condensed.

4 / 5

Total

15

/

20

Passed

Description

48%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 an explicit 'Use when' trigger and a distinctive brand-name anchor, but the 'what' is vague buzzword-level phrasing that never mentions Affinda's actual domain (resume parsing, document/candidate data extraction). Both capability specificity and natural trigger vocabulary are underserved. A single sentence naming concrete operations and domain nouns would lift most dimensions.

Suggestions

Name Affinda's concrete capabilities in the description, e.g. 'Parse resumes and job applications, extract candidate data, and manage documents, workspaces, and collections in Affinda.'

Add natural trigger terms users would actually say — resumes, CVs, candidate profiles, resume parsing, document extraction — to the 'Use when' clause, e.g. 'Use when the user mentions Affinda, resume parsing, or wants to extract candidate data from documents.'

Replace the buzzword phrase 'Manage data, records, and automate workflows' with the specific Affinda objects being managed (documents, workspaces, collections, tags, webhooks).

DimensionReasoningScore

Specificity

The description names the domain ("Affinda integration") but the actions are purely generic — "Manage data, records, and automate workflows" — with no concrete capabilities like resume parsing, document extraction, or candidate data management. This matches the anchor 'Names the domain but actions are minimal or generic' and falls short of anchor 3, which requires 1-2 concrete actions.

2 / 5

Completeness

An explicit trigger clause is present ("Use when the user wants to interact with Affinda data"), but the 'what' is buzzword-vague — "Manage data, records, and automate workflows" says nothing about what Affinda actually does. It sits between anchor 3 (which expects a clear 'what') and anchor 4 (which expects a substantive 'what' alongside the 'when'); the vague 'what' keeps it at 3.

3 / 5

Trigger Term Quality

"Affinda" and "Affinda data" are relevant domain keywords that would reliably trigger on brand-name mentions, but the natural vocabulary users actually say — resumes, CVs, candidate profiles, document parsing, job applications — is entirely absent. This fits 'Some relevant keywords but missing common variations or synonyms'; it is above anchor 2 (a specific domain term exists) but below anchor 4 (coverage is thin).

3 / 5

Distinctiveness Conflict Risk

The distinctive brand name "Affinda" provides a clear niche trigger with minimal conflict risk when Affinda is mentioned. However, the generic phrases "Manage data, records, and automate workflows" create minor overlap risk with general data-management or automation skills — matching 'Mostly distinct; minor overlap risk with closely related skills', not anchor 5's clear niche with no overlap.

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