Slack GIF 动图创作工具包
为 Slack 生成符合大小与尺寸约束的动画 GIF,覆盖消息动图与表情动图两类场景,自动校验 64KB 严格上限。
纯本地工具链:仅使用 PIL/imageio/numpy 生成 GIF,无网络请求、无凭证访问、无破坏性操作;依赖为常见开源库,声明了 MIT 许可。扣分点:SKILL.md 引用的 LICENSE.txt 未在证据中出现,来源归属与许可全文未核实;未提供安装沙箱或依赖锁定(未固定 pillow/imageio 版本)。
代码结构自洽,验证器与 GIFBuilder 的输入输出约定清晰,文件缺失等异常有可读的失败信息。扣分点:emoji 绘制强依赖 macOS 系统字体(Apple Color Emoji.ttc),非 macOS 环境多层回退后可能输出乱码或黑块且仅静默 except;多处裸 except 吞错;无测试、无边界用例说明,静态审查下无法确认关键路径可复现。
触发条件在 description 中明确(用户请求为 Slack 制作 GIF/emoji 动画),场景边界、消息 GIF 与 emoji GIF 的尺寸/大小约束交代详尽,并给出不适用的优化策略。扣分点:文档仅英文,未声明非支持环境(Windows/Linux 字体缺失);核心 emoji 渲染依赖 macOS 特有字体,对 FollowSkills 中文用户环境的适配性存疑。
文档分层良好:需求说明、工具结构、逐模块示例、优化策略、依赖安装说明齐备,命名一致。扣分点:无版本号与变更日志,无维护责任与更新路径说明,已知限制(字体依赖、平台差异)未在文档中披露,LICENSE 全文不可见。
工具覆盖从动画原语到约束校验的完整流程,emoji 64KB 严格限制的优化策略具体可用,相对手工制作有明显边际价值。扣分点:静态审查无法验证输出 GIF 确实达标;emoji 渲染在非 macOS 环境可能不可用,直接影响成果可用性。
代码即主要证据,函数级 docstring 与示例一致性可静态核对。扣分点:无测试套件、无 CI 证据、无第三方执行记录或示例输出,所有'符合 Slack 要求'的声明均无法独立复现,证据类型单一。
- emoji 绘制依赖 macOS 专属字体(Apple Color Emoji.ttc),在 Linux/Windows 上可能渲染为空白或乱码,且代码以裸 except 静默降级,使用前应先在小样帧上验证字体可用性。
- 依赖版本未固定(pillow/imageio/numpy),无依赖锁定文件,静态审查未执行任何代码,实际输出是否满足 Slack 限制需自行验证。
- 引用的 LICENSE.txt 未在本次证据中出现,许可全文与维护归属未经核实;该技能无版本号与更新路径,长期维护状态未知。
这个 Skill 能做什么,适合哪些场景?
这是 Mini-Agent 仓库中 mini_agent/skills/slack-gif-creator 目录下的一个技能,提供一套面向 Slack 的动画 GIF 制作工具包。它内置 Slack 的技术规范(消息 GIF 约 2MB / 480x480,表情 GIF 严格 64KB / 128x128),并配有尺寸与文件大小校验器。工具包由三部分组成:校验器、可组合的动画原语(抖动、弹跳、旋转、脉冲、淡入淡出、缩放、爆炸、滑动、翻转、变形、移动、万花筒等),以及可选的辅助工具(GIF 构建、文字描边、配色方案、粒子特效、缓动函数)。核心理念是提供积木而非固定配方,创作者可自由组合。技能随 Mini-Agent 仓库以 MIT 许可证分发,属于其中 15 个技能之一。
读取用户对 Slack 动图或表情动画的描述(如"给我做一个 X 做 Y 的 Slack GIF"),然后用 Python 代码调用工具包生成动画:通过 GIFBuilder 逐帧组装画面,用动画原语(shake、bounce、spin、pulse、fade、zoom、explode、wiggle、slide、flip、morph、move、kaleidoscope)生成帧序列,用 typography 模块渲染描边文字,用 color_palettes 取配色,用 easing 模块做平滑运动插值,最后调用 builder.save() 输出 GIF 并通过 check_slack_size、validate_dimensions、validate_gif 等校验器确认文件符合 Slack 的大小与尺寸限制;超限时按文档策略减少帧数、颜色数或分辨率后重试。
- 运营或社区管理者想为 Slack 频道制作一个480x480、15-20帧每秒的消息动图,且需要确保不超过2MB上传限制
- 开发者想为自己的 Slack 自定义表情制作128x128、严格小于64KB的动画 emoji,需要自动校验避免上传失败
- 设计师想快速试验抖动、弹跳、爆炸等动效组合来打磨某个表情动画的创意
- 任何在 Mini-Agent 环境中想用自然语言描述("做一个 X 做 Y 的 GIF")直接产出可用动图文件的用户
这个 Skill 有哪些优点和局限?
- 内置 Slack 官方约束的校验器,特别是表情 GIF 严格的 64KB 上限会在保存时自动警告
- 13 类可组合动画原语加缓动函数,灵活度高,不强制固定模板
- 针对表情 GIF 给出具体的压缩策略(10-15帧、32-48色、避免渐变)
- 纯 Python(pillow/imageio/numpy)实现,无额外服务或网络依赖
- 没有独立的测试套件或效果演示图佐证输出质量
- 文档未说明除仓库描述之外的维护状态或版本兼容性
- 表情 GIF 的 64KB 限制仍然困难,需要人工迭代调参
- 仅在 Mini-Agent/Agent Skills 语境下有安装说明,独立使用需自行搭建 Python 环境
如何安装这个 Skill?
该技能随 Mini-Agent 仓库分发。安装整个集合的方式:
- 安装 uv:curl -LsSf https://astral.sh/uv/install.sh | sh
- 快速模式:uv tool install git+https://github.com/MiniMax-AI/Mini-Agent.git,再运行官方 setup 脚本创建配置,并在 ~/.mini-agent/config/config.yaml 填入 MiniMax API Key 与 api_base
- 开发模式:git clone https://github.com/MiniMax-AI/Mini-Agent.git 后 uv sync,并执行 git submodule update --init --recursive 初始化 Claude Skills
技能文件位于 mini_agent/skills/slack-gif-creator/。仓库未单独说明该技能的独立安装步骤;其 Python 依赖为 pillow、imageio、numpy(pip install pillow imageio numpy)。
如何使用这个 Skill?
在 Mini-Agent 中用自然语言触发,例如:"给我做一个 Slack 表情 GIF:一个 😱 emoji 在颤抖"。该技能会在请求 Slack 动图时自动应用。也可以直接把 mini_agent/skills/slack-gif-creator/ 作为 Python 工具库使用:from core.gif_builder import GIFBuilder 创建构建器,调用 templates.shake.create_shake_animation 等原语生成帧,逐帧 builder.add_frame(),最后 builder.save('emoji.gif', num_colors=48, optimize_for_emoji=True) 并用 check_slack_size 验证大小。
这个 Skill 与同类方案有什么区别?
SKILL.md 参考链接中提到 Anthropic 官方的 anthropics/skills 技能集合作为同类生态,但源材料未提供可与本技能直接对比的具体竞品功能信息。