CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

extensions

Creating, editing, and managing extensions — sandboxed Alpine.js mini-apps that run inside iframes. Use only when the host app explicitly enables extensions and the user asks for a one-off custom block or mini-app. Distinct from LLM "tools" (function calls) — see note below.

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%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.

An exceptionally actionable, well-structured skill body: every workflow is executable with explicit safety gates, feedback loops, and a clean two-file progressive-disclosure split. Its one weakness is token efficiency — a duplicated "What extensions are" section, an Alpine-basics directive table, and Guidelines that restate the Component-shape rules could be trimmed without losing information.

Suggestions

Delete the duplicate "What extensions are" section (lines ~197–202): it restates "Extensions are mini Alpine.js apps that run inside sandboxed iframes" and the extensionFetch/Tailwind facts already covered under "CRITICAL: What Extensions Are (and Are Not)" and the helper list.

Compress the Alpine.js directive table to just the non-obvious gotchas (e.g. "Always wrap x-if and x-for in a <template> tag") and move the full table to references/api.md — Claude already knows standard Alpine directives.

Deduplicate the Guidelines list against the "Component shape" section: the two Alpine.data() bullets restate the earlier rules nearly verbatim; a one-line pointer ("see Component shape above") would suffice.

DimensionReasoningScore

Conciseness

The body is mostly dense, non-obvious operational detail (helper contracts, edit operations, secrets policy), but includes unnecessary material: the "What extensions are" section ("Extensions are mini Alpine.js apps that run inside sandboxed iframes") restates the earlier "CRITICAL: What Extensions Are" section, the Alpine directive table teaches basics Claude already knows, and the Guidelines restate the Component-shape rules. It is not anchor 2 because the padding is localized rather than pervasive and most tokens carry information Claude could not infer.

3 / 5

Actionability

Guidance is fully executable throughout: the exact CLI ("pnpm action create-extension --name ... --content ..."), HTTP routes with JSON bodies, a complete runnable Alpine.data() component, field/operation tables, and copy-paste-ready edit payloads ("{\"id\":\"EXTENSION_ID\",\"operation\":\"edit\",\"payloadJson\":\"...\"}"). Specific examples cover the common create/edit/persist cases.

5 / 5

Workflow Clarity

Multi-step flows are clearly sequenced with checkpoints and feedback loops: the create flow ("1. Write the Alpine.js HTML 2. Call create-extension... 3. That's it"), the edit flow's error-recovery loop ("If a focused edit fails, inspect the current body and adjust its target; do not retry unchanged arguments"), safety gates on the destructive path ("choose operation: 'replace' only for a user-requested visual rewrite", "Missing required targets fail instead of silently doing nothing"), and write verification ("Use extension-data-get ... to verify a write succeeded").

5 / 5

Progressive Disclosure

A top-of-body References section clearly signals both real, one-level-deep files with read-when guidance ("references/api.md — the exhaustive helper/global tables ... Read this when you need the precise signature"; "references/examples.md — five worked HTML extensions ... when you want a complete copy-pasteable starting point"), and the split is appropriate: exhaustive signatures and worked examples live in the bundle files while SKILL.md carries the model-level overview and workflows.

5 / 5

Total

18

/

20

Passed

Description

87%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.

A strong description: it answers what and when explicitly, uses concrete trigger phrases, and pre-emptively disambiguates the extension/tool naming collision. Minor trigger-synonym gaps (legacy "tool" phrasing, "widget") keep trigger coverage just short of comprehensive.

DimensionReasoningScore

Specificity

"Creating, editing, and managing extensions — sandboxed Alpine.js mini-apps that run inside iframes" names three concrete actions and precisely characterizes the artifact. It falls short of anchor 5 only because "managing" is generic and sub-capabilities like history/rollback and sharing go unmentioned.

4 / 5

Completeness

The "what" is explicit ("Creating, editing, and managing extensions — sandboxed Alpine.js mini-apps") and the "when" is explicit with concrete triggers ("Use only when the host app explicitly enables extensions and the user asks for a one-off custom block or mini-app"), matching the anchor-5 example.

5 / 5

Trigger Term Quality

Natural user phrasings are present — "extension", "one-off custom block", "mini-app" — matching the anchor-4 example of good coverage with a few terms missing. It omits the legacy "make a tool" phrasing the body documents and synonyms like "widget", keeping it below anchor 5.

4 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche and actively disambiguates: "Distinct from LLM 'tools' (function calls)". Combined with the host-opt-in trigger condition, conflict risk with neighboring skills is minimal, matching anchor 5.

5 / 5

Total

18

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (534 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

13

/

16

Passed

Repository

BuilderIO/agent-native

Path

.agents/skills/extensions/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.