Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A high-quality, highly actionable skill body: every section gives executable, tool-specific guidance and it deliberately separates what the capturer already handles from what the user must do, avoiding wasted effort. Weaknesses are modest: some repetition of the freeze-the-data headline, no explicit 'verify determinism by re-running' checkpoint, and specialized whole-page/Next.js content that could be split into a reference file.
Suggestions
State the freeze-the-data headline once (in checklist step 1) and cut the duplicate 'The headline' paragraph in the intro to a single pointer sentence — the message currently appears twice in nearly the same words.
Add a short closing verification step, e.g. run the visual suite twice (or with --only-changed) and confirm zero diffs before considering setup complete — the workflow ends at 'what to do' without a way to confirm it worked.
Move the 'Testing whole pages' / Next.js App Router material into a references/ file (e.g. pages.md) with a one-line pointer from SKILL.md, keeping the main file focused on the component-test checklist.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with non-obvious, tool-specific knowledge (what the capturer neutralizes, the Vitest 4.1 auto-snapshot timing vs afterEach, the __UI_VERIFY__ global signal) and explains nothing Claude already knows. But there is more than minor padding: the 'freeze the data is the highest-value step' message is stated twice in near-identical words (the 'headline' paragraph and checklist step 1), and several long parenthetical asides could be trimmed. | 4 / 5 |
Actionability | Fully executable, copy-paste-ready code throughout: the vitest.config.ts plugin setup, the setupFiles CSS/font loading, a complete test with render/await expect.element/takeSnapshot, fake-timer clock pinning, vi.mock fixture injection, the isUIVerify() helper, MotionGlobalConfig.skipAnimations, and preloadFonts(). The examples cover the common component case and the page case. | 5 / 5 |
Workflow Clarity | A clear, prioritized sequence: integrate the plugin → load global CSS/fonts in setup → freeze the data (explicitly 'do it first, step 1') → clock → infinite JS animations → randomness → dynamic layout, with anti-patterns closing the loop. Some diagnostic checkpoints exist (check document.fonts/FontFace.status, the preloadFonts() fallback, the could-not-archive warning), but there is no explicit verification step such as running the suite twice to confirm determinism. | 4 / 5 |
Progressive Disclosure | No bundle files exist (no references/, scripts/, or assets/ directories), so all content is inline in one SKILL.md. Section headers are clear and well-ordered, and the one external pointer (examples/vitest on GitHub) is clearly signaled rather than buried. The whole-pages and Next.js App Router sections (~25 lines of specialized guidance) are natural candidates for a reference file, which is a minor organization gap rather than a structural flaw. | 4 / 5 |
Total | 17 / 20 Passed |