agent-instructions
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
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.
$ npx -y skills add nimadorostkar/Claude-Skills-collection --skill changelog --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/changelogContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
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. 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.
Repo: nimadorostkar/Claude-Skills-collection
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
Use when an agent needs state that survives a session or a context compaction. Covers what to persist, file-based memory, structuring notes for retrieval, and…
Use when automating agent behavior with lifecycle hooks. Covers hook events, deterministic enforcement of rules the model should not be trusted to remember,…
Use when packaging skills, commands, hooks, and MCP servers into a distributable plugin. Covers manifest structure, bundling, versioning, testing, and…
Use when writing a new skill for an AI agent. Covers scoping, description writing for reliable triggering, progressive disclosure, and the difference between a…
Use when reviewing or improving an existing agent skill. Covers triggering accuracy, content quality, redundancy with the base model, and measuring whether the…