CtrlK
BlogDocsLog inGet started
Tessl Logo

liferay

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

60

Quality

70%

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

Quality

Content

75%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 highly actionable with concrete, copy-paste CLI commands and a sensible connection/state workflow. Its weak spots are some boilerplate introductory prose and slightly loose step numbering rather than structural problems.

Suggestions

Trim the opening 'Liferay is a digital experience platform...' paragraph and the 'so you can focus on the integration logic rather than auth plumbing' aside to assume Claude's competence.

Fix the dangling step references: define an explicit 'Step 2' header (or renumber 1b/Step 2 consistently) so 'skip to Step 2' resolves.

For batch/destructive actions (e.g. 'membrane action run' that mutates records), add an explicit verify step such as re-querying the affected record to confirm the result.

DimensionReasoningScore

Conciseness

The body is mostly command-driven and efficient, but the opening paragraph ('Liferay is a digital experience platform used to build websites, portals, and intranets...') and phrases like 'so you can focus on the integration logic rather than auth plumbing' explain context Claude largely already has, matching 'mostly efficient but includes some unnecessary explanation.'

3 / 5

Actionability

Commands are fully executable and copy-paste ready — 'npm install -g @membranehq/cli@latest', 'membrane connection ensure "https://liferay.com" --json', 'membrane action run <actionId> --connectionId=... --json' — plus a flag table covering common proxy cases, matching the 5 anchor.

5 / 5

Workflow Clarity

There is a clear install → authenticate → connect → poll-until-ready → search → run sequence with state-based checkpoints (READY/BUILDING/CLIENT_ACTION_REQUIRED) and a poll-again feedback loop; minor gaps (a referenced 'Step 2' is never defined as a header) keep it just below a 5.

4 / 5

Progressive Disclosure

Content is well-organized into clearly signaled sections (Install, Authentication, Connecting, Searching, Running, Proxy, Best practices) with no nested or buried references and no bundle files to misplace; it sits just below a 5 only because the proxy flag table is inlined rather than deferred.

4 / 5

Total

16

/

20

Passed

Description

66%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 cleanly pairs a what-statement with an explicit Use-when trigger and is anchored to a distinctive platform name. Its main weakness is generic action language and thin keyword coverage.

Suggestions

Replace generic verbs ('Manage data, records, and automate workflows') with concrete Liferay actions such as 'create and moderate blog posts, wiki pages, message-board threads, documents, and workflow tasks'.

Expand the trigger clause to name the natural terms users say, e.g. 'Use when the user wants to manage Liferay content, users, organizations, sites, or workflow tasks.'

Add a few synonyms/variants (e.g. 'Liferay DXP', 'Liferay portal') to broaden natural-keyword coverage.

DimensionReasoningScore

Specificity

Quotes 'Manage data, records, and automate workflows' — names the Liferay domain plus 1-2 actions, but the actions (manage data, records, automate workflows) are generic rather than comprehensive; it does not reach the multi-specific-action level of a 4.

3 / 5

Completeness

Both 'what' ('Manage data, records, and automate workflows') and 'when' ('Use when the user wants to interact with Liferay data') are present; the 'when' is explicit but could be more specific (e.g. naming entities like blogs, documents, workflows), fitting the 4 anchor.

4 / 5

Trigger Term Quality

The trigger phrase 'Use when the user wants to interact with Liferay data' surfaces the natural keyword 'Liferay' but offers no synonyms, feature variations, or file extensions, matching 'some relevant keywords but missing common variations.'

3 / 5

Distinctiveness Conflict Risk

'Liferay integration' names a distinct enterprise platform with clear niche triggers, so it is unlikely to fire for unrelated skills — matching 'clear niche with distinct triggers; minimal conflict risk.'

5 / 5

Total

15

/

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.

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