CtrlK
BlogDocsLog inGet started
Tessl Logo

slack-gif-creator

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

4.65x
Quality

66%

Does it follow best practices?

Impact

93%

4.65x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./plugins/all-skills/skills/slack-gif-creator/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

42%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The skill provides highly actionable, executable code examples for creating Slack-optimized GIFs, which is its primary strength. However, it is severely over-long and monolithic - documenting every animation primitive inline creates a massive token burden that could be avoided with progressive disclosure to separate reference files. The workflow includes validation tools but doesn't consistently enforce validation checkpoints in examples, which is important given Slack's strict size constraints.

Suggestions

Move individual animation primitive documentation (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 the main SKILL.md

Remove explanatory text Claude already knows (what easing functions are, what RGB tuples are, the Philosophy section) to reduce token count by ~30%

Add explicit validation checkpoints to every composition example - especially for emoji GIFs, make `check_slack_size()` a mandatory step rather than optional

Create a separate HELPERS.md for the utility documentation (text rendering, color management, visual effects, frame composition) and reference it from the main skill

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~400+ lines. It exhaustively documents every animation primitive with full API signatures and examples, much of which Claude could infer from function names and types. The extensive API catalog (shake, bounce, spin, pulse, fade, zoom, explode, wiggle, slide, flip, morph, move, kaleidoscope) reads like auto-generated documentation rather than a concise skill. Sections like 'Philosophy' and explanations of what easing functions do are unnecessary for Claude.

1 / 3

Actionability

The skill provides fully executable, copy-paste ready Python code throughout. Every animation primitive has concrete import paths, function calls with specific parameters, and realistic examples. The composition patterns show complete working examples with GIFBuilder setup through save and validation.

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 - the examples sometimes include validation calls and sometimes don't. For emoji GIFs where the 64KB limit is strict and destructive (wasted work if exceeded), validation should be more prominently integrated as a mandatory checkpoint in every example, not just mentioned occasionally.

2 / 3

Progressive Disclosure

This is a monolithic wall of content with no references to external files despite having a bundle structure (core/, templates/ directories implied by imports). All 13+ animation primitives are documented inline with full examples when they could be referenced as separate files. The content would benefit enormously from a concise overview with references to detailed API docs for each primitive.

1 / 3

Total

7

/

12

Passed

Description

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 example phrase, and is distinctive enough to avoid conflicts. The main weakness is that the capability description leans slightly toward technical jargon ('composable animation primitives', 'validators for size constraints') rather than listing concrete user-facing actions.

Suggestions

Replace technical terms like 'composable animation primitives' and 'validators for size constraints' with concrete actions such as 'create frame-by-frame animations, apply effects, ensure files meet Slack's size and dimension limits'.

DimensionReasoningScore

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 user-facing actions like 'create frame-by-frame animations, resize to Slack limits, export as .gif'.

2 / 3

Completeness

Clearly answers both 'what' (toolkit for creating animated GIFs with validators and animation primitives) and 'when' (explicitly states 'This skill applies when users request animated GIFs or emoji animations for Slack' with an example trigger phrase).

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 optimized for Slack with size constraints. The combination of 'animated GIF' + 'Slack' + 'emoji animations' creates a distinct trigger profile unlikely to conflict with general image or animation skills.

3 / 3

Total

11

/

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.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

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

Repository
davepoon/buildwithclaude
Reviewed

Table of Contents

Is this your skill?

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.