CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/electron-playwright

Authors Playwright `_electron` tests for packaged Electron desktop apps - launches the app via `electron.launch({ args })`, returns an `ElectronApplication` handle, drives renderer windows as Playwright `Page` objects, and probes the main process via `electronApp.evaluate(({ app, BrowserWindow }) => …)`. Distinct from ordinary browser page automation: this wraps the `_electron` API for launching packaged Electron apps and probing main + renderer processes. Includes the legacy Spectron reference and Spectron-to-Playwright migration shopping list (references/spectron-migration.md). Use for end-to-end tests of Electron apps where main-process state, IPC, and renderer DOM must all be asserted from one suite, or when migrating a deprecated Spectron suite.

72

Quality

90%

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

82%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 skill body with copy-paste-ready code covering the full Electron test lifecycle, and both bundle references exist and are clearly signaled one level deep. Weaknesses are mild: some API detail is duplicated between the body and the reference file, and workflow validation checkpoints are implicit rather than explicit.

Suggestions

Trim the duplicated API semantics: the Step 2 'What's going on' bullets, the Step 5 evaluate/browserWindow explanations, and the supported-Electron-versions quote all restate what references/electron-ci-and-api.md tabulates — replace them with a single pointer to that file.

Add an explicit validation checkpoint after Step 2, e.g. 'Run the launch smoke test and confirm it passes before adding main-process assertions', to make the feedback loop explicit.

Condense the Overview differentiation paragraph (which restates the frontmatter description's distinction from browser-only Playwright) to one or two sentences.

DimensionReasoningScore

Conciseness

Steps are dense with executable code and new domain knowledge (workers:1 rationale, xvfb requirement, native-dialog stubbing) with no padding on concepts Claude already knows. Not 5 because API semantics (evaluate/firstWindow behavior in the Step 2 'What's going on' bullets, Step 5 explanations, the 'Electron v12.2.0+, v13.4.0+, and v14+' support quote) duplicate what references/electron-ci-and-api.md already tabulates, and the Overview differentiation paragraph restates the frontmatter description.

4 / 5

Actionability

Every phase has copy-paste-ready code: the install command, the canonical first test, per-OS packaged-binary resolution via process.platform, a full multi-surface test, a complete playwright.config.ts, and run/trace commands. The anti-patterns table maps each failure mode ('Failed to initialize display', GPU/user-data collisions) to a concrete fix.

5 / 5

Workflow Clarity

Clear 10-step sequence (Install → Author → Launch packaged → Probe → Map windows → Wait → Configure → Run → Parse → CI) with error-recovery via the anti-patterns table and trace-viewer debugging in Step 8. Not 5 because validation checkpoints are implicit — there is no 'confirm the launch smoke test passes before adding main-process probes' style feedback loop; not 3 because failure modes and their fixes are explicitly enumerated.

4 / 5

Progressive Disclosure

Both referenced files exist and are clearly signaled one level deep ('Full API table: references/electron-ci-and-api.md', 'the migration shopping list in references/spectron-migration.md', 'Full workflow: references/electron-ci-and-api.md'), with the core launch-and-assert flow kept in the spine. Not 5 because API semantics and the supported-Electron-versions quote are inlined in the body as well as in the reference file; not 3 because the split is otherwise appropriate and navigation is easy.

4 / 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.

The description is a strong, third-person statement that names every concrete capability of the skill, provides an explicit 'Use for…' trigger clause, and draws a clear boundary against browser-only Playwright automation. Its only gap is minor: a few natural trigger synonyms are missing.

DimensionReasoningScore

Specificity

Multiple specific concrete actions with comprehensive coverage: 'launches the app via `electron.launch({ args })`', 'returns an `ElectronApplication` handle', 'drives renderer windows as Playwright `Page` objects', 'probes the main process via `electronApp.evaluate(({ app, BrowserWindow }) => …)', plus the Spectron migration scope — every capability of the skill is named concretely.

5 / 5

Completeness

Explicitly answers both: what — 'Authors Playwright `_electron` tests … launches … drives … probes' — and when — 'Use for end-to-end tests of Electron apps where main-process state, IPC, and renderer DOM must all be asserted from one suite, or when migrating a deprecated Spectron suite', with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good natural keyword coverage — 'Playwright', 'Electron', 'end-to-end tests', 'Spectron', 'migrating a deprecated Spectron suite', 'main-process state, IPC, and renderer DOM' — phrasings a user would naturally say. Not 5 because a few natural variations are absent (e.g. the 'e2e' abbreviation, 'test my Electron app' / 'desktop app testing' phrasings).

4 / 5

Distinctiveness Conflict Risk

Clear niche (Electron `_electron` testing) with an explicit boundary — 'Distinct from ordinary browser page automation: this wraps the `_electron` API for launching packaged Electron apps and probing main + renderer processes' — so it is unlikely to trigger for generic browser-Playwright skills.

5 / 5

Total

19

/

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

Table of Contents