CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

ai-unified-process/aiup-playwright

AI Unified Process end-to-end layer - Playwright browser tests for use cases and test case journeys of any web UI

Quality

95%

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

Overview
Quality
Evals
Security
Files

Quality

Content

88%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 instruction body: copy-paste commands and config, a decision table for test type, an explicit workflow with validation and a failure-diagnosis feedback loop, and real one-level-deep template references. The only weakness is modest redundancy with documented Playwright API in the Locating Elements and Assertions Reference sections.

Suggestions

Trim 'Assertions Reference' and 'Locating Elements' to their policy statements (prefer role/label/text locators, getByTestId only as fallback, auto-retrying expect, never waitForTimeout) — the Playwright API syntax in the example code is knowledge Claude already has.

Consider moving the framework-specific DOM notes (e.g. the Angular Material mat-select overlay walkthrough) into a reference file so the main body holds only project policy, further slimming the ~220-line SKILL.md.

DimensionReasoningScore

Conciseness

Mostly dense project policy Claude could not know (test-data ownership, E2E scope gating, marker rules), but 'Locating Elements' and 'Assertions Reference' restate standard Playwright API Claude already knows — e.g. "page.getByRole('button', { name: 'Save' })" and "await expect(page.getByText('Saved')).toBeVisible()" — where the policy line ("never a plain boolean check, never waitForTimeout") would suffice. Fits 'efficient; minor instances of over-explanation that could be trimmed' better than the lean anchor-5.

4 / 5

Actionability

Fully executable throughout: exact install commands ("npm install -D @playwright/test", "npx playwright install chromium"), a complete copy-paste playwright.config.ts, exact run commands ("npx playwright test --grep \"@UC-010\""), file-naming conventions ("UC-XXX-<slug>.spec.ts"), and a test-case-section-to-code mapping table; the template references cover the common cases.

5 / 5

Workflow Clarity

A 10-step numbered Workflow with an explicit validation checkpoint (step 7 runs the tests) and an error-recovery feedback loop in step 8 — "On a failure... Mechanics first: is the frontend and the backend up, does the dev proxy forward /api/*, does the seed data exist, is the accessible name exact" — with --debug/MCP inspection, and step 10 requires reporting every failing test with step, expected, and actual values.

5 / 5

Progressive Disclosure

All four bundle files (use-case.spec.ts.md, test-case.spec.ts.md, markers.md, layer.md) exist, are one level deep with no nested references, and are well signaled ("template [references/use-case.spec.ts.md](references/use-case.spec.ts.md)"). However the ~220-line body keeps reference-style material inline (the Locating Elements and Assertions Reference tables), matching anchor 4's "a few key examples inline, bulk in separate file" rather than a lean overview.

4 / 5

Total

18

/

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 capability statement, an explicit 'Use when' clause with natural trigger phrases and synonyms, and explicit disambiguation against the closest competing skill. Despite its length it is dense rather than padded — every clause carries triggering or scoping information.

DimensionReasoningScore

Specificity

Multiple concrete actions with comprehensive coverage: "Writes end-to-end browser tests in TypeScript with @playwright/test", "a use case test (UC-XXX) with one test per scenario, or a test case journey (TC-XXX) that walks the whole Flow table across views with one test.step per row", "Locates elements by role, label, and text", and "cleans up only the data the test created" — no vague filler. Anchor 4 ('minor gaps in coverage') does not fit; the skill's actual behavior is fully enumerated.

5 / 5

Completeness

Explicitly answers both: the what (writes UC-*/TC-* Playwright tests in TypeScript, locates by role/label/text, cleans up created data) and the when via a direct "Use when the user asks to..." clause with concrete trigger phrases — exactly the shape of the anchor-5 example, not the weaker 'when could be more explicit' of anchor 4.

5 / 5

Trigger Term Quality

Six quoted natural trigger phrases users would actually say — "write Playwright tests", "create e2e tests", "test in the browser", "automate a test case", "test a user journey", "automate TC-001" — plus category synonyms ("end-to-end, browser, or UI integration tests") and artifact ID prefixes. This matches the comprehensive-synonyms anchor; anchor 4 ('a few natural terms missing') would understate the coverage.

5 / 5

Distinctiveness Conflict Risk

A clear niche (Playwright E2E for client-side-framework UIs) with explicit boundaries against the nearest sibling: "for any web UI that is not Vaadin" and "For a Vaadin UI use /vaadin-e2e-test", plus invocation context ("Normally run by /use-case-test... it can also be run directly"). Minimal wrong-skill trigger risk; anchor 4's 'minor overlap risk' is not warranted given the explicit disambiguation.

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.

Reviewed

On this page