CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

campay

CamPay integration. Manage data, records, and automate workflows. Use when the user wants to interact with CamPay 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/campay/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 delivers a solid, executable CLI workflow with genuinely useful auth and connection-state guidance, and its structure is reasonable for a single-file skill. Its main weaknesses are a broken step numbering scheme that references a nonexistent 'Step 2', duplicate action-discovery sections, an empty entity-list overview, and a docs link that wrongly points to Apple Pay rather than CamPay documentation.

Suggestions

Fix the workflow numbering: either add explicit 'Step 1', 'Step 2', ... headers matching the 'skip to Step 2' and '1b' references, or replace those references with links to the actual section names.

Merge the 'Popular actions' section into 'Searching for actions' (they currently repeat the same `action list --intent` command), and either populate it with real common CamPay actions or remove it.

Correct 'Official docs: https://developer.apple.com/apple-pay/' to CamPay's actual documentation, settle on one CLI invocation style (`membrane` vs `npx @membranehq/cli`), and replace the content-free CamPay Overview bullet list with one sentence on what each entity (Payment, Invoice, Account) is used for.

DimensionReasoningScore

Conciseness

The body is mostly efficient — commands dominate and explanations like "Membrane handles authentication and credentials refresh automatically" add real value — but there is padding that could be trimmed: the "CamPay Overview" bullet list ("Payment / Recipient / Invoice / Account") conveys almost nothing, the sentence "Those will be used to adjust tooling to be used best with your harness" is garbled filler, and "This is the fastest way to get a connection" adds little. Fits the anchor 'Mostly efficient but includes some unnecessary explanation or could be tightened'; below 4 due to the empty overview section and redundant 'Popular actions' section repeating the 'Searching for actions' command.

3 / 5

Actionability

Commands are concrete and copy-paste ready throughout: `npm install -g @membranehq/cli@latest`, `membrane connection ensure "https://www.campay.net/" --json`, `membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json`, plus a flag table for proxy requests. Fits 'Mostly executable guidance; concrete code or commands with minor gaps' — it falls short of 5 because no end-to-end example of an actual CamPay operation is shown (all examples use placeholders like QUERY/CONNECTION_ID), CLI invocation is inconsistently shown as `membrane` vs `npx @membranehq/cli`, and the docs link points to Apple Pay, not CamPay docs.

4 / 5

Workflow Clarity

The sequence (install → login → connection ensure → poll for READY → search actions → run) is present and the connection-state handling (READY / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR with re-poll after user action) is a genuine feedback loop, but the numbered flow is broken: the text says "skip to **Step 2**" and has a section "#### 1b. Wait for the connection to be ready" yet no 'Step 1' or 'Step 2' headings exist anywhere. Fits 'Steps listed but validation gaps; sequence present but checkpoints missing or implicit' — the step references point to nonexistent anchors, and there is no guidance on validating action output (e.g., inspecting `output` fields, handling errors from `action run`).

3 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/ directories), and the ~140-line body is organized with clear section headers (Install, Authentication, Connecting, Searching, Running, Proxy requests, Best practices), so all content sits appropriately in SKILL.md with no nested or buried references. Fits 'Good structure; most content is appropriately placed; minor organization gaps' — the gaps being the redundant 'Popular actions' section duplicating 'Searching for actions', the broken step numbering, and the proxy flag table that is acceptable inline but could live in a reference file if the skill grows. Below 5 because navigation between the duplicated discovery sections and the phantom 'Step 2' is confusing.

4 / 5

Total

14

/

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 has the right structure — named domain plus an explicit 'Use when...' trigger — but the capability statement is generic boilerplate that could apply to any data-connector skill, and the trigger vocabulary is limited to the product name. Users asking for payment processing, invoices, or campground bookings in natural language would not reliably surface it. Tightening the actions and trigger terms would lift it substantially.

Suggestions

Replace "Manage data, records, and automate workflows" with concrete CamPay capabilities, e.g. "Process payments, create and manage invoices, and manage account records via CamPay".

Broaden the trigger clause to include natural task phrases: "Use when the user mentions CamPay, wants to process payments, create invoices, or manage campground/RV park bookings".

Keep the description in third person and trim the generic 'automate workflows' filler, which adds no distinguishable information.

DimensionReasoningScore

Specificity

The description names the domain ("CamPay integration") but the actions are purely generic — "Manage data, records, and automate workflows" could describe any connector skill and names no concrete CamPay operation (payments, invoices, bookings, POS). This matches the anchor 'Names the domain but actions are minimal or generic' (like "Processes PDF files"); it is below score 3 because there are no 1-2 concrete, specific actions, and above score 1 because the domain is named.

2 / 5

Completeness

Both parts are explicitly present: 'what' — "CamPay integration. Manage data, records, and automate workflows" — and 'when' — "Use when the user wants to interact with CamPay data". This fits the anchor 'Has both what and when; when could be more explicit or specific'; it is above 3 (which requires 'when' missing or only weakly implied) because the 'Use when...' clause is explicit, and below 5 because the 'what' is vague boilerplate and the 'when' lacks concrete trigger phrases (payments, invoices, bookings).

4 / 5

Trigger Term Quality

The only natural trigger term is the product name itself, repeated in "interact with CamPay data". It has a relevant keyword users would say ("CamPay") but misses common variations and task-oriented phrases users would naturally use ("payments", "invoices", "campground bookings", "point of sale"), matching the anchor 'Some relevant keywords but missing common variations or synonyms'. Below 4 because coverage is a single product name with no payment-domain synonyms; above 2 because "CamPay" is a genuine, naturally-spoken trigger rather than generic filler.

3 / 5

Distinctiveness Conflict Risk

The clear niche — a specific product named in "CamPay integration" and "interact with CamPay data" — makes it unlikely to trigger the wrong skill, fitting 'Mostly distinct; minor overlap risk'. It is below 5 because the generic tail "Manage data, records, and automate workflows" is boilerplate shared by many app-connector skills and there are no payment-specific triggers to further distinguish it; it is above 3 because the product-name trigger is far more specific than 'Works with document files'.

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