CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cashbuddy

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

Quality

63%

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

Quality

Content

61%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, command-heavy integration guide with an unusually well-handled connection state machine, but it is undermined by an incoherent step numbering scheme (a dangling 'Step 2' reference and a '1b' with no '1'), a content-free entity overview list, and inconsistent CLI invocation forms. Fixing the workflow references and tightening the padded sections would move this from adequate to strong.

Suggestions

Fix the workflow numbering: 'skip to Step 2' references a section that doesn't exist, and '1b. Wait for the connection' has no '1a' — either number the steps consistently (1a/1b/2...) or drop the numbers and use descriptive headers. This is the biggest workflow_clarity defect.

Delete or flesh out the 'Cashbuddy Overview' entity bullet list — five bare names with no description add tokens without guidance; either explain each entity's role or remove the section, and use the same space to list 2-3 example actions with real input/output.

Standardize CLI invocation ('membrane' vs 'npx @membranehq/cli@latest' appear interchangeably) and remove marketing filler like 'This will burn less tokens and make communication more secure' in favor of the concrete behavior it alludes to.

DimensionReasoningScore

Conciseness

The body is mostly command-driven and efficient, but contains padding: the 'Cashbuddy Overview' section is a bare bullet list of five entity names (Account, Transaction, Budget, Goal, User) with zero explanatory value, and phrases like 'so you can focus on the integration logic rather than auth plumbing' and 'This will burn less tokens and make communication more secure' are filler. This matches anchor 3 (mostly efficient but some unnecessary content that could be tightened); not 4 because the entity list and marketing-style asides are more than minor trimmable instances.

3 / 5

Actionability

Concrete, executable commands appear throughout: 'npm install -g @membranehq/cli@latest', 'membrane connection ensure "https://cashbuddy.ng/" --json', 'membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json', plus a flags table for proxy requests. This matches anchor 4 (mostly executable with minor gaps): the gaps are the dangling 'skip to Step 2' reference with no Step 2 defined and inconsistent invocation styles ('membrane' vs 'npx @membranehq/cli'). Not 5 because common-case examples (e.g. an actual action list/run for a transaction query) are absent and placeholders like CONNECTION_ID are never concretized.

4 / 5

Workflow Clarity

The install → login → connect → poll → act sequence is present and the connection flow has genuinely good checkpoints (state branches for READY / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR with poll-again instructions). However, 'If the returned connection has state: "READY", skip to Step 2' points to a Step 2 that does not exist, and section '1b. Wait for the connection' appears without a '1a' or '1', so the numbering is incoherent. This lands on anchor 3 (steps listed but with gaps and implicit checkpoints); not 4 because the broken step references are a real sequencing defect, and there is no validation guidance for action results.

3 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/ directories), and this single ~140-line SKILL.md is organized into clear sections (Install, Authentication, Connecting, Searching, Running, Proxy, Best practices) with an external link to official docs. Content is appropriately placed for a single-file skill of this size, matching anchor 4 (good structure, minor organization gaps such as the underdeveloped entity overview and the thin 'Popular actions' section). Not 5 because a few sections (proxy flag table, popular actions) lean toward reference material that could be split out if the skill grows.

4 / 5

Total

14

/

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' clause and a distinctive app-name trigger, but the capability statement is generic ('manage data, records, and automate workflows') and lacks the concrete personal-finance vocabulary (transactions, budgets, spending, goals) that would make it specific and trigger-rich. It reads closer to the rubric's bad 'Processes data' example than to the good examples in terms of action specificity.

Suggestions

Replace the vague 'Manage data, records, and automate workflows' with concrete capabilities drawn from the skill body, e.g. 'Query transactions, manage budgets and goals, and run Cashbuddy actions' — this would raise specificity from 2 toward 4-5.

Add natural user vocabulary to the 'Use when' clause: 'Use when the user mentions Cashbuddy, budgets, spending, transactions, or personal finance' — this would improve both trigger_term_quality and completeness.

State the mechanism briefly (e.g. 'via the Membrane CLI') so the 'what' answers how the integration is performed, not just that one exists.

DimensionReasoningScore

Specificity

"Cashbuddy integration. Manage data, records, and automate workflows" names the domain but the actions are generic — 'manage data' and 'automate workflows' could apply to almost any integration, with no concrete finance capabilities (transactions, budgets, goals) stated. It does not reach anchor 3 because 'manage data, records' are not concrete, finance-specific actions, and it is above anchor 1 because the domain is at least named.

2 / 5

Completeness

The 'when' is explicitly present ("Use when the user wants to interact with Cashbuddy data") but the 'what' is weak: "Manage data, records, and automate workflows" is nearly as vague as the bad example 'Processes data'. It sits between anchor 3 (clear what, weak when) and anchor 4 (both present, when could be more explicit) — the explicit 'when' clause keeps it from falling below 3, but the vague 'what' keeps it from reaching 4.

3 / 5

Trigger Term Quality

"Cashbuddy" is a strong, specific trigger keyword, but the description misses the natural phrases users would say — budgets, spending, transactions, expenses, personal finance. This matches anchor 3 (some relevant keywords but missing common variations or synonyms); not 4 because the finance-specific vocabulary is entirely absent, not merely a few terms short.

3 / 5

Distinctiveness Conflict Risk

The app name 'Cashbuddy' is a distinct trigger with minimal conflict risk against other skills, matching anchor 4 (mostly distinct; minor overlap risk). Not 5 because the generic tail 'Manage data, records, and automate workflows' could cause overlap with other data-management or automation skills if the user doesn't mention Cashbuddy by name.

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