CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/playwright-extension-fixtures

Author the Playwright fixture layer every Chromium extension test depends on - `chromium.launchPersistentContext` with `--disable-extensions-except=$DIR` + `--load-extension=$DIR`, the `channel: 'chromium'` selection that unlocks headless extension support, the `context.serviceWorkers()` + `waitForEvent('serviceworker')` race-handling pattern, and the `extensionId = serviceWorker.url().split('/')[2]` extraction recipe - plus, in references/, the extension load / reload matrix (which edit re-evaluates which surface), the `chrome.storage` test suite (area selection, quota-exceeded, `storage.onChanged`, managed read-only), and the per-surface assertion recipes (popup, content script, background messaging, MV3 auto-suspend survival). Use when authoring or debugging the fixture a Chromium extension test imports, when an edit appears to have no effect and you need the reload matrix, or when authoring popup / content-script / storage tests.

69

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

Overview
Quality
Evals
Security
Files

Quality

Content

78%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-structured skill body with copy-paste fixtures, troubleshooting feedback loops, and clean one-level-deep references. The main weakness is redundancy — the channel guidance and reference listings are repeated across multiple sections and could be consolidated.

Suggestions

Consolidate the `channel: 'chromium'` / headless guidance so it is stated once (e.g. in Running) and merely cross-referenced from the rationale table, Anti-patterns, and Limitations, rather than re-explained in each.

Merge the 'Composes with' list and the final 'References' section into a single reference block to avoid listing the same three files twice.

Add one explicit numbered validation checkpoint in the Authoring flow (e.g. 'after saving fixtures.ts, run `npx playwright test --headed=false` once to confirm the SW event fires') to turn the implicit run-then-diagnose loop into an explicit feedback checkpoint.

DimensionReasoningScore

Conciseness

Mostly efficient and free of basic-concept padding, but repeats itself: the `channel: 'chromium'` headless guidance appears in the rationale table, the Running section, the Anti-patterns table, and the Limitations section, and the three reference files are listed twice (Composes-with and References). This is more than minor trimming, so it sits below a 4.

3 / 5

Actionability

Provides a verbatim copy-paste-ready `fixtures.ts`, spec-file usage examples, an MV2 background-page fallback, a `swEvaluate` retry helper, and a full GitHub Actions YAML — fully executable and covering the common cases.

5 / 5

Workflow Clarity

The body flows as a clear sequence (Authoring → Running → Parsing results → CI integration) with error-recovery feedback (the 'Service worker restarted' retry loop and the extension-load failure diagnostic table). It lacks a single explicit numbered validation checkpoint, which keeps it just below a 5.

4 / 5

Progressive Disclosure

SKILL.md is a concise launch-layer overview that points one level deep to three real, verified bundle files (extension-surface-tests.md, reload-matrix.md, storage-tests.md), each clearly signaled in the Composes-with list, inline, and the References section, with assertion/detail content appropriately split out.

5 / 5

Total

17

/

20

Passed

Description

92%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 highly specific, well-triggered description that concretely names the fixture patterns and reference bundles and gives explicit 'Use when' guidance. Only minor gap is a few missing synonyms/file extensions in the trigger-term coverage.

DimensionReasoningScore

Specificity

Names multiple concrete actions with exact code-level detail — `chromium.launchPersistentContext` with `--disable-extensions-except=$DIR` + `--load-extension=$DIR`, the `channel: 'chromium'` headless unlock, the `context.serviceWorkers()` + `waitForEvent('serviceworker')` race pattern, and the `extensionId = serviceWorker.url().split('/')[2]` extraction — plus the reload matrix, storage suite, and per-surface recipes, giving comprehensive coverage.

5 / 5

Completeness

Explicitly answers both what ('Author the Playwright fixture layer every Chromium extension test depends on ... plus, in references/, ...') and when ('Use when authoring or debugging the fixture a Chromium extension test imports, when an edit appears to have no effect ..., or when authoring popup / content-script / storage tests') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Strong natural keywords a debugging user would say ('Playwright', 'Chromium extension test', 'fixture', 'popup', 'content-script', 'storage tests', 'edit appears to have no effect'), but missing common synonyms and file extensions (e.g. `.ts`, `manifest.json`, 'MV3') that would push it to a 5.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (Playwright-driven Chromium extension test fixtures) with distinct, specific triggers unlikely to fire for unrelated skills, minimizing conflict risk.

5 / 5

Total

19

/

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.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

14

/

16

Passed

Reviewed

Table of Contents