CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/web-push-tests

Test the browser web-push subscription lifecycle - `pushManager.subscribe({ userVisibleOnly, applicationServerKey })` per [W3C Push API][w3c-push] returning a `PushSubscription` with `endpoint` + `keys.p256dh` + `keys.auth` + optional `expirationTime`; the `pushsubscriptionchange` service-worker event on refresh / revoke / expiry; the `push` event delivery with `PushMessageData`; VAPID auth per RFC 8292 (ES256 JWT, `aud` / `exp` ≤ 24h / `sub`); RFC 8030 push-service responses (201 Created, 410 Gone for expired endpoints, 413 Payload Too Large, 429); and `unsubscribe()` cleanup. Use when a PWA ships web-push and the subscription lifecycle needs release-gate coverage - scoped to the browser Push API, not to cross-channel delivery over native APNs / FCM.

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

86%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 thorough, executable test-authoring skill with concrete code, a clearly sequenced 8-step workflow, and proper offloading of server-side protocol detail to a single well-signaled reference file. The main improvement area is tightening the surrounding explanatory prose.

Suggestions

Trim the inline PushSubscription and PushMessageData property tables or move them into references/push-protocol.md, keeping only the assertions the tests rely on in SKILL.md.

Add an explicit validate-fix-retry loop in the Authoring workflow (e.g., 'run the suite, if a step's assertion fails, fix the test/SW handler, re-run') to strengthen workflow_clarity.

Collapse the duplicate CI YAML blocks (Running > In CI and CI integration) into one section to reduce token weight.

DimensionReasoningScore

Conciseness

Mostly efficient with executable code and purposeful spec-reference tables, but the per-step prose and inline PushSubscription/PushMessageData property tables contain some over-explanation that could be trimmed.

4 / 5

Actionability

Copy-paste-ready Playwright/TypeScript and Vitest code, concrete bash and CI YAML, and specific assertions cover the common subscription-lifecycle cases fully.

5 / 5

Workflow Clarity

Steps 1-8 are clearly sequenced with per-step test assertions acting as checkpoints, but the authoring flow lacks an explicit validate-fix-retry feedback loop beyond running the suites.

4 / 5

Progressive Disclosure

SKILL.md holds the runnable browser-side core while clearly signaling the one-level-deep references/push-protocol.md for server-side RFC 8030/VAPID detail, with well-organized sections and easy navigation.

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.

A dense, highly specific description that names the full subscription lifecycle, explicit trigger conditions, and a clear scope boundary against sibling skills. Its only weakness is slight over-reliance on RFC/jargon keywords at the expense of the most colloquial 'push notification' phrasings.

DimensionReasoningScore

Specificity

Lists multiple concrete actions across the full lifecycle - subscribe, pushsubscriptionchange, push event with PushMessageData, VAPID JWT auth, RFC 8030 response handling, and unsubscribe cleanup - giving comprehensive coverage rather than vague abstraction.

5 / 5

Completeness

Explicitly answers both what (the subscription-lifecycle test surface) and when ('Use when a PWA ships web-push and the subscription lifecycle needs release-gate coverage') with concrete trigger phrasing.

5 / 5

Trigger Term Quality

Strong natural terms ('web-push', 'PWA ships web-push', 'subscription lifecycle', 'VAPID', 'release-gate coverage') plus spec keywords, though common variations like 'push notification' / 'notification test' phrasing are absent.

4 / 5

Distinctiveness Conflict Risk

Explicitly scopes to the browser Push API and carves out cross-channel APNs/FCM as sibling-skill territory, giving a clear niche with minimal conflict risk.

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents