Borrowing it
Nothing to install: this file belongs to Grinv/mal-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Grinv/mal-mcp/main/.agents/skills/changelog-style/SKILL.mdgit clone --depth 1 https://github.com/Grinv/mal-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/grinv/mal-mcp/changelog-style)<a href="https://agentmods.dev/skills/grinv/mal-mcp/changelog-style"><img src="https://agentmods.dev/badge/skills/grinv/mal-mcp/changelog-style/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/grinv/mal-mcp/changelog-style"><img src="https://agentmods.dev/badge/skills/grinv/mal-mcp/changelog-style.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00050 | $0.01489 |
| Opus 5 | $0.00025 | $0.00745 |
| Sonnet 5 | $0.00010 | $0.00298 |
| Haiku 4.5 | $0.00005 | $0.00149 |
Grade A, and why
changelog-style scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
95% identical to changelog-style — 2 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Changelog entries: style & workflow
Entries in CHANGELOG.md should be short and self-describing. Style reference:
common-changelog. The workflow
below (how to actually produce those entries from commit history) is
synthesized from three changelog-generation agent skills:
GoogleChromeLabs/changelog-generation-skill,
ComposioHQ/awesome-claude-skills/changelog-generator,
and glincker/changelog-generator.
Style
- One line per entry — two only if it genuinely needs a "why". Common-changelog is stricter here ("a change should be brief and to the point, no more than one line long"); we allow a second line for a real rationale. Skip mechanism/implementation detail; that belongs in the commit message or PR description, not the changelog. Concrete gut-check: after writing an entry, measure the prose (excluding the trailing link) — past ~150 chars you're burying the fact, not stating it; reread it and cut, don't just eyeball "does this look like one line" (a long single physical line with no embedded newline still fails this rule even though it dodges the separate "no dangling link" issue below) — e.g. generalize the affected set instead of enumerating every affected tool/field by name.
- Imperative, present tense: "Add X", "Fix Y" — not "Added X" / "Fixed Y".
- Self-describing: a reader skimming just the bullet — without its
### Added/### Fixedcategory heading for context — should still understand the change and its effect. - Exclude dev-only/maintenance changes: dotfile tweaks, dev-dependency bumps, test-only changes, pure code-style edits — these are not interesting to someone consuming the released package, so they don't get an entry; put them in the commit message instead. Exception: a refactor that could have user-visible side effects (behavior change, perf, a fixed edge case) still gets an entry describing that effect, not the refactor itself.
- Link commits/PRs/issues: reference the commit that made the change, and
the PR or issue too when one exists. Exception: a version whose entire
content is one single commit — don't repeat the identical link after every
bullet; put one link at the section level instead (e.g. "Everything below
is one commit:
[<sha>](...)." right under the version heading). - No dangling link line: keep an entry and its link(s) on one physical source line, even if long. GitHub renders a single soft-wrapped newline inside a list item as a real line break, so a wrapped entry shows its link stranded alone on the next line instead of reading as one continuous bullet.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 101 lines · 50 tokens per session scan A 3c17869330bb
changelog-style is a skill published in the GitHub repository Grinv/mal-mcp (2 stars, last pushed 15d ago), licensed MIT. It adds 50 tokens to every session and 1,489 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 95% identical to changelog-style, differing in 2 lines, and is treated as a copy.
Other skills, from other repositories
release
Cut a release of steam-games-mcp — draft CHANGELOG entries, check docs/metadata consistency, then bump/tag/push. Use when asked to release, cut a version, or publish a new version of this package.
changelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR (adding to the [Unreleased] section) or cutting a release (moving [Unreleased] under a new version heading).
verify-cli
Run smoke tests against the mpak CLI to verify all commands work correctly before publishing a new release.
git-wrapup
Land working-tree changes as logical commits — the work grouped by concern, topped by a release commit (version bump, changelog, regenerated artifacts) and an annotated tag. Verify, commit, tag. Stops at "committed and tagged locally" — no push, no publish. The release-and-publish skill picks up from here. Distilled…
release-and-publish
Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GitHub Releases for .mcpb bundles, GHCR). Runs the final verification gate, pushes commits and tags, then publishes to each applicable destination. Assumes git wrapup (version bumps, changelog, commit, annotated tag) is already…
omh-deploy-and-monitor
This is a Hermes-native deploy-and-monitor workflow skill.