CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chartmogul

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

Quality

57%

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

Quality

Content

57%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-driven integration guide: real CLI invocations, connection state-machine handling, and a proxy escape hatch. Its weaknesses are a destructive/batch action set with no validation guidance, a broken step numbering ('Step 2' is never defined), and a monolithic single-file layout where the action catalog should be a separate reference.

Suggestions

Add validation/verification guidance for destructive and batch operations — e.g. confirm a customer's UUID via `get-customer` before `delete-customer`, and state that deletes are irreversible.

Fix the workflow numbering: the text says 'skip to Step 2' and has a '#### 1b' heading, but no Step 2 exists — label the search/run sections as the numbered steps.

Move the 20-row Popular actions table into a references file (e.g. references/actions.md) and keep a handful of the most common actions inline, and trim the marketing-style intro about what Chartmogul the company does.

DimensionReasoningScore

Conciseness

Mostly efficient command-first sections, but padded spots remain: 'Chartmogul is a subscription analytics platform. It helps SaaS businesses track and analyze key metrics...' explains the vendor's business rather than the task, the bare object-tree Overview ('Customers / Subscriptions / Invoices...') adds little, and editorial asides like 'This is the fastest way to get a connection' and 'This will burn less tokens' could be trimmed. Matches 'Mostly efficient but includes some unnecessary explanation or could be tightened'.

3 / 5

Actionability

Concrete, executable CLI commands throughout: install (`npm install -g @membranehq/cli@latest`), login including the headless completion flow, `membrane connection ensure`, polling with `--wait`, `action run` with a real `--input` JSON example, and a proxy flag table. Not a 5 because the search example uses an unresolved placeholder (`--intent "QUERY"`) with no filled-in real intent example, and there is no complete end-to-end run (search → run with actual parameters → read output) tying the pieces together.

4 / 5

Workflow Clarity

The install → login → connect → poll → search → run sequence is present with explicit state handling (READY, BUILDING, CLIENT_ACTION_REQUIRED, CONFIGURATION_ERROR) and poll-again guidance, which is good. However the body references 'skip to Step 2' and a '#### 1b' heading with no Step 2 ever labeled, and — decisive for the cap — destructive operations (delete-customer, delete-plan) and batch list operations ship with no validation or verification guidance, which per the rubric caps workflow_clarity at 3. It is not a 2 because the sequence and error-state recovery are substantially better defined than a rough outline.

3 / 5

Progressive Disclosure

There is no bundle at all (no references/, scripts/, or assets/), so everything lives inline in a ~160-line SKILL.md. Section headers and tables give it reasonable navigation, but content that belongs in a separate reference — the 20-row Popular actions table and the proxy flag options — is inlined, matching 'Some structure but could be better organized... content that should be separate is inline'. It is not a 2 because the structure is genuinely present and navigable, not a wall of text.

3 / 5

Total

13

/

20

Passed

Description

41%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 correctly names the target app and includes an explicit 'Use when' trigger, but the capability statement is generic boilerplate that never concretely says what can be done with Chartmogul data. Trigger coverage is limited to the app name with no domain synonyms (MRR, churn, subscription analytics, invoices, customers).

Suggestions

Replace 'Manage data, records, and automate workflows' with 3-4 concrete capabilities, e.g. 'List and update customers, subscriptions, invoices, and plans; query MRR and churn metrics'.

Broaden trigger terms to natural user phrasing: 'Use when the user mentions Chartmogul, subscription analytics, MRR, churn, or SaaS revenue metrics'.

Make the 'when' clause specific rather than circular — 'interact with Chartmogul data' restates the app name instead of describing user intent.

DimensionReasoningScore

Specificity

The description names the domain ('Chartmogul integration') but the actions are generic — 'Manage data, records, and automate workflows' could apply to almost any business app, matching the anchor 'Names the domain but actions are minimal or generic'. It is not a 3 because it never lists a single concrete Chartmogul capability (e.g. list customers, sync subscriptions, query MRR); it is not a 1 because the domain is explicitly named.

2 / 5

Completeness

A 'when' clause is present ('Use when the user wants to interact with Chartmogul data') but both halves are weak: the 'what' is vague ('Manage data, records, and automate workflows') and the 'when' is a near-tautology ('interact with Chartmogul data'). This sits between anchor 3 (clear what, weak when) and anchor 4 (both present, when could be more specific) — the when is explicit but circular and the what lacks concrete actions, so it falls noticeably below the anchor-4 midpoint.

3 / 5

Trigger Term Quality

The only substantive keyword is 'Chartmogul' itself; 'data' and 'records' are generic filler. Natural phrases a user would say — subscription analytics, MRR, churn, customers, invoices, plans — are all absent, matching 'One or two generic keywords; missing the natural phrases users say'. It is not a 3 because even common synonyms for the domain are missing, not just a few variations.

2 / 5

Distinctiveness Conflict Risk

The trigger is anchored to the distinct product name 'Chartmogul', so it is unlikely to fire for unrelated skills. It is not a 5 because the generic action phrasing ('Manage data, records, and automate workflows') is structurally identical to other app-integration skills, creating minor overlap risk among sibling integrations.

4 / 5

Total

11

/

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