Release Announcement logo

Release Announcement

CommunityPopular
NanmiCoder
release-announcement

从本项目最新的 release-notes Markdown 制作微信群发布短文案与竖版长图,核验贡献者 GitHub ID 并嵌入真实头像。用于版本发布宣传,不负责创建或发布 GitHub Release。

Overview

PublisherNanmiCoder
Repositorycc-haha
Skill namerelease-announcement
Stars
15K
Forks
8.6K
Bundled files
5
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by NanmiCoder on GitHub. Read the source before you install it.

Installation

Install the Release Announcement AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/NanmiCoder/cc-haha/tree/main/.agents/skills/release-announcement
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/NanmiCoder/cc-haha.git /tmp/cc-haha
mkdir -p .claude/skills
cp -r /tmp/cc-haha/.agents/skills/release-announcement .claude/skills/release-announcement
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Release Announcement in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Release Announcement on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Release Announcement is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Release announcement

在本仓库调用 $release-announcement 时,交付一张可发微信群的 PNG 长图和一段很短的群文案。默认使用 版式与文案要求;用户另有要求时以用户要求为准。

调用方式:Codex 使用 $release-announcement;Claude Code Haha 的终端输入 /release-announcement。这两个工具都从项目的 .agents/skills/ 读取同一份技能。

工作流

  1. 在仓库根目录运行 python3 .agents/skills/release-announcement/scripts/release_poster.py scan --repo . --out artifacts/release-posters/latest-scan.json。它按语义版本比较工作区、当前 Git 历史、本地 main 和已有的 origin/main,不切换分支、不抓取远程。读取 JSON 中的中文发布说明、来源和 @GitHubID 提及;credit_candidate 仅表示有明确署名格式,仍需核对上下文。如果来源不是工作区文件,明确告知用户。 复测旧版本时加 --version 0.6.6 并使用独立输出路径,避免覆盖最新版本的 scan 结果。
  2. 仅依据该版本的中文 release note 提炼主要功能和关键修复;纯修复版的 features 留空,纯功能版的 fixes 留空,绝不为了填版式虚构内容。有重要模型或供应商更新时可加一个简短区块。每条信息必须能追溯到原文,压缩表述时保留条件和边界。安装提醒只写原文确有的信息。不要把英文译文重复计数。
  3. 对 credit_candidate: true 的账号逐个核对发布说明里的贡献项;普通 @ID 提及(例如 PR reviewer)不算代码署名。render 会通过 GitHub 公共用户 API 校验 ID 并下载真实头像;无法核验时停止并报告,不能臆造头像、错配姓名,不能让图像生成模型重绘头像。正式生成不能使用 avatar_path 跳过核验。
  4. 按 数据格式 写 poster-spec.json,版本必须与 scan 结果一致。features 按用户价值排序,第一项会放进橙色首屏作为「本版重点」;其余在纸色区单列编号,修复与贡献者在墨色收尾区。运行 python3 .agents/skills/release-announcement/scripts/release_poster.py render --scan artifacts/release-posters/latest-scan.json --spec <poster-spec.json> --out <poster.png>。建议输出到 artifacts/release-posters/v<version>/,保留已有文件,文件名加版本或修订号。此脚本使用固定的编辑式视觉系统绘制准确中文和头像;不要用 imagegen 绘制正文。
  5. 写一段适合微信群的短文案,保存为同目录的 wechat-copy.txt:版本号 + 1 句主要变化 + 1 句感谢,具体细节交给图片。有本次明确署名的贡献者时感谢代码贡献;没有时只感谢反馈与支持,不暗示本版有特定群友提交。文案不要宣称未核实的下载地址或公开发布状态,也不要自动向群发送。若需要下载入口,先检查对应 GitHub Release 是否存在。
  6. 打开原图和缩至 390px 宽的手机预览,检查首屏能否读到第一项功能、正文可读性、长标题与链接换行、头像和 ID 对应。纯修复版直接进入修复区,不出现空功能区。最后提供 PNG、短文案、所用 release note 来源和任何未核实项。生成物放在被 Git 忽略的 artifacts/,不要提交生成图、头像缓存或中间 JSON。

图像与环境

默认采用「瑞士大字」版式:信号橙首屏放产品名、超大版本号和本版重点,纸色区放其余功能与补充变化,墨色区收尾放修复、贡献者和安装提示,详见 视觉规则。主要正文 36px,单列排版。默认不需要插画。用户明确想增加插画时,可用 imagegen 只生成无字装饰素材,再用脚本绘制全部文字与真实头像;不能让装饰占去首屏。

scan 只用 Python 标准库;render 需要 Pillow 和可用的中文系统字体。缺依赖时先查看项目已有运行环境,不为一次制图修改生产依赖。GitHub 头像获取是公开只读请求;失败时给出具体账号和原因。

修改模板后运行 python3 -m unittest discover -s .agents/skills/release-announcement/scripts -p 'test_*.py' -v(需要同样的 Pillow 和中文字体)。测试覆盖纯功能/纯修复、首项落在手机首屏、段落末行孤字、长文本与超长版本号边界、离线贡献者、文字重叠和各色带对比度;再用真实 release note 渲染并检查手机预览。美术调整必须落到脚本和本目录的参考说明中,不能只改变一次生成时的提示词。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Release Announcement AI skill do?

从本项目最新的 release-notes Markdown 制作微信群发布短文案与竖版长图,核验贡献者 GitHub ID 并嵌入真实头像。用于版本发布宣传,不负责创建或发布 GitHub Release。

Why use Release Announcement on TypingMind?

Because you install it once and use it with any model. Release Announcement is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Release Announcement in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/NanmiCoder/cc-haha/tree/main/.agents/skills/release-announcement. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Release Announcement?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Release Announcement?

As many as you like. As long as a model supports skills, you can use Release Announcement with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Release Announcement AI skill free?

Yes. It is published on GitHub by NanmiCoder under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇