CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chrome-extension-messaging-tests

Use when a Chrome extension's messages reach no listener, sendResponse never fires, a port disconnects mid-test, or a web page's access must be proven. Tests runtime.sendMessage, tabs.sendMessage, long-lived ports, externally_connectable and native messaging on a running extension.

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

The canonical home for this skill is testland/chrome-extension-messaging-tests

SKILL.md
Quality
Evals
Security

Quality

Content

85%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 well-engineered skill body: expert-calibrated, well-sourced non-obvious facts, executable code for the core shapes, a validated authoring workflow with an anti-pattern feedback table, and exemplary one-level-deep reference structure. The gaps are minor: some cross-section repetition, an undefined test helper, and version-gated Chrome 148 detail that could be consolidated.

Suggestions

State the `return true` and `toBeDefined()` guidance once in Authoring and reduce the Anti-patterns table entries for them to terse one-line reminders, eliminating the triple repetition across How-to-use, Authoring, and the table.

Replace the undefined `sendFromContentScript` helper in the test example with a concrete, runnable snippet (e.g., a defined helper or chrome.scripting.executeScript) so the flagship test is copy-paste ready.

Consolidate the Chrome 148 promise-return behavior and DevTools caveat into a single clearly labeled compatibility note so version-sensitive detail is contained in one place.

DimensionReasoningScore

Conciseness

The body is dense and expert-level (the "literal true" rule, 64 MiB cap, JSON vs structured-clone table, first-listener-wins) with no padding explaining basics Claude already knows. However, the `return true` and `toBeDefined()` points are each restated three times across How-to-use, Authoring, and the Anti-patterns table, and version-gated Chrome 148 detail adds time-sensitive material, so it is efficient with minor trimmable repetition rather than fully lean — the 4 anchor, not 5.

4 / 5

Actionability

Concrete, runnable sender/listener code for both one-shot shapes, real rejection-path assertions, a payload serialization table, and a worked regression-suite checklist; the three deeper shapes have executable recipes in the two verified reference files. Not 5: the flagship test example calls an undefined `sendFromContentScript` helper, so it is not copy-paste ready, and no test-runner/harness setup is shown — mostly executable with minor gaps, matching the 4 anchor.

4 / 5

Workflow Clarity

The 6-step How-to-use sequence is clearly ordered (identify shape → confirm running → write pair → assert full response → payload guardrails → re-check), with an explicit validation checkpoint ("Re-check the draft against the Anti-patterns table before committing") and a genuine feedback loop: each anti-pattern row pairs a failure with its fix, plus a full checklist-style worked example. This matches the 5 anchor's explicit validation, error-recovery fixes, and checklists; the 4 anchor would leave validation implicit or partial.

5 / 5

Progressive Disclosure

Clean split: the two simple one-shot shapes stay inline while the three heavier shapes are offloaded with well-signaled links to references/long-lived-ports.md and references/cross-boundary-messaging.md, both of which exist, contain substantive recipes, and nest no further local references (verified one level deep). The References section restates each link with content descriptions, matching the 5 anchor exactly.

5 / 5

Total

18

/

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 excellent: third-person voice, a concrete 'what' listing all five messaging surfaces, and an explicit 'Use when' clause built from real failure symptoms users would verbalize. Its only weakness is modest synonym coverage for trigger terms, missing a few natural phrasings like 'onMessage listener' or 'message passing'.

DimensionReasoningScore

Specificity

"Tests runtime.sendMessage, tabs.sendMessage, long-lived ports, externally_connectable and native messaging on a running extension" names five concrete, specific actions that comprehensively cover every Chrome extension messaging shape. It matches the 5 anchor (multiple specific concrete actions, comprehensive coverage) rather than 4, which expects minor gaps in coverage.

5 / 5

Completeness

Explicitly answers both: what ("Tests runtime.sendMessage, tabs.sendMessage, long-lived ports, externally_connectable and native messaging") and when ("Use when a Chrome extension's messages reach no listener, sendResponse never fires, a port disconnects mid-test, or a web page's access must be proven") with concrete trigger phrases. Clearly matches the 5 anchor; the 4 anchor requires a less explicit 'when', which is not the case here.

5 / 5

Trigger Term Quality

Includes natural symptom phrases users would actually say ("messages reach no listener", "sendResponse never fires", "a port disconnects mid-test") plus API names, but misses common variations like "onMessage listener", "message passing", or "content script not receiving". Good coverage with a few natural terms missing fits the 4 anchor; not 5 because synonym coverage is not comprehensive.

4 / 5

Distinctiveness Conflict Risk

"Chrome extension's messages" plus named APIs (externally_connectable, native messaging) carve out a clear niche with distinct triggers and minimal conflict risk against generic testing or extension-load skills. Not 4: there is no meaningful overlap risk with closely related skills given the messaging-specific trigger symptoms.

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.

Repository

testland/qa

Path

plugins/qa-browser-extension/skills/chrome-extension-messaging-tests/SKILL.md

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.