CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

playwright-skill

IMPORTANT - Path Resolution: This skill can be installed in different locations (plugin system, manual installation, global, or project-specific). Before executing any commands, determine the skill directory based on where you loaded this SKILL.md file, and use that path in all commands below.

Quality

41%

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 ./plugins/AI-Agents-Safe-Coding-Skills/skills/playwright-skill/SKILL.md

The canonical home for this skill is playwright-skill in administrakt0r/AI-Agents-Safe-Coding-Skills

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 body delivers strongly actionable, executable guidance with a clear sequenced workflow and good error-recovery coverage. Its weaknesses are significant redundancy (the same rules and workflow repeated across six sections) and progressive disclosure that inlines content belonging in separate files while referencing bundle files that are not actually provided.

Suggestions

State the workflow once (in 'CRITICAL WORKFLOW' or 'Execution Pattern') and cut 'How It Works', 'Example Usage', and the duplicate 'Notes'/'Tips' restatements — this alone would remove ~150 lines.

Keep 3–4 distinct code examples in SKILL.md and move the rest (login, form, broken-links, both responsive examples) to an EXAMPLES.md file referenced one level deep.

Ship API_REFERENCE.md and lib/helpers.js in the bundle or remove/repair the references to them, since the dangling links break navigation for advanced use.

Parameterize URLs consistently — the broken-links and error-handling examples hardcode 'http://localhost:3000' against the skill's own 'always use TARGET_URL' rule.

DimensionReasoningScore

Conciseness

The ~450-line body restates the same workflow at least six times ('CRITICAL WORKFLOW', 'How It Works', 'Execution Pattern', 'Tips', 'Notes', 'Example Usage'), duplicates the frontmatter path-resolution block verbatim, and inlines two overlapping responsive-design examples and conversational transcript filler. It does not explain known concepts, but the repetition and padding are noticeable rather than minor.

2 / 5

Actionability

Concrete executable bash commands ('cd $SKILL_DIR && node run.js /tmp/playwright-test-page.js') and complete copy-paste JS covering common cases (page test, login flow, form fill, broken links, screenshots, viewports). Minor gaps: two examples hardcode 'http://localhost:3000' contradicting the stated parameterization rule, and the 'injected' getContextOptionsWithHeaders() mechanism is asserted without explanation.

4 / 5

Workflow Clarity

The sequence (detect servers → write to /tmp → execute via run.js) is clearly numbered with explicit decision branches ('If 1 server found: use it... If multiple: ask user') and a troubleshooting section for error recovery. Missing explicit validation checkpoints — e.g., no verify-setup-succeeded step before writing scripts, and no retry/verify loop around execution — keep it below a 5.

4 / 5

Progressive Disclosure

Structure is well-intentioned with a clearly signaled one-level reference ('For comprehensive Playwright API documentation, see [API_REFERENCE.md](API_REFERENCE.md)' with a topic list), but API_REFERENCE.md and lib/helpers.js are not present in the provided bundle, leaving dangling references. Additionally, eight full code examples plus usage transcripts and the helpers API are inlined in SKILL.md when they belong in separate files.

3 / 5

Total

13

/

20

Passed

Description

0%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 pure path-resolution boilerplate duplicated from the body — it communicates nothing about the skill's purpose (Playwright browser automation) or when to invoke it. A user asking to 'test a web page' or 'take a browser screenshot' would never match this description, making the skill effectively undiscoverable.

Suggestions

Replace the description with a capability statement plus trigger guidance, e.g.: 'Automates browser tasks with Playwright: page testing, login flows, form filling, screenshots, and responsive checks across viewports. Use when the user asks to test a web page, take browser screenshots, check a dev server, or automate any browser interaction.'

Remove the path-resolution instructions from the description entirely — they are operational setup details that belong in the body (where they are already duplicated verbatim).

Include natural trigger keywords users actually say: 'browser automation', 'test my site/page', 'screenshot', 'Playwright', 'check if login works', 'responsive/mobile check'.

DimensionReasoningScore

Specificity

The description only covers installation mechanics ("This skill can be installed in different locations... determine the skill directory based on where you loaded this SKILL.md file") and names no capability of the skill — browser automation, Playwright, testing, screenshots are all absent. There are no concrete actions describing what the skill does, matching the 'entirely vague; no concrete actions' anchor.

1 / 5

Completeness

Neither 'what does this do' nor 'when should Claude use it' is addressed — the entire description is a path-resolution instruction. Per the guideline capping missing-trigger descriptions, this is the worst case: both what and when are entirely absent.

1 / 5

Trigger Term Quality

No natural trigger keywords appear anywhere: users would say 'test my page', 'take a screenshot', 'browser automation', 'Playwright', but the text only contains phrases like 'plugin system, manual installation, global, or project-specific'. These are installer jargon, not user-facing trigger terms.

1 / 5

Distinctiveness Conflict Risk

The description is generic installation boilerplate that could apply to virtually any installed skill, giving it no distinct identity. It neither distinguishes this skill from others nor could it correctly trigger for browser-automation requests.

1 / 5

Total

4

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 missing

Warning

Total

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills/skills/playwright-skill/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.