Release Notes Generation
Skill2 starsChanged 4 months agoMITView on GitHub
Mandatory fast-mcp-telegram release workflow. Use when the user says release, merge and release, bump version, tag, gh release, PyPI publish, or Telegram version announcement.
- Reads credentials
- Commits and pushes
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- leshchenko1979/fast-mcp-telegramedited, first seen Jul 28, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- leshchenko1979/fast-mcp-telegram★ 5099% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .cursor/rules/code-optimization.mdcCursor rule
- .cursor/rules/docs-plain-language.mdcCursor rule
- .cursor/rules/general.mdcCursor rule
- .cursor/rules/implementation-workflow.mdcCursor rule
- .cursor/rules/memory-bank.mdcCursor rule
- Clean Up Docs PushSkill
- feature-developmentSkill
- Remove Old LogsSkill
- sourcery-pr-cycleSkill
- telegram-patternsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 10 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Update docs (section 3) if needed
- Distinctive: line 19
Verify CI/checks green on release tag or master commit (section 6 gate)
- Distinctive: line 41
Only include changes merged to master (memory bank may mention other branches).
- Distinctive: line 53
Treat commit messages as hints.
- Distinctive: line 65
Before draft notes or version bump, document new/changed behavior on master:
- Very specific: line 79
Update and commit (or include in the release PR) before publishing.
- Distinctive: line 111
Do not repeat the GitHub release title as the first body line.
- Distinctive: line 114
No emojis in GitHub notes.
- Distinctive: line 115
Verify notes match code and section 3 docs before shipping.
- Very specific: line 147
CI gate (required before Telegram): After gh release create, confirm GitHub Actions / checks are green on the release tag or the master …
- Distinctive: line 156
Do not post Telegram until both (a) the GitHub release is published and (b) CI is green.
- Distinctive: line 160
Only after section 6: GitHub release published and CI green (unless user explicitly overrides).
- Very specific: line 167
Use fixed chat_id values; do not rely on find_chats unless a target moved or posting fails with “chat not found”.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release Notes Generation
Mandatory workflow for fast-mcp-telegram releases. Release notes belong on GitHub only — never commit RELEASE_NOTES*, temp note files, or similar to git.
Workflow overview
- Memory bank + git on
master→ user-facing diff analysis - Update docs (section 3) if needed
- Classify scope (section 4) → draft notes (section 5) → review gate when required
uv version→ commit → tag → push →gh release create→gh release view- Verify CI/checks green on release tag or master commit (section 6 gate)
- Telegram HTML (section 7) only after release is published and CI is green (or user explicitly overrides)
1. Context
Memory bank — completed work since last release:
cat .cursor/memory-bank/progress.md
cat .cursor/memory-bank/activeContext.mdFocus on dated entries; cross-check with git.
Git since last major tag (X.Y.0):
git tag --sort=-version:refname | grep -E '^[0-9]+\.[0-9]+\.0$' | head -1
git log --oneline <last-major-tag>..HEAD
git log --oneline --all --graph --decorate | head -40Only include changes merged to master (memory bank may mention other branches). Merge memory bank summaries with git analysis. Prepare notes before creating the new tag.
2. User-facing analysis
End-user impact only:
git diff <previous-major-tag>..HEAD
git log --oneline <previous-major-tag>..HEAD
git show HEAD:<file> # final state when neededTreat commit messages as hints; validate against actual behavior. Describe what users can do, not implementation.
Prioritization for notes:
- Primary: new features, fixes, behavior changes
- Omit: refactoring and internal cleanup unless they are the only changes (still complete docs per section 3)
- Grafana, telemetry, and ops dashboards are internal/ops tooling — never user-facing. Omit from release notes unless they are the only changes.
- Fixes vs new work: Fixes that pertain to features introduced in this release go under New Features only — never under Fixes. Fixes = regressions in previously existing features or unrelated bugs. If a new feature has bugs, it's not a "fix" for users, it's just the feature being completed.
- Dependencies: User-visible stack milestones (e.g. FastMCP 3.x) go under New Features.
3. User-facing documentation
Before draft notes or version bump, document new/changed behavior on master:
| Location | What to update |
README.md | Features table (overview links if setup-related) |
docs/Installation.md | config, env, deployment, auth flows |
docs/Tools-Reference.md | tools, parameters, returns, flags |
.env.example | new/renamed vars with short comments |
| MCP metadata | description / Field(description=…) in mcp_tool_types.py, tools_register.py |
git diff <previous-major-tag>..HEAD -- README.md docs/ .env.example src/server_components/mcp_tool_types.py src/server_components/tools_register.pyUpdate and commit (or include in the release PR) before publishing. Link to docs/… anchors on master in release notes when helpful.
4. Scope and review gate
| Single-feature (no approval wait) | Review required (post section 5 notes in a markdown code block; wait before uv version / gh release create) |
| One primary user-facing theme since last tag | Multiple unrelated user-facing changes |
| Docs complete (section 3) | Release aggregates several features since last X.Y.0 |
| Brief draft in chat while shipping | Ambiguous version or notes; user asked to review |
User may say skip review or ship it to override review-required cases.
Single-feature: draft with section 5, ship through section 6 without blocking on note approval. Review-required: paste notes as a markdown code block and stop until approved.
5. Release notes format
<One short sentence: main value — NO VERSION NUMBERS in this line>
## New Features
- **`tool_name` / feature** - What users can now do (backticks for tools, params like `chat_id`)
- **Documentation** - Link to `docs/…` on `master` when setup/reference matters
## Fixes
- **Issue resolved** - What was broken and how it's fixed
This release <primary user-facing value>.
**Full Changelog**: https://github.com/alexeyleshchenko/fast-mcp-telegram/compare/<previous-major-tag>...<current-tag>- Replace tag placeholders (e.g.
0.12.0,0.11.0). Tags have novprefix. - Do not repeat the GitHub release title as the first body line.
- Omit Fixes section entirely if all changes are new features (including their post-release polish).
- Omit internal improvements when user-facing items exist.
- No emojis in GitHub notes. No file stats or implementation detail.
- Verify notes match code and section 3 docs before shipping.
6. Version bump and GitHub release
- Never hand-edit
[project].versioninpyproject.toml—uv versiononly. Do not editsrc/_version.py(reads metadata /pyproject.toml).
uv version <version>
# or: uv version --bump patch | minor | majorInclude uv.lock if it changed; run uv lock only when dependencies changed.
git add pyproject.toml uv.lock
git commit -m "chore: bump version to <version>"
git tag <version>
git push origin <branch> && git push origin <version>
gh release create <version> \
--title "<short headline without version>" \
--notes-file - <<'EOF'
<paste body from section 5 — no duplicate title line>
EOFOr --notes-file /path/to/notes.md (temp file; do not commit).
gh release view <version>CI gate (required before Telegram): After gh release create, confirm GitHub Actions / checks are green on the release tag or the master commit that tag points to:
gh release view <version> # note target commit SHA
gh run list --commit <sha> --limit 10
# or: gh run list --branch master --limit 5
gh run watch <run-id> # optional — wait for completionDo not post Telegram until both (a) the GitHub release is published and (b) CI is green. User may explicitly override (e.g. skip CI wait, post anyway).
7. Telegram announcement
Only after section 6: GitHub release published and CI green (unless user explicitly overrides).
| Audience | chat_id | Language |
| English — “Telegram MCP and MTProto-HTTP Bridge” (invite) | 5131784155 | English |
| Russian — t.me/mcp_telegram | mcp_telegram or 2537965832 | Russian |
Use fixed chat_id values; do not rely on find_chats unless a target moved or posting fails with “chat not found”.
Formatting: parse_mode="html" only (not Markdown). Tags: <b>, <i>, <code>, <a href="...">. Escape &, <, > in literal text. Emojis OK in Telegram.
Structure: version header with date (e.g. 🚀 <b>fast-mcp-telegram 0.x.y</b> · YYYY-MM-DD); feature highlights; release link <a href="https://github.com/alexeyleshchenko/fast-mcp-telegram/releases/tag/0.x.y">…</a>.
send_message chat_id=5131784155 parse_mode=html message="..."
send_message chat_id=mcp_telegram parse_mode=html message="..."On ChatWriteForbiddenError, give the user the HTML to paste manually.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

