CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cj-affiliate

CJ Affiliate integration. Manage data, records, and automate workflows. Use when the user wants to interact with CJ Affiliate 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/cj-affiliate/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.

A strong operational core: real CLI commands with flags, a state-machine for connection readiness with explicit follow-up actions, and a proxy escape hatch with a flag table. Weaknesses are localized: duplicated command presentation, a content-free domain-term list and 'Popular actions' heading, a boilerplate intro, and step labels ('Step 2', '1b') that reference a numbering scheme that doesn't exist. No destructive/batch operations are involved, so the validation cap does not apply.

Suggestions

Delete the 'CJ Affiliate Overview' bare bullet list and the duplicated action-list command under 'Popular actions' (or actually list popular actions there with example intents).

Fix the dangling step references: either label sections 'Step 1', 'Step 2', ... consistently or drop the 'Step 2' / '1b' references entirely.

Trim the intro paragraph that explains what CJ Affiliate is — Claude already knows this; keep only the official docs link.

DimensionReasoningScore

Conciseness

The operational core (commands, flags, state handling) is efficient, but there is real padding: an intro paragraph explaining what CJ Affiliate is, a 'CJ Affiliate Overview' section that is just a bare bullet list of domain terms (Advertiser, Link, Product...) with no explanations, and the same `action list` command shown twice under 'Searching for actions' and 'Popular actions'. This is 'mostly efficient but includes some unnecessary explanation', matching anchor 3 rather than anchor 4's 'minor instances'.

3 / 5

Actionability

Commands are concrete and executable: `membrane connection ensure "https://www.cj.com/" --json`, `npx @membranehq/cli connection get <id> --wait --json`, `membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json`, plus a flags table for proxy requests. Not anchor 5 because of minor gaps: no worked example with a real action id/input, the `<agentType>` login placeholder is unexplained, and the 'Popular actions' heading promises examples it never delivers.

4 / 5

Workflow Clarity

The sequence (install → login → connection ensure → poll state → resolve client actions → search actions → run → proxy fallback) is clear and state polling provides validation checkpoints (READY / CLIENT_ACTION_REQUIRED with follow-up polling, error states with an `error` field). Not anchor 5 because step labels are incoherent: 'skip to Step 2' and '#### 1b.' reference a numbering scheme ('Step 2', 'Step 1a') that is never labeled in the document.

4 / 5

Progressive Disclosure

The bundle is a single SKILL.md with no references/, scripts/, or assets/ directories, and the body is honestly self-contained: well-sectioned headers, one external pointer (official docs URL), no nested references. Content is appropriately inline for a ~157-line single-file integration guide. Not anchor 5 because organization gaps exist (the misplaced 'Popular actions' section, the dangling step labels), and sections like the proxy flag table or connection-state handling could sit in separate reference files to slim the main file.

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 names a distinct domain and includes an explicit 'Use when' clause, but its capability statement is pure boilerplate ('manage data, records, and automate workflows') that could describe almost any integration. Trigger coverage relies solely on the product name, with no domain-specific synonyms. It is serviceable but well below the strong examples' concreteness.

Suggestions

Replace 'Manage data, records, and automate workflows' with 2-4 concrete operations, e.g., 'Retrieve advertiser and product data, generate affiliate links, pull commission and performance reports'.

Expand trigger terms with natural synonyms users would say: commissions, advertisers, publishers, affiliate links, CJ reports.

Make the 'Use when' clause non-circular by naming specific scenarios, e.g., 'Use when the user wants to query CJ Affiliate advertisers, products, or commission reports'.

DimensionReasoningScore

Specificity

"CJ Affiliate integration" names the domain, but the only actions offered are the generic "Manage data, records, and automate workflows" — no concrete operations (e.g., pulling commission reports, generating affiliate links) are stated. This matches the anchor 'Names the domain but actions are minimal or generic' and falls below anchor 3, which requires 1-2 concrete actions.

2 / 5

Completeness

Both parts are present: a 'what' ("CJ Affiliate integration. Manage data, records, and automate workflows") and an explicit 'when' ("Use when the user wants to interact with CJ Affiliate data"). Not anchor 5 because the 'what' is vague and the 'when' is circular, restating the domain rather than giving concrete trigger phrases.

4 / 5

Trigger Term Quality

"CJ Affiliate" is a relevant, natural keyword, but the description misses common variations users would say such as commissions, advertisers, publishers, reports, or affiliate links. Some relevant keywords exist, but synonyms and variations are missing, matching anchor 3 rather than anchor 4's fuller keyword coverage.

3 / 5

Distinctiveness Conflict Risk

"CJ Affiliate" pins a clear niche with minimal conflict risk, but the generic middle sentence ("Manage data, records, and automate workflows") overlaps with any number of data-integration or automation skills. Mostly distinct with minor overlap risk, matching anchor 4 rather than anchor 5's fully distinct triggers.

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/cj-affiliate/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.