CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

better-proposals

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

Quality

62%

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

Quality

Content

56%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 CLI integration workflow is the strong core: installation, authentication (including headless), connection state handling, action discovery/execution, and proxy fallback are all concrete and executable. The skill is dragged down by a large contentless entity list that burns tokens without guidance, broken internal step references, and no use of reference files to move the entity/action catalogs out of the always-loaded body.

Suggestions

Delete or drastically trim the 50+ item entity bullet list (much of it — Log In, Password, Terms of Service, Cookie Policy, GDPR — is not API surface), and remove the filler line 'Use action names and parameters as needed'.

Fix the broken sequence labeling: the text references 'Step 2' and a section '1b' but no steps are numbered — label the workflow steps explicitly (1. Connect, 2. Discover actions, 3. Run).

Move the popular-actions table and any entity documentation into a references/ file (e.g. references/actions.md), keeping SKILL.md as a lean overview with a clearly signaled link, and add a worked example of running a create-* action with realistic input.

DimensionReasoningScore

Conciseness

The ~56-line entity bullet list (Proposal through Cookie Policy, including non-actionable items like 'Log In', 'Log Out', 'Password', 'Terms of Service', 'GDPR', 'Support') is pure padding that occupies about a quarter of the body, alongside filler such as 'Use action names and parameters as needed' and an explanation of what the SaaS is used for. This is noticeably below the 'mostly efficient' bar of anchor 3, matching anchor 2's 'several unnecessary explanations or padded sections', though the CLI workflow sections themselves are lean, keeping it above anchor 1.

2 / 5

Actionability

Concrete, executable commands throughout: 'npm install -g @membranehq/cli@latest', 'membrane connection ensure "https://betterproposals.io/" --json', 'membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json', plus a proxy flags table and a popular-actions table with real keys. Not anchor 5 because no fully worked end-to-end example with actual substituted values (e.g. a real create-proposal invocation with its input schema) is shown.

4 / 5

Workflow Clarity

The install → login → connection ensure → poll states → search actions → run sequence is clear, with state-aware checkpoints (READY / BUILDING / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR) and re-polling guidance forming a decent feedback loop. Below anchor 5 because the text says 'skip to **Step 2**' yet no step is ever labeled 'Step 2' (and a '1b' exists with no '1'), and create/send operations get no validation checkpoint for confirming parameters before execution.

4 / 5

Progressive Disclosure

No bundle files exist, and the ~210-line body inlines content that clearly belongs in separate reference files: the 50-item entity list and the 20-row popular-actions table. Section headers do organize the CLI workflow well, so this sits at anchor 3 ('content that should be separate is inline') rather than anchor 2's minimal-structure example, but it lacks the clear one-level-deep references of anchor 4.

3 / 5

Total

13

/

20

Passed

Description

52%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 is distinctive thanks to the named product, but it is hollow on capability detail: 'Manage data, records, and automate workflows' could describe almost any SaaS integration, and the trigger clause merely restates the app name. It reads closer to the rubric's bad examples than its good ones in terms of concrete action coverage.

Suggestions

Replace the generic 'Manage data, records, and automate workflows' with the skill's actual concrete capabilities, e.g. 'Create and send proposals, list quotes and templates, manage companies and clients in Better Proposals'.

Expand the trigger clause with natural user phrases and synonyms, e.g. 'Use when the user mentions Better Proposals, wants to create or send a proposal, check proposal status (opened/sent/signed/paid), or manage quotes and clients'.

Avoid the circular trigger 'interact with Better Proposals data'; instead name the specific tasks users ask for (drafting proposals, tracking signatures, pulling client records).

DimensionReasoningScore

Specificity

The description names the domain ('Better Proposals integration') but its actions are entirely generic: 'Manage data, records, and automate workflows' names no concrete capability such as creating or sending proposals, listing quotes, or managing companies. It never reaches the '1-2 concrete actions' bar of anchor 3, and is clearly above anchor 1 since a specific domain is named.

2 / 5

Completeness

Both a 'what' ('Manage data, records, and automate workflows') and a 'when' ('Use when the user wants to interact with Better Proposals data') are present, but the 'what' is vague and the 'when' is circular — it restates the app name rather than giving concrete trigger phrases. Below anchor 4, which expects a solid 'what' paired with a merely improvable 'when'; above anchor 3's 'when is missing or only weakly implied' since an explicit 'Use when...' clause exists.

3 / 5

Trigger Term Quality

'Better Proposals' is a natural term users would say, but it is the only real keyword; common variations and synonyms users would actually use (proposals, quotes, estimates, templates, sales documents) are missing. Not anchor 4 because keyword coverage is one term deep, not 'good' with only a few gaps.

3 / 5

Distinctiveness Conflict Risk

The description pivots on a niche SaaS product name ('Better Proposals'), which is a distinct trigger unlikely to collide with other skills. This matches the 'clear niche with distinct triggers; minimal conflict risk' anchor.

5 / 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/better-proposals/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.