agent-instructions
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what…
Use when writing a changelog or release notes. Covers what belongs in one, writing for users rather than for git, semantic versioning, and documenting breaking changes so nobody is surprised. Trigger on "write release notes for v2.3", "update the changelog", "is this a major or
Claude Code
$ npx -y skills add nimadorostkar/Claude-Skills-collection --skill changelog --agent claude-code
Codex
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a codex -y
Cursor
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a cursor -y
Gemini CLI
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a gemini-cli -y
GitHub Copilot
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a github-copilot -y
OpenCode
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a opencode -y
Windsurf
$ npx skills add nimadorostkar/Claude-Skills-collection --skill changelog -a windsurf -y
name: changelog description: Use when writing a changelog or release notes. Covers what belongs in one, writing for users rather than for git, semantic versioning, and documenting breaking changes so nobody is surprised. Trigger on "write release notes for v2.3", "update the changelog", "is this a major or minor version bump". Do not use for announcing changes to colleagues — see the internal-comms skill; for commit messages, see the git-workflow skill. metadata: category: writing version: 1.0.0 tags: [changelog, release-notes, versioning, communication]
Tell users what changed and what they must do about it. A changelog is not a git log; it is a communication with people who have built something on your software.
1. **Group by what it means to the user** — Added, changed, deprecated, removed, fixed, security. Not by component, and certainly not by commit. 2. **Lead with the breaking changes** — They are what the reader is looking for. Bury them and someone's deployment fails. 3. **Write in terms of the user's experience** — "Exports now include line items", not "refactored `ExportSerializer` to include `LineItemMixin`". 4. **Version honestly** — A breaking change is a major version, however small it is. Renaming a public field is breaking, even if it felt like a typo fix. 5. **Give the migration, not just the warning** — "This is removed" is a problem. "This is removed; use X instead, like this:" is a solution. 6. **Skip the noise** — Internal refactors, dependency bumps with no behavioral effect, and CI changes do not belong in a user-facing changelog.
**A changelog entry that answers the reader's question:**
## [3.0.0] — 2026-07-14
### Breaking changes
- **`RateLimiter.check()` now returns `LimitResult` instead of `bool`.**
The boolean gave no way to communicate the remaining quota or the reset time,
both of which are needed to set `Retry-After` correctly.
# Before
if limiter.check(key):
...
# After
result = limiter.check(key)
if result.allowed:
...
# result.remaining, result.reset_at are now available
- **Removed `RateLimiter.reset_all()`.** It was unsafe in production: it flushed
the entire Redis keyspace, not only the rate-limit keys. Use
`reset(key=...)` for a single key, or `reset(prefix=...)` for a namespace.
- **Minimum Redis version is now 7.0** (was 6.2). Required for the atomic
`SET ... IFEQ` used by the new sliding-window implementation.
### Added
- Sliding-window algorithm, in addition to token bucket. See
[choosing an algorithm](docs/explanation/algorithms.md).
- `Retry-After` and `X-RateLimit-*` headers are now set automatically on 429s.
### Fixed
- Requests behind a proxy were all attributed to the proxy's IP, so a single
limit applied to every user. `trust_proxy=True` now reads `X-Forwarded-For`
correctly. ([#412](https://github.com/example/rateguard/issues/412))
### Deprecated
- `limit(rate="20/minute")` string syntax. Use `limit(Rate(20, per=Minute))`.
The string form will be removed in 4.0 (planned Q1 2027).**Versioning honestly:**
Renamed a public field from `retry_after` to `retryAfter` to match the rest of the API. That is a MAJOR version. It is a one-character-per-word change, it took two minutes, and it will break every consumer that reads the field. The size of the diff has nothing to do with the size of the break.
A curated library of 137 production-grade skills for Claude and other AI coding agents. Every skill follows one structure, speaks with one voice, and earns its place by changing what the agent does.
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what…
Use when an agent needs state that survives a session or a context compaction. Covers what to persist, file-based memory,…
Use when automating agent behavior with lifecycle hooks. Covers hook events, deterministic enforcement of rules the model should…
Use when packaging skills, commands, hooks, and MCP servers into a distributable plugin. Covers manifest structure, bundling,…
Use when writing a new skill for an AI agent. Covers scoping, description writing for reliable triggering, progressive…
Use when reviewing or improving an existing agent skill. Covers triggering accuracy, content quality, redundancy with the base…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.