CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/add-to-homescreen-flow-tests

Build-an-X workflow that emits the Add-to-Home-Screen / install-flow test suite. Walks the four-stage install timeline (gate → `beforeinstallprompt` handshake → per-platform path → `display-mode` MQ), emits one test per gate cell per [web.dev/articles/install-criteria][install-criteria], the deferred-prompt → `prompt()` → `userChoice` chain per [web.dev/articles/customize-install][customize-install], the iOS Safari manual-metadata branch (`apple-touch-icon`, `apple-mobile-web-app-capable`) per [web.dev/learn/pwa/installation][learn-pwa], and the post-install `(display-mode: standalone)` MQ assertion. Output: a Playwright spec file with per-stage cells plus the iOS metadata spec, plus a coverage matrix mapping each install criterion to its assertion. Use when a PWA's manifest, icons, or install handler change, or when install conversion drops and it is unclear which install stage users fall out at.

74

Quality

93%

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

85%

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 executable Playwright specs, a CI-gating coverage matrix, and a properly signaled one-level reference. The main weakness is conciseness: the same install cells are restated across the steps, worked example, anti-patterns, and limitations.

Suggestions

Collapse the worked-example cell-count table into the Step 7 coverage matrix reference - the per-stage cell counts are already implied by the matrix, so the table mostly restates Step 2-6 output.

Trim the Anti-patterns table entries that merely restate a Step instruction (e.g. 'Skip the 30s engagement wait' duplicates Step 3's rationale); keep only the entries that add a non-obvious failure mode not already covered inline.

In Limitations, reference the relevant Step by number without re-explaining the mechanism already described in that Step (e.g. the 31-second wait rationale is already given in Step 3).

DimensionReasoningScore

Conciseness

Mostly efficient with executable code that earns its place, but the same gate/handshake/iOS cells are restated across the Step code blocks, the worked-example cell-count table, the anti-patterns table, and the Limitations section, adding redundancy that could be tightened. Not 1 because it avoids explaining basic concepts Claude already knows; not 3 because of the repetition.

2 / 3

Actionability

Provides complete, executable Playwright TypeScript specs for every stage (gate cells, beforeinstallprompt handshake, appinstalled, iOS metadata, display-mode) plus concrete shell commands and YAML - copy-paste ready, not pseudocode.

3 / 3

Workflow Clarity

A clearly sequenced seven-step workflow with an explicit validation/checklist artifact (Step 7's coverage matrix that 'CI gates on every matrix cell having a passing spec') and an anti-patterns table serving as error-recovery guidance. Not 2 because the sequence and checklist are explicit.

3 / 3

Progressive Disclosure

Clear sectioned overview (Overview, When to use, Workflow, Worked example, Anti-patterns, Limitations, References) with a well-signaled one-level-deep reference - [references/install-suite.md](references/install-suite.md), verified to exist - holding the full coverage matrix; navigation is easy.

3 / 3

Total

11

/

12

Passed

Description

100%

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 highly specific, third-person description that clearly states both the concrete outputs and the explicit use-when triggers, with strong natural trigger terms and clear distinctiveness from sibling skills. No first/second-person voice issues beyond the standard 'Use when' trigger phrasing.

DimensionReasoningScore

Specificity

Lists multiple concrete actions - 'emits one test per gate cell', 'the deferred-prompt → prompt() → userChoice chain', 'the iOS Safari manual-metadata branch (apple-touch-icon, apple-mobile-web-app-capable)', 'the post-install (display-mode: standalone) MQ assertion', plus 'a Playwright spec file... plus a coverage matrix' - well beyond naming a domain with some actions.

3 / 3

Completeness

Explicitly answers both what (detailed four-stage test-suite emission + coverage matrix output) and when ('Use when a PWA's manifest, icons, or install handler change, or when install conversion drops and it is unclear which install stage users fall out at').

3 / 3

Trigger Term Quality

The 'Use when' clause uses natural terms a user would say - 'PWA's manifest, icons, or install handler change, or when install conversion drops' - alongside recognizable terms like 'Add-to-Home-Screen' and 'install-flow'; good coverage despite some technical jargon in the body.

3 / 3

Distinctiveness Conflict Risk

Occupies a clear niche (per-PWA Add-to-Home-Screen / install-flow test suite) with distinct triggers and explicit differentiation from the sibling 'pwa-install-flow-tests' wrapper, making wrong-skill activation unlikely.

3 / 3

Total

12

/

12

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