Simple English
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
SayIt 發版流程編排 — 起草 CHANGELOG、同步 5 語系升級彈窗、對齊 upgradeNoticeItemCount、最後呼叫 ./scripts/release.sh。當使用者說「準備發新版」「要 release vX.Y.Z」「準備 release v0.10.0」「要發版了」「更新…
$ npx skills add chenjackle45/SayIt --skill sayit-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install chenjackle45/SayIt sayit-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/sayit-release .claude/skills/sayit-release && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .claude/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add chenjackle45/SayIt --skill sayit-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install chenjackle45/SayIt sayit-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/sayit-release .agents/skills/sayit-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .agents/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add chenjackle45/SayIt --skill sayit-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install chenjackle45/SayIt sayit-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/sayit-release .cursor/skills/sayit-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .cursor/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/chenjackle45/SayIt.git --path .claude/skills/sayit-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add chenjackle45/SayIt --skill sayit-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install chenjackle45/SayIt sayit-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/sayit-release .gemini/skills/sayit-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .gemini/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install chenjackle45/SayIt sayit-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add chenjackle45/SayIt --skill sayit-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/sayit-release .github/skills/sayit-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .github/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add chenjackle45/SayIt --skill sayit-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install chenjackle45/SayIt sayit-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/chenjackle45/SayIt.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/sayit-release .opencode/skills/sayit-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sayit-release" agent skill from https://github.com/chenjackle45/SayIt/tree/main/.claude/skills/sayit-release into .opencode/skills/sayit-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sayit-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sayit-releaseSayIt 發版流程編排 — 起草 CHANGELOG、同步 5 語系升級彈窗、對齊 upgradeNoticeItemCount、最後呼叫 ./scripts/release.sh。當使用者說「準備發新版」「要 release vX.Y.Z」「準備 release v0.10.0」「要發版了」「更新…
Sayit Release is an agent skill from chenjackle45/SayIt. SayIt 發版流程編排 — 起草 CHANGELOG、同步 5 語系升級彈窗、對齊 upgradeNoticeItemCount、最後呼叫 ./scripts/release.sh。當使用者說「準備發新版」「要 release vX.Y.Z」「準備 release v0.10.0」「要發版了」「更新 CHANGELOG」「要更新升級彈窗」「同步多語系升級提示」之類的話時必須觸發;即使對方沒講「sayit-release」這幾個字、只說「我們來發 v0.11.0」也要觸發。負責 release.sh 之前的所有準備工作,呼叫 release.sh 前一定要先取得使用者明確同意。
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bb32b61. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitrgjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sayit Release loads about 2k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 526 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from chenjackle45/SayIt at commit bb32b61, republished under its MIT licence (© chenjackle45). 526 words, ~1,987 tokens.
.claude/skills/sayit-release/SKILL.md (or your agent's skills folder).這個 skill 編排 SayIt 從「準備發新版」到「呼叫 release.sh」之間的所有準備工作。release.sh 自身負責 4 點版本號 bump、commit、tag、push;這個 skill 負責把 release.sh 需要的前置條件全部準備好,並產生使用者體感得到的 release notes(CHANGELOG)和升級彈窗(5 語系 upgradeNotice)。
release.sh 的 guard 設計(working tree 乾淨、CHANGELOG 含目標版本區塊、tag 不存在、不在 detached HEAD)讓它一定能 idempotent 地完成或乾淨地失敗。skill 不繞過這些 guard、也不重做 release.sh 已經會做的事,只負責生產 release.sh 需要的「材料」。這個分工讓兩邊各自單純:skill 出錯不會誤觸 push;release.sh 改邏輯不會牽連到內容生成。
使用者:「準備發 v0.11.0」
│
▼
① 對齊版本號參數(X.Y.Z 是什麼?建議下一版)
│
▼
② 蒐集材料(git log 上一個 tag..HEAD、git status)
│
▼
③ 起草 CHANGELOG(分類 → 寫入頂部 → 等使用者遷訂)
│
▼
④ 起草 upgradeNotice(詢問亮點 → zh-TW → 翻譯 4 語 → 同步 itemCount)
│
▼
⑤ Sanity check(5 語系 key 對齊、itemCount 對得上、CHANGELOG 含目標版本區塊)
│
▼
⑥ 詢問使用者「要跑 release.sh 嗎?」
│
│ 使用者明確同意(「跑」「部署」「go」「發吧」之類)
▼
⑦ 跑 ./scripts/release.sh X.Y.Z(只在使用者明確同意時跑)在做任何事情之前先確定目標版本號 X.Y.Z。
讀取當前版本:
jq -r .version /Users/jackle/workspace/say-it/src-tauri/tauri.conf.json如果使用者已經在指令裡明說(「發 v0.11.0」),直接用。如果沒明說,用 semver 規則推薦:
把推薦版本號告訴使用者,等他確認或修改。版本號未確認前不要往下走。
兩件事並行做:
# 上一個 tag 到目前的 commit
git -C /Users/jackle/workspace/say-it log "$(git -C /Users/jackle/workspace/say-it describe --tags --abbrev=0)..HEAD" --no-merges --pretty='%h %s'
# 確認 working tree 狀態
git -C /Users/jackle/workspace/say-it status --short如果 working tree 不乾淨,先告知使用者「目前有 N 個未 commit 變更,release.sh 會擋下來,要先處理」。讓他決定是先 commit 那些變更、還是先繼續 skill 流程(變更可能會被一起包進這次 release)。
CHANGELOG.md 在專案根目錄,格式固定。
## [X.Y.Z] - YYYY-MM-DD日期用今天的日期(執行時取 date +%Y-%m-%d,不要寫死)。
只用三個分類:
| 分類 | 何時放這裡 |
|---|---|
### Added | 新功能、新介面、新檔案、新支援 |
### Fixed | bug fix、錯誤行為修正 |
### Improved | 效能優化、重構、開發體驗(DX)改進、CI/CD 升級 |
不用 ### Changed / ### Deprecated / ### Removed 這些 keep-a-changelog 的其他分類,SayIt 的 CHANGELOG 慣例只用上面三個。
| commit prefix | 分類 |
|---|---|
feat: feat(*): | Added |
fix: fix(*): | Fixed |
refactor: perf: chore(ci): chore(deps): | Improved |
docs: chore: test: | 不寫進 CHANGELOG(內部變更,使用者無感) |
例外:如果 chore 的內容其實使用者有感(例如「同步多語系」「修預設值」),仍要寫進 CHANGELOG,分類取決於影響面。
每條 bullet 的結構:
- [簡述使用者感受到的事]:[為什麼出現問題或為什麼這樣設計],[實際做的事和取捨](#issue)範例:
- Gemini 2.5 系列做 AI 整理時長轉錄文字被截斷的問題(#23、#34):根因是 Gemini 把 thinking tokens 計入 `maxOutputTokens` 配額,原本對所有 provider 統一給 2048 token 預算被 thinking 吃掉一部分後不夠用。改為 per-provider 預設:Gemini / OpenAI 16384、Anthropic / Groq 8192(後者模型上限 8192,給 16384 會被 API reject)注意三件事:
寫在 CHANGELOG.md 的 # Changelog 標題之下,緊接著現有最新版本之前。
# Changelog
SayIt 版本更新紀錄。
## [X.Y.Z] - YYYY-MM-DD ← 寫在這裡
### Added
- ...
### Fixed
- ...
### Improved
- ...
## [上一個版本] - ... ← 已存在寫完先把草稿展示給使用者,不要直接寫進檔案。等使用者說「OK」或「改 X」再實際 Edit 寫入。
理由:CHANGELOG 是面向使用者的文案,每個發版的人對「什麼算亮點、用什麼語氣、要不要提技術細節」都有不同直覺,先給使用者看草稿可以避免一改再改。
升級彈窗由 Dashboard 啟動時 consumeUpgradeNotice() 觸發,比對 lastSeenVersion(存在 tauri-plugin-store)和 __APP_VERSION__(build-time 從 package.json 注入)。不相等就顯示。
需要動 7 個檔案:
src/MainApp.vue:upgradeNoticeItemCount 常數(控制顯示幾個 item)src/i18n/locales/zh-TW.json:mainView.upgradeNotice 區塊src/i18n/locales/zh-CN.json:同上src/i18n/locales/en.json:同上src/i18n/locales/ja.json:同上src/i18n/locales/ko.json:同上每次發版只展示 1-3 個本版最有感的亮點。亮點要從 CHANGELOG 篩選,不是把 CHANGELOG 全貼進來。判準:
每個 item 的寫法:
[亮點主題冒號]:[使用者場景 + 之前的問題 + 現在的體驗]使用者只寫 zh-TW,skill 自動翻 4 種。不要叫使用者寫 5 種。
| 語系 | 語感方向 | 注意 |
|---|---|---|
| zh-TW | 口語、用日常詞,如「剪貼簿」「貼上」「設定」 | 標點全形 |
| zh-CN | 簡體 + 中國大陸用語:「设置」(不是「設定」)、「粘贴」(不是「貼上」)、「连接」(不是「連線」) | 全形標點 |
| en | plain English、技術細節保留,避免 marketing 腔 | 用 em-dash — 連接補述 |
| ja | 丁寧体(です・ます調)、技術文書風 | 全形標點,専門用語保留英文 |
| ko | -합니다 体、技術用語自然 | 半形標點 + 空格 |
-니다/-습니다 結構① 詢問使用者本版 1-3 個亮點主題
② 使用者用 zh-TW 描述(一兩句話即可)
③ skill 把 zh-TW 整理成「主題冒號 + 使用者場景 + why + how」格式
④ skill 翻譯 4 語系(zh-CN / en / ja / ko)
⑤ 把整組 upgradeNotice(5 語系 × N 個 item)展示給使用者遷訂
⑥ 使用者 OK 後實際 Edit 6 個檔案:
- 5 個 .json 的 mainView.upgradeNotice 區塊
- MainApp.vue 的 upgradeNoticeItemCount每次發版只保留新版本的 item,不要累積上一版的。理由:
所以 Edit 時:
title + item1..itemN + dismissitem3..item10 整批刪掉MainApp.vue 的 upgradeNoticeItemCount 改成 N實際呼叫 release.sh 之前確認三件事,不對就回頭修:
# 1. 5 個 .json 的 upgradeNotice 區塊都對齊到 N 個 item + title + dismiss
rg -n '"upgradeNotice"' /Users/jackle/workspace/say-it/src/i18n/locales/ -A $((N+2))
# 2. MainApp.vue 的 itemCount 等於 N
rg -n 'upgradeNoticeItemCount = ' /Users/jackle/workspace/say-it/src/MainApp.vue
# 3. CHANGELOG.md 含 [X.Y.Z] 區塊
rg -n "^## \[X.Y.Z\]" /Users/jackle/workspace/say-it/CHANGELOG.md任何一項對不上,回去把它修好再走步驟 ⑥。
不要自動跑 release.sh。用 AskUserQuestion 問使用者:
只有第一個選項才往下跑步驟 ⑦。
cd /Users/jackle/workspace/say-it && ./scripts/release.sh X.Y.Z| 訊息 | 原因 | 處理方式 |
|---|---|---|
CHANGELOG.md 缺少 vX.Y.Z 的紀錄 | 步驟 ③ 沒寫進去 | 回到步驟 ③ |
有未 commit 的變更 | 之前有殘留 | 提示使用者「skill 改的檔案還沒 commit,跑 release 之前要先 commit」並協助 git add + git commit |
tag vX.Y.Z 已存在 | 版本號用過了 | 提示使用者要不同版本號 |
目前不在 git branch 上 | detached HEAD | 提示 git switch main |
注意:skill 完成步驟 ④ 的 Edit 後,這些變更需要先 commit 才能跑 release.sh。skill 在步驟 ⑥ 應該主動建議「我已經改了 CHANGELOG.md / 5 個 i18n .json / MainApp.vue 共 7 個檔,要不要我 commit 起來?」,使用者同意後再 commit、再進步驟 ⑦。
docs: add CHANGELOG entry for vX.Y.Z
chore: update upgradeNotice for vX.Y.Z highlights或一個合併 commit:
docs(release): prepare vX.Y.Z release notes
- CHANGELOG.md: add vX.Y.Z section
- i18n: update upgradeNotice for 5 locales
- MainApp.vue: bump upgradeNoticeItemCount to NCargo.lock 是 release.sh 自動處理的(透過 cargo build 同步 sayit crate 版本)。skill 不要手動編輯 Cargo.lock,那是 hard-block 的保護檔案。
主要發版從 main 出。如果使用者在 feature branch 上跑這個 skill,先確認意圖:
CHANGELOG 標題的日期應該等於今天日期,不是亮點被開發的日期。執行時取 date +%Y-%m-%d,不要寫死字串。
修改完 7 個檔案(CHANGELOG + 5 個 .json + MainApp.vue),用步驟 ⑤ 的 sanity check 命令交叉驗證一次。CLAUDE.md 規定「同時修改多個相關文件時必須交叉驗證」,這一步是硬性的。
每次觸發此 skill 都遵守 CLAUDE.md 的語音通知規範:開始時 say、執行中 say、完成前 say。內容反映當前任務(「我來起草 CHANGELOG」「翻譯 4 語完成」「等你決定要不要跑 release.sh」),20 字以內。
© chenjackle45, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/sayit-release of chenjackle45/SayIt.
Open the folder on GitHubat commit bb32b61
Sayit Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sayit Release this skillchenjackle45/SayIt | 114 | — | ~2k | Automated safety check: Pass | MIT | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| StarRocks Release NotesStarRocks/starrocks | 12k | — | ~1.9k | Automated safety check: Notes | Apache-2.0 | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| React Router Release Notes Prepremix-run/react-router | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 |
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
StarRocks/starrocks
Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
remix-run/react-router
Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
PrefectHQ/fastmcp
Cut a FastMCP release end to end. An agent skill from PrefectHQ/fastmcp.
chenjackle45/SayIt
Assess NFRs like performance security and reliability. An agent skill from chenjackle45/SayIt.
chenjackle45/SayIt
Generate failing acceptance tests using TDD cycle. An agent skill from chenjackle45/SayIt.
chenjackle45/SayIt
Expand test automation coverage for codebase. An agent skill from chenjackle45/SayIt.
chenjackle45/SayIt
Scaffold CI/CD quality pipeline with test execution. An agent skill from chenjackle45/SayIt.
chenjackle45/SayIt
Initialize test framework with Playwright or Cypress. An agent skill from chenjackle45/SayIt.
chenjackle45/SayIt
Assess NFRs like performance security and reliability. An agent skill from chenjackle45/SayIt.
Categories
SayIt 發版流程編排 — 起草 CHANGELOG、同步 5 語系升級彈窗、對齊 upgradeNoticeItemCount、最後呼叫 ./scripts/release.sh。當使用者說「準備發新版」「要 release vX.Y.Z」「準備 release v0.10.0」「要發版了」「更新…. Sayit Release is an agent skill from chenjackle45/SayIt.
Sayit Release fits situations like: tasks that involve Changelog and release notes.
Run `npx skills add chenjackle45/SayIt --skill sayit-release -a claude-code`. Or copy the skill folder (.claude/skills/sayit-release in chenjackle45/SayIt) into .claude/skills/sayit-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add chenjackle45/SayIt --skill sayit-release -a codex`. Or copy the skill folder (.claude/skills/sayit-release in chenjackle45/SayIt) into .agents/skills/sayit-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add chenjackle45/SayIt --skill sayit-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sayit-release, .gemini/skills/sayit-release, .github/skills/sayit-release and .opencode/skills/sayit-release in your project.
Going by SKILL.md and its folder, Sayit Release needs the command-line tools its instructions call (git, rg and jq).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sayit Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sayit Release: Simple English (moeru-ai/airi, 50k stars), StarRocks Release Notes (StarRocks/starrocks, 12k stars), Cutting A Release (TriliumNext/Trilium, 38k stars) and React Router Release Notes Prep (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
chenjackle45 (a GitHub user) maintains it in chenjackle45/SayIt, which has 114 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 30, 2026.
Source: chenjackle45/SayIt on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.