CtrlK
BlogDocsLog inGet started
Tessl Logo

playwright-pom-discovery

Use when building or extending a Page Object Model (POM) for the Opik E2E suite (under `tests_end_to_end/e2e/pom/`) and you need to choose stable selectors against the live UI. Walks through seeding required state, exploring the running page with the Playwright MCP (accessibility snapshot + data-testid enumeration), picking the most stable locator for each element, and verifying it before committing. Used as the discovery sub-step by the `writing-e2e-tests` skill.

72

Quality

91%

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

77%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 highly actionable, well-sequenced procedure with real tool calls, executable seed/verification code, and strong error-recovery guidance. It loses points on token efficiency (the dot flowchart duplicates the step-by-step section) and on progressive disclosure — everything lives inline in one long file with no reference bundle despite length that would benefit from splitting.

Suggestions

Drop the `dot` digraph (or the 'Step-by-step' prose) — they state the same procedure twice and cost ~34 lines of context; the anti-pattern table already provides the at-a-glance failure mapping.

Move the per-page 'Reusable seed patterns' table, the beforeunload/dialog protocol, and the data-testid naming conventions into references/ files (e.g., references/seed-patterns.md) linked one level deep, keeping SKILL.md as the procedural overview.

De-duplicate the dialog-blocking guidance between step 3 and the anti-patterns table — state the rule once and cross-reference it.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no library tutorials) but the ~34-line `dot` flowchart fully duplicates the 10-step 'Step-by-step' section, and the dialog-blocking explanation is repeated at length in both step 3 and the anti-patterns table. That is section-level redundancy, which fits 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than the 4 anchor's 'minor instances'.

3 / 5

Actionability

Fully executable throughout: real MCP tool invocations (browser_handle_dialog(accept=true), the browser_evaluate enumeration script, test_run), a runnable TS seed script, a copy-paste selector priority list with named fallbacks, and a concrete scratch verification test. Matches 'copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

Ten clearly sequenced steps with an explicit verify-then-diagnose feedback loop (step 8 maps timeout → wrong selector, assertion failure → wrong method logic, multiple matches → add scope), plus an anti-pattern table mapping failure symptoms back to the skipped step. Clear sequence with explicit validation steps and error-recovery loops — the 5 anchor.

5 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), so the ~280-line body is monolithic: the per-page seed-pattern table, the dialog-handling protocol, and the data-testid naming conventions are exactly the content a one-level-deep reference file would hold. Sections are well-organized, but 'content that should be separate is inline' fits the 3 anchor; the under-50-lines exception does not apply to this length.

3 / 5

Total

16

/

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 third-person action list, explicit 'Use when' triggers with the exact directory path, full-term-plus-acronym trigger coverage, and explicit disambiguation from the parent writing-e2e-tests skill. Nothing vague, padded, or over-claimed.

DimensionReasoningScore

Specificity

"Walks through seeding required state, exploring the running page with the Playwright MCP (accessibility snapshot + data-testid enumeration), picking the most stable locator for each element, and verifying it before committing" names four concrete actions covering the full procedure, matching the comprehensive-coverage anchor; the 4 anchor's 'minor gaps in coverage' doesn't apply.

5 / 5

Completeness

"Use when building or extending a Page Object Model... and you need to choose stable selectors against the live UI" gives an explicit when with concrete triggers, and "Walks through seeding... picking... verifying it before committing" gives an explicit what. Both halves are concrete, which is the 5 anchor, not merely present as at 4.

5 / 5

Trigger Term Quality

Includes both the full term and its synonym/acronym ("Page Object Model (POM)"), natural phrases ("stable selectors", "locator", "data-testid", "Playwright MCP", "E2E"), and the concrete path `tests_end_to_end/e2e/pom/` — comprehensive natural-term coverage rather than merely good.

5 / 5

Distinctiveness Conflict Risk

Scoped to a single repo's suite and a single sub-task, and it even disambiguates from its parent skill ("Used as the discovery sub-step by the `writing-e2e-tests` skill"), so conflict risk is minimal. Voice is third person ("Walks through..."), so no voice penalty applies.

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
comet-ml/opik
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.