Content
68%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 lean, largely actionable single-file skill whose strengths are non-obvious domain knowledge (zero-width space trick, crawler timeout, 2x retina specs) and concrete code for the common Next.js/@vercel/og case. Its weaknesses are an implicit rather than explicit workflow (no ordered steps or checkpoints beyond the final checklist) and a few non-executable code snippets (placeholder ImageResponse, await in a non-async handler).
Suggestions
Restructure the guidance as an explicit ordered workflow (1. add meta tags incl. zero-width og:title, 2. generate the 2400x1200 image, 3. serve via .png URL, 4. validate with the card validator) so the sequence and validation checkpoints are explicit rather than implied.
Fix the non-runnable snippets: replace 'new ImageResponse(/* ... */)' with a complete example and add 'async' to the pre-generated route handler that uses 'await' (or make it a comment), so all code is copy-paste executable.
Consider moving framework-specific variants (Express serving, pre-generation with a DB) into a references/ file linked from a short section, keeping SKILL.md as a tighter overview.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is efficient — a spec table with a 'Why' column, tight sections, and genuinely non-obvious content (the zero-width space trick, the ~5 second X crawler timeout) that Claude would not already know. Minor trimmable padding exists, e.g., the promotional footer 'Built for BondTerminal... See it in action', so it sits at anchor 4 rather than the fully lean anchor 5. | 4 / 5 |
Actionability | The meta-tag block and the @vercel/og GET handler are concrete and executable, but the Express snippet contains a placeholder 'new ImageResponse(/* ... */)' and the pre-generated route uses 'await' inside a non-async handler ('app.get('/og/:id.png', (req, res) => { const { ogImageData } = await db.get(req.params.id); ... })'), which would not run as written — mostly executable with minor gaps, matching anchor 4 rather than the copy-paste-ready anchor 5. | 4 / 5 |
Workflow Clarity | The section ordering (requirements, meta tags, dynamic generation, routes, checklist) implies a sequence and the checklist includes a validation URL ('Test: https://cards-dev.twitter.com/validator'), but there are no explicit ordered steps or inter-step checkpoints, and the choice ordering between static meta tags, on-demand, and pre-generated routes is left implicit — matching anchor 3 ('sequence present but checkpoints missing or implicit') rather than 4. | 3 / 5 |
Progressive Disclosure | A well-organized single-file skill with clear headers, a table, and a checklist, with all content on one level and no nested references. Framework-specific variants (Express route, pre-generation DB flow) are inlined where they could be split into reference files — good structure with minor organization gaps, matching anchor 4; there are no buried or nested references that would push it to 3. | 4 / 5 |
Total | 15 / 20 Passed |