Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
75
66%
Does it follow best practices?
Impact
93%
4.65xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/all-skills/skills/slack-gif-creator/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a solid description that clearly identifies its niche (Slack-optimized animated GIFs), provides explicit trigger guidance with a realistic user phrase example, and is distinctly scoped. The main weakness is that the capability description leans slightly toward technical/abstract language ('composable animation primitives', 'validators for size constraints') rather than listing concrete user-facing actions.
Suggestions
Replace abstract terms like 'composable animation primitives' with concrete actions such as 'create frame-by-frame animations, apply motion effects, loop sequences, and export optimized .gif files'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (animated GIFs for Slack) and mentions some capabilities (validators for size constraints, composable animation primitives), but doesn't list multiple concrete actions like 'create frame sequences, apply easing functions, resize to Slack limits, export as .gif'. | 2 / 3 |
Completeness | Clearly answers both what ('toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives') and when ('when users request animated GIFs or emoji animations for Slack from descriptions like...'), with explicit trigger guidance. | 3 / 3 |
Trigger Term Quality | Includes strong natural trigger terms: 'animated GIFs', 'Slack', 'emoji animations', 'GIF', and even provides a realistic user phrase template ('make me a GIF for Slack of X doing Y'). Good coverage of terms users would naturally say. | 3 / 3 |
Distinctiveness Conflict Risk | Very clear niche: animated GIFs specifically for Slack with size constraints. The combination of 'animated GIF' + 'Slack' + 'emoji animations' creates a distinct trigger profile unlikely to conflict with general image generation or other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill excels at actionability with comprehensive, executable code examples for a rich animation toolkit. However, it severely suffers from being a monolithic reference document (~400+ lines) that should be split into a concise overview with references to detailed API docs. The validation workflow exists but isn't consistently enforced in examples, particularly for the critical 64KB emoji constraint.
Suggestions
Move the detailed API documentation for each animation primitive (shake, bounce, spin, pulse, fade, zoom, explode, wiggle, slide, flip, morph, move, kaleidoscope) into a separate PRIMITIVES.md reference file, keeping only 2-3 representative examples in SKILL.md
Move helper utilities documentation (text rendering, color management, visual effects, easing, frame composition) into a separate HELPERS.md file
Remove explanatory sentences Claude already knows, such as 'Smooth motion uses easing instead of linear interpolation' and 'Professional-looking GIFs often use cohesive color palettes'
Add explicit validation checkpoints to every composition example - especially for emoji GIFs, include a validate-then-fix loop rather than just a single check_slack_size call at the end
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~400+ lines, with extensive API documentation for every animation primitive that reads like a full library reference. Much of this could be in separate files. Phrases like 'Professional-looking GIFs often use cohesive color palettes' and 'Smooth motion uses easing instead of linear interpolation' explain concepts Claude already knows. | 1 / 3 |
Actionability | The skill provides fully executable, copy-paste ready code examples throughout, with concrete import paths, function signatures, parameter values, and complete composition patterns. The examples are specific and immediately usable. | 3 / 3 |
Workflow Clarity | The Philosophy section outlines a 5-step workflow and the optimization strategies provide clear sequences. However, validation is mentioned but not consistently integrated into the workflow examples - most composition patterns only add validation as an afterthought (only the first example calls check_slack_size), and there's no explicit feedback loop for the critical emoji size constraint despite acknowledging it's challenging. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of content with every animation primitive's full API documented inline. The toolkit references files like 'core/easing.py' and 'templates/shake.py' but doesn't leverage separate documentation files. The entire API reference for 13+ animation primitives plus helpers should be split into referenced files, with SKILL.md serving as an overview. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (648 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
7cc63f3
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.