CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

campaignhq

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

Quality

72%

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

Quality

Content

72%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 content is highly actionable, with copy-paste-ready CLI commands covering install, auth, connection setup, action discovery/execution, and a proxy fallback. Its weaknesses are structural: a monolithic layout with an inlined bulk actions table, a workflow that references a nonexistent 'Step 2', and no validation guidance for destructive operations like delete-campaign or sending emails.

Suggestions

Move the 'Popular actions' table (and possibly the connection-state details) into a references/ file, keeping SKILL.md as a lean overview with clearly signaled links.

Fix the broken step numbering — replace 'skip to Step 2' and the orphaned '1b' heading with a coherent numbered sequence.

Add validation/confirmation guidance for destructive or batch operations (e.g., verify a campaign's status or confirm with the user before delete-campaign and send-transactional-email).

DimensionReasoningScore

Conciseness

The body is dominated by lean, executable commands and tables, with only minor over-explanation such as the opening paragraph describing what CampaignHQ is ("CampaignHQ is a software platform used by political campaigns...") and flourishes like "so you can focus on the integration logic rather than auth plumbing". This fits anchor 4 ('efficient; minor instances of over-explanation that could be trimmed') rather than anchor 5's 'every token earns its place'.

4 / 5

Actionability

Guidance is fully executable and copy-paste ready: concrete install ("npm install -g @membranehq/cli@latest"), auth ("membrane login --tenant --clientName=<agentType>"), connection ("membrane connection ensure \"https://campaignhq.co/\" --json"), action execution with JSON input ("membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}'"), and a flag table for proxy requests. Specific examples cover the common cases, matching anchor 5.

5 / 5

Workflow Clarity

The connection setup has a clear sequence with state-based checkpoints and a poll-again feedback loop ("poll again with membrane connection get <id> --json to check if the state moved to READY"), but the flow is broken by references to a nonexistent 'Step 2' ("If the returned connection has state: READY, skip to Step 2") and there is a '1b' heading with no '1a'. More importantly, destructive and send operations (delete-campaign, send-transactional-email) are listed with no validation or confirmation steps, which caps workflow clarity at 3 per the batch/destructive feedback-loop rule.

3 / 5

Progressive Disclosure

The document has good section structure but is a single monolithic file with a 20-row actions table inlined that functions as bulk API reference material ("## Popular actions" table) — content that belongs in a separate reference file per anchor 3 ('content that should be separate is inline'). It is not anchor 2 because sections are well-organized and commands are clearly presented, and not anchor 4 because there are no external reference files at all to offload detail.

3 / 5

Total

15

/

20

Passed

Description

61%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 uses third-person voice and includes an explicit 'Use when' clause tied to a distinct named platform, so it will trigger reliably for the right skill. However, the capability statement is generic — 'manage data, records, and automate workflows' could describe almost any integration — and it omits the concrete entities users would mention (donations, contacts, fundraising, volunteers).

Suggestions

Replace 'Manage data, records, and automate workflows' with concrete actions such as 'Manage contacts, mailing lists, donations, and email campaigns' to lift specificity and trigger-term quality.

Add natural user vocabulary to the trigger clause, e.g. 'Use when the user mentions CampaignHQ, campaign fundraising, donations, or volunteer outreach'.

Ensure the 'when' clause covers the full range of use cases (sending campaigns, tracking donations, managing lists) rather than the single generic phrase 'interact with CampaignHQ data'.

DimensionReasoningScore

Specificity

The description names the domain ("CampaignHQ integration") but its actions — "Manage data, records, and automate workflows" — are minimal and generic, with no concrete operations like managing donations, contacts, or campaigns. It matches the 'Names the domain but actions are minimal or generic' anchor rather than anchor 3, which requires 1-2 concrete actions.

2 / 5

Completeness

It answers both parts: what ("Manage data, records, and automate workflows") and an explicit when ("Use when the user wants to interact with CampaignHQ data"). Not anchor 5 because the 'what' is vague and the 'when' lacks concrete trigger phrases beyond CampaignHQ data; clearly above anchor 3, which requires a missing or weakly implied 'when'.

4 / 5

Trigger Term Quality

"CampaignHQ" is a strong, natural trigger term, but the remaining keywords ("data", "records", "workflows") are generic and miss common variations a user would actually say, such as donations, fundraising, contacts, volunteers, or mailing lists. This fits anchor 3 ('some relevant keywords but missing common variations or synonyms') better than anchor 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

"CampaignHQ" is a specific named platform and the trigger clause is tied to it, giving a clear niche with distinct triggers and minimal conflict risk with other skills. The generic 'data' phrasing is subsumed by the explicit CampaignHQ scoping, so the anchor-5 example is the closest match.

5 / 5

Total

14

/

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