CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/web-push-tests

Use when a PWA ships browser web push and the subscription lifecycle needs release tests: pushManager.subscribe with VAPID keys, pushsubscriptionchange, push event delivery, push-service responses (201, 410, 413, 429) and unsubscribe. Native APNs and FCM are push-notification-test-author.

Quality

84%

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

67%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 test-authoring skill with a genuine progressive-disclosure split (browser-side inline, server-side in a real reference file). Its main weakness is token efficiency: spec-quote tables and duplicated CI configuration restate knowledge Claude already has, and a couple of test snippets are not fully self-contained.

Suggestions

Cut the PushSubscription property table and PushMessageData method table (and the 'References' recap of them) — Claude knows the Push API surface; keep only the non-obvious bits like the Firefox quota and the expirationTime null-branch.

Replace the "// ... subscribe as Step 2 ..." elisions in Steps 3 and 8 with a small shared subscribe() helper so every test is copy-paste runnable.

Merge "Running / In CI" and "CI integration" into a single section to remove the repeated Playwright/Vitest commands.

DimensionReasoningScore

Conciseness

The test code is dense and earns its tokens, but the PushSubscription property table, the PushMessageData method table, and two near-duplicate CI YAML blocks ("Running / In CI" vs "CI integration") restate Push API surface knowledge Claude already has. Several unnecessary or duplicated sections fit anchor 3 ("mostly efficient but includes some unnecessary explanation"), not anchor 4's minor trims.

3 / 5

Actionability

Steps 1-8 ship real executable Playwright/Vitest TypeScript plus concrete run and CI commands, and the referenced push-protocol.md contains complete server-side tests. However Steps 3 and 8 elide setup with "// ... subscribe as Step 2 ..." and "// ... subscribe ...", so the code is mostly but not fully copy-paste ready — anchor 4, not 5.

4 / 5

Workflow Clarity

A clear 8-step sequence from fixture setup through unsubscribe, with per-step expect() assertions acting as validation checkpoints and an Anti-patterns table covering failure modes. No explicit validate-fix-retry feedback loop is described, so it matches anchor 4 (most checkpoints, minor gaps) rather than anchor 5's explicit error-recovery loops.

4 / 5

Progressive Disclosure

Server-side protocol detail is appropriately split into a real, one-level-deep references/push-protocol.md, clearly signaled twice with descriptive links ("The full response-code table and the cleanup-on-410 Vitest test are in [references/push-protocol.md]"), while the runnable browser-side core stays inline. Minor organization gaps — the duplicated CI YAML and inline spec tables could also be split or trimmed — keep it at anchor 4 rather than 5.

4 / 5

Total

15

/

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 strong description: concrete API-level actions, an explicit "Use when" clause with realistic triggers, and an explicit delegation boundary to the cross-channel push skill. The only gap is modest synonym coverage (e.g., "push notifications", "browser notifications") for trigger terms.

DimensionReasoningScore

Specificity

Enumerates multiple concrete actions with exact API surfaces: "pushManager.subscribe with VAPID keys, pushsubscriptionchange, push event delivery, push-service responses (201, 410, 413, 429) and unsubscribe". Coverage is comprehensive for the browser web-push subscription lifecycle, matching the level-5 anchor rather than the minor-gaps level-4 anchor.

5 / 5

Completeness

Explicitly answers both questions: "Use when a PWA ships browser web push and the subscription lifecycle needs release tests" gives concrete when-triggers, and the colon-separated list of lifecycle calls states exactly what is tested. Both are explicit with concrete trigger phrases, matching anchor 5.

5 / 5

Trigger Term Quality

Includes natural terms users would say in this niche ("web push", "PWA", "VAPID keys", "subscription", "unsubscribe"), but misses common variations such as "push notifications" or "browser notifications". Good coverage with a few natural terms missing fits anchor 4, not the synonym-complete anchor 5.

4 / 5

Distinctiveness Conflict Risk

The scope is a clear niche (browser web-push subscription lifecycle only) and it explicitly fences the boundary: "Native APNs and FCM are push-notification-test-author". Minimal conflict risk with the sibling cross-channel skill, matching anchor 5.

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

On this page