CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

demo

Record a demo video of a web app feature or flow on a real desktop (Docker, Xvfb, XFCE, real X cursor), producing an mp4 plus a click/hover/scroll/type telemetry file. Takes a flow description, an existing demo name or path, or init. Use when the user says "record a demo of the checkout", "gravar um demo dessa feature", "make a screencast of this flow", "video for the changelog", "re-record the checkout demo", "refresh the demo video", or "demo init". Do NOT use for general browser testing or automation that needs no video (use playwright-skill), page debugging or network inspection (use chrome-devtools), or static screenshots.

77

Quality

97%

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

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

A strong, well-engineered skill body: executable code and commands, a workflow with real validation and error-recovery loops, correct progressive disclosure into an existing bundle, and no token waste on concepts Claude already knows. The only weakness is minor redundancy — the app.url fallback chain appears twice and the Config section re-lists keys it defers to assets/config.mjs.

Suggestions

State the app.url fallback chain (environment/.env/3000, localhost semantics) in one place only — Config — and have Workflow step 2 just reference it, trimming a repeated sentence.

In the Config section, either trust the pointer to assets/config.mjs ('the file's comments are the reference for each key') or list the keys, but not both — the inline enumeration of every top-level key duplicates what init-generated config comments already document.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence (no concept re-teaching, no library introductions), but the app.url resolution chain ('unset, http://localhost:$PORT from the environment or .env, else 3000') is stated in full twice — in Workflow step 2 and again in Config — and the Config section enumerates every top-level key inline right after deferring to 'the file's comments are the reference for each key'. These are minor instances of duplication that could be trimmed, matching anchor 4 rather than the every-token-earns-its-place anchor 5.

4 / 5

Actionability

Fully executable guidance throughout: a copy-paste-ready Playwright script template, concrete commands ('$SKILL_DIR/scripts/record <name>', the ffmpeg frame-extraction command), the complete lib.mjs API with signatures ('record({ lead })', 'wheel(page, pixels)', 'mark(type, box)'), and named failure artifacts to inspect. Placeholders in the template are necessarily project-specific, which the skill instructs how to resolve ('take them from the project's docs... never guess').

5 / 5

Workflow Clarity

The four-step Workflow has an explicit validation checkpoint (step 3: extract frames around events and look at them, with the command to do so) and a complete feedback loop in Failures (fail fast with 5s timeout, read failed.json, look at failed.png, fix the script, re-run, 'Never hand over a video from a failed run'). Failure semantics are non-destructive and explicitly stated ('A failed run leaves the previous good video untouched').

5 / 5

Progressive Disclosure

The body is a clear overview with well-signaled, one-level-deep references, and every referenced bundle file exists: references/init.md (for the init form), scripts/record, scripts/config, and assets/config.mjs (defaults/pace presets). references/init.md does not nest into further .md files, and the lib.mjs API is summarized inline at signature level rather than dumped, keeping detail in the bundle.

5 / 5

Total

19

/

20

Passed

Description

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

An exemplary description: concrete capabilities, explicit and varied trigger phrases (including a second language and negative triggers), and explicit disambiguation against adjacent skills. Voice is third-person imperative with no fluff or over-claims.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Record a demo video... producing an mp4 plus a click/hover/scroll/type telemetry file' and 'Takes a flow description, an existing demo name or path, or init' — and enumerates the skill's full capability surface including the concrete environment (Docker, Xvfb, XFCE, real X cursor). It is not a 4 because there is no coverage gap: both outputs and all three input forms are explicitly stated.

5 / 5

Completeness

It explicitly answers 'what' ('Record a demo video... producing an mp4 plus a click/hover/scroll/type telemetry file') and 'when' ('Use when the user says...' with seven concrete trigger phrases), exactly matching the anchor-5 example structure. The when-clause could not be more explicit.

5 / 5

Trigger Term Quality

It quotes natural phrases users would actually say — 'record a demo of the checkout', 'make a screencast of this flow', 'video for the changelog', 're-record the checkout demo', 'refresh the demo video' — and even includes a Portuguese variation ('gravar um demo dessa feature'). Coverage with synonyms is comprehensive; it does not fall to 4 because no common natural variant is missing for this domain.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche (desktop video recording with telemetry) and explicitly disambiguates neighboring skills — 'Do NOT use for general browser testing... (use playwright-skill), page debugging or network inspection (use chrome-devtools), or static screenshots'. This active conflict resolution makes overlap risk minimal.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

tech-leads-club/agent-skills

Path

packages/skills-catalog/skills/(web-automation)/demo/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.