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.

68

Quality

86%

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

75%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, executable body: the verbatim fixture, complete variants, retry helpers, CI wiring, and failure-triage tables give Claude everything needed to implement and debug. Its weaknesses are redundancy (repeated channel-'chromium' guidance and pervasive per-[pw-ext] citations) and one dangling reference path, which keep conciseness and navigation short of top marks.

Suggestions

Consolidate the channel:'chromium' headless guidance into one authoritative passage (e.g., the Running section) and have the rationale table, troubleshooting table, anti-patterns table, and CI notes reference it instead of restating it, cutting ~6 duplicate statements.

Trim the 'per [pw-ext]' citation repetition — cite the doc once per section rather than on nearly every table row and paragraph.

Fix or qualify the references/web-ext-firefox.md pointer in Limitations (the file is absent from this bundle's references/), e.g., by naming it as belonging solely to the manifest-v3-test-surface-reference skill's bundle with no local path, and merge the References section's composition list with the Overview's to remove the duplicated listing.

DimensionReasoningScore

Conciseness

The body is dense and free of conceptual padding, but "per [pw-ext]" is cited on nearly every table row and paragraph, the channel:'chromium' guidance repeats in roughly six places (rationale table, Running, troubleshooting, anti-patterns, CI notes), and the References section restates the Overview composition list. This is more than the 'minor instances' of the level 4 anchor, fitting level 3's 'could be tightened'.

3 / 5

Actionability

Everything is copy-paste ready: the verbatim fixtures.ts, spec-file usage, MV2 backgroundPages fallback, the swEvaluate 'Service worker restarted' retry helper, a complete GitHub Actions YAML, and a symptom→cause→fix troubleshooting table. Common cases (MV3/MV2, headed/headless, persistent/ephemeral profile) are all covered, matching the level 5 anchor.

5 / 5

Workflow Clarity

The author→run→debug→CI progression is clear and includes feedback loops (the troubleshooting table and the retry-once helper), but it is topic-organized rather than stepwise and lacks an upfront pre-flight validation (the absolute-path requirement for --load-extension appears only in Limitations, after the fixture is already presented). Clear sequence with most checkpoints present fits level 4, short of level 5's explicit validation steps and checklists.

4 / 5

Progressive Disclosure

The three real bundle files (extension-surface-tests.md, reload-matrix.md, storage-tests.md) are one level deep, well signaled in the Overview "Composes with" list and the References section, and correctly split from the core fixture content. However, the body cites references/web-ext-firefox.md, which does not exist in this bundle's references/ directory, leaving a dangling pointer that slightly breaks navigation — a minor organization gap matching level 4 rather than level 5.

4 / 5

Total

16

/

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 dense, third-person description that names the exact API pattern, its components, and the reference bundle contents, followed by an explicit multi-scenario "Use when" clause. Its only weakness is trigger-term coverage that is jargon-heavy and misses a few natural synonyms, keeping it just short of full marks.

DimensionReasoningScore

Specificity

Enumerates multiple concrete actions with exact API surface — "chromium.launchPersistentContext with --disable-extensions-except=$DIR + --load-extension=$DIR", "channel: 'chromium'", "context.serviceWorkers() + waitForEvent('serviceworker') race-handling", and the extensionId extraction recipe — plus the reference-suite contents. Coverage of the fixture-authoring domain is comprehensive, so it exceeds the 'minor gaps' level 4 anchor.

5 / 5

Completeness

Explicitly answers both questions: the "what" is the enumerated fixture layer and its reference suite, and a dedicated clause states "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". This matches the level 5 anchor (clear what AND when with concrete triggers), not level 4 where the when-clause is merely adequate.

5 / 5

Trigger Term Quality

Natural domain terms are present ("playwright", "Chromium extension test", "popup", "content-script", "storage tests", "headless", "reload"), but common variations like "e2e", "browser extension", or "chrome extension" are missing and the phrasing leans on API-level jargon rather than fully covering synonyms. Good-but-not-comprehensive keyword coverage matches the level 4 anchor, below level 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The Playwright Chromium-extension fixture niche is highly specific with distinct triggers (fixture authoring, no-effect edits, popup/content-script/storage tests). The only overlap is the deliberately scoped composition with "manifest-v3-test-surface-reference" (fixture vs. manifest surface), which is a clear division of labor, matching the minimal-conflict level 5 anchor.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents