What problem does it solve? Creating animated GIFs that meet Slack's strict size, dimension, and frame-rate constraints requires manual tuning of colors, FPS, and optimization settings, which is tedious and error-prone. ## Core Features & Use Cases - GIF Assembly and Optimization: Build frame-by-frame animations with GIFBuilder and save them with color reduction, duplicate-frame removal, and emoji-specific optimization. - Validation Utilities: Check whether a finished GIF passes Slack requirements (dimensions, size, duration) with validate_gif and is_slack_ready. - Animation Helpers: Apply easing functions (bounce, elastic, back_out) and frame composers (gradients, stars, text) to produce polished motion effects like shake, pulse, spin, and particle bursts. - Use Case: A user asks for a 128x128 animated emoji of a bouncing star for their Slack workspace; the skill generates frames with PIL, applies bounce easing, and saves an optimized GIF under the size limit. ## Quick Start Ask the agent to make an animated Slack emoji GIF of a pulsing heart at 128x128 and validate it meets Slack requirements.