CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/add-to-homescreen-flow-tests

The single install-flow skill: the reference contract for the PWA install flow (installability gate fields, `beforeinstallprompt` handshake, per-platform paths - Android WebAPK / iOS Share menu / Firefox no-op - and the `display-mode` post-install signal, in references/install-flow-reference.md) plus the build-an-X workflow that emits the Add-to-Home-Screen suite. Walks the four-stage timeline, emitting 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`) per [web.dev/learn/pwa/installation][learn-pwa], and the post-install `(display-mode: standalone)` MQ assertion. Output: a Playwright spec with per-stage cells plus a coverage matrix. Use when a PWA's manifest, icons, or install handler change, when install conversion drops at an unknown stage, or when triaging a flaky install assertion.

68

Quality

85%

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

71%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 strongly actionable, well-sequenced builder skill with an excellent reference split and honest limitations. Its main cost is token efficiency: repeated contract exposition and inline spec code that overlaps the bundle's own generic recipes inflate the body without adding guidance.

Suggestions

State the four-stage contract and the pointer to references/install-flow-reference.md once in the Overview; drop the repeats in the Composes list and References section.

Inline only the per-PWA-distinguishing parts of the Playwright specs and defer the generic cells (manifest field checks, iOS metadata, display-mode MQ) to references/install-flow-tests.md, which already contains them.

Replace the described-but-not-shown test hooks with actual code: the Playwright init script that captures beforeinstallprompt and the fixture mock for __triggerInstall, so Steps 3–4 are copy-paste ready.

DimensionReasoningScore

Conciseness

The four-stage contract and the pointer to references/install-flow-reference.md are repeated roughly four times (Overview ¶1, ¶2, the Composes list, and References), the 31-second engagement requirement and the apple-touch-icon rationale are each explained twice, and the ~60-line inline gate spec duplicates generic recipes already provided in references/install-flow-tests.md. Not 4 because the redundancy is more than minor trimming; not 2 because there is no padding that explains concepts Claude already knows — the excess is repetition, not tutorial prose.

3 / 5

Actionability

Steps 1–7 give concrete bash inventory commands and complete, executable Playwright specs. Not 5 because Step 3's alternative ('or use a Playwright init script that hooks the event') and Step 4's __triggerInstall fixture are described rather than shown, and the second prompt() test elides '// ... engagement + prompt as above ...', so those cells are not copy-paste ready.

4 / 5

Workflow Clarity

Seven clearly sequenced steps, a Step 1 facts-to-steps table, a worked example with expected cell counts and runtime, and a CI coverage gate ('CI gates on every matrix cell having a passing spec'). Not 5 because there is no explicit run-and-verify or fix-and-retry step inside the workflow itself — validation is left to CI outside the emitted procedure.

4 / 5

Progressive Disclosure

The body is a clear overview-plus-workflow that points to three real, one-level-deep bundle files, each cited with what it contains and when to consult it: the contract (references/install-flow-reference.md), the generic standalone recipes (references/install-flow-tests.md), and the full coverage matrix (references/install-suite.md). Verified against the actual bundle structure; the references nest no further.

5 / 5

Total

16

/

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 highly specific, complete description with explicit what/when framing and concrete trigger phrases. Its only weakness is density: natural trigger terms are woven into long technical exposition, which slightly obscures the phrases a user would naturally say.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'emitting one test per gate cell', 'the deferred-prompt → prompt() → userChoice chain', 'the iOS Safari manual-metadata branch', 'Output: a Playwright spec with per-stage cells plus a coverage matrix' — with comprehensive coverage of the skill's outputs. Not 4 because the action list covers every stage of the skill's output rather than having minor gaps.

5 / 5

Completeness

Explicitly answers both: what — 'Output: a Playwright spec with per-stage cells plus a coverage matrix' — and when — 'Use when a PWA's manifest, icons, or install handler change, when install conversion drops at an unknown stage, or when triaging a flaky install assertion'. Both are concrete and trigger-phrased, matching the top anchor exactly.

5 / 5

Trigger Term Quality

Includes natural terms users would say — 'PWA', 'manifest', 'icons', 'install handler change', 'install conversion drops', 'flaky install assertion', 'Add-to-Home-Screen' — but they sit inside dense technical chains ('installability gate fields', 'deferred-prompt → prompt() → userChoice chain') and common phrasings like 'installable', 'install prompt not showing', or 'web app manifest' are absent. Not 5 because synonym/variation coverage is incomplete; not 3 because the natural terms present are the ones a user with this problem would actually say.

4 / 5

Distinctiveness Conflict Risk

Clear niche (PWA install-flow test generation) with distinct triggers (manifest/icon/handler changes, install conversion, flaky install assertions) that don't overlap the sibling skills' surfaces (service-worker lifecycle, offline fallback). Not 4 because no meaningful overlap risk with closely related skills is present.

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