add-changeset
Skill1.2k starsChanged 24 days agoMITView on GitHub
Add a changelog entry for a PR. Use when the user asks for a changeset, when finishing a PR that changes user-visible contract behavior, or when the changeset-bot has flagged the PR. Skip for NatSpec-only edits, internal refactors with no observable effect, or repo plumbing.
5 other projects use a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- unional/skillstheir own version, first seen Nov 6, 2026
- hashicorp/design-systemtheir own version, first seen Oct 13, 2026
- elmohq/elmotheir own version, first seen Oct 8, 2026
- swc-project/swctheir own version, first seen Oct 8, 2026
- OpenZeppelin/openzeppelin-contractsword for word, first seen Oct 8, 2026
Who's talking about OpenZeppelin/openzeppelin-contracts-upgradeable
- smartcontractkit/chainlink“[FEAT] Chainlink upgradeable smart contracts”GitHub · Sep 7, 2021 · 40 reactions
- foundry-rs/foundry“Support EIP-7201 in `forge inspect storage`”GitHub · Apr 14, 2024 · 4 reactions
- OpenZeppelin/openzeppelin-contracts“Use diamond storage instead of gaps in upgradeable contracts”GitHub · Nov 12, 2021 · 3 reactions
- code-423n4/2022-06-nibbl-findings“[PNM-001] Function `permit` directly uses `_approve`, suffering from the well-known double attacks”GitHub · Jun 24, 2022 · 2 reactions
- OpenZeppelin/openzeppelin-contracts“Release 4.7”GitHub · May 4, 2022 · 2 reactions
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub and Stack Overflow (51 times).
On GitHub · 50
- Sep 7, 2021[FEAT] Chainlink upgradeable smart contracts — smartcontractkit/chainlink40 reactions · 15 comments
- Apr 14, 2024Support EIP-7201 in `forge inspect storage` — foundry-rs/foundry4 reactions · 9 comments
- Nov 12, 2021Use diamond storage instead of gaps in upgradeable contracts — OpenZeppelin/openzeppelin-contracts3 reactions · 37 comments
- Jun 24, 2022[PNM-001] Function `permit` directly uses `_approve`, suffering from the well-known double attacks — code-423n4/2022-06-nibbl-findings2 reactions · 3 comments
- May 4, 2022Release 4.7 — OpenZeppelin/openzeppelin-contracts2 reactions · 4 comments
45 more on GitHub
- Jun 2, 2026chore(deps-dev): bump the openzeppelin group across 1 directory with 3 updates — XFuel-Lab/chit4021 reaction · 5 comments
- Apr 8, 2026foundry-rs#13763 (#398) — Dargon789/foundry1 reaction · 12 comments
- Mar 9, 2026`forge install` submodule cleanup discrepancy when using `--no-git` — foundry-rs/foundry1 reaction
- Dec 17, 2023cergyk - FootiumClub::ERC721Upgradeable/Pausable Cannot pause transfers on FootiumClub NFT — sherlock-audit/2023-12-footium-judging1 reaction · 15 comments
- Oct 27, 2023__Ownable_init() function isn't called properly in the initializer — hats-finance/Smooth-0x64bc275b37e62eec81a00ecaecd2b9567058f9901 reaction · 1 comment
- Oct 17, 2023Ownable2StepUpgradeable requires initializing OwnableUpgradeable — OpenZeppelin/openzeppelin-contracts1 reaction · 12 comments
- Nov 14, 2022removes base contract dependency on hardhat / fixes initializer modifiers — Network-Goods/hypercerts-protocol1 reaction · 3 comments
- Oct 20, 2022[R&D review] Unify ERC20 interfaces — morpho-org/morpho-optimizers-vaults1 reaction · 12 comments
- Oct 18, 2022Contracts without GAP can lead a upgrade disaster — code-423n4/2022-10-traderjoe-findings1 reaction · 2 comments
- Aug 6, 2022 Use of not recommended ERC721 _mint function — code-423n4/2022-08-rigor-findings1 reaction · 1 comment
- Jun 25, 2022QA Report — code-423n4/2022-06-yieldy-findings1 reaction
- Jan 10, 2022New keyword `pin` for fixed sparse storage layouts — argotorg/solidity1 reaction · 10 comments
- Nov 4, 2026chore(deps): bump lib/openzeppelin-contracts-upgradeable from `7bd46d8` to `7839763` — YieldShield/smart-contracts0 reactions · 1 comment
- Nov 4, 2026Bump contracts/lib/openzeppelin-contracts-upgradeable from `7bf4727` to `7839763` — Rong0715/assert-dao0 reactions
- Nov 3, 2026chore(deps): bump lib/openzeppelin-contracts-upgradeable from `ed0d253` to `7839763` — the3rdweblabs/payment-kit.evm0 reactions · 2 comments
- Nov 3, 2026Bump lib/openzeppelin-contracts-upgradeable from `3d5fa5c` to `7839763` — lukema95/flip-core0 reactions
- Nov 2, 2026chore(deps): bump lib/openzeppelin-contracts-upgradeable from `fc6d2f3` to `58c8c82` — owieth/foundry-setup0 reactions
- Nov 2, 2026build(deps): bump contracts/lib/openzeppelin-contracts-upgradeable from `1717bdd` to `ce38bf1` — YieldShield/yieldshield-bnb-open-source0 reactions
- Oct 28, 2026chore(deps): bump lib/openzeppelin-contracts-upgradeable from `7bd46d8` to `fc6d2f3` — YieldShield/smart-contracts0 reactions · 2 comments
- Oct 21, 2026chore(deps): bump @openzeppelin/contracts-upgradeable from 5.3.0 to 5.4.0 — Datura-ai/celium-collateral-contracts0 reactions
- Oct 15, 2026chore(deps): bump @openzeppelin/contracts-upgradeable from 5.4.0 to 5.7.0 in /solidity in the openzeppelin-contracts group across 1 directory — oasisprotocol/privana0 reactions · 1 comment
- Oct 1, 2026chore(deps): Bump contracts/lib/openzeppelin-contracts-upgradeable from `527c1bd` to `66f1abd` — ismellike/nft-gacha0 reactions
- Sep 18, 2026Bump @openzeppelin/contracts-upgradeable from 5.0.0 to 5.0.2 in the npm_and_yarn group across 1 directory — Ronnie-Ahmed/Foundry_Tutorial0 reactions
- Sep 1, 2026chore(deps): bump contracts/lib/openzeppelin-contracts-upgradeable from `c1b1bed` to `f8fc282` — NeoWeb3Nova/NeoDeFi0 reactions · 1 comment
- Jul 27, 2026Bump lib/openzeppelin-contracts-upgradeable from `723f8ca` to `7a37a98` — dust/zen-staking-layer0 reactions
- Jun 20, 2026chore(deps): bump contracts/lib/openzeppelin-contracts-upgradeable from `7bf4727` to `c1b1bed` — tresr-community/tresr-game0 reactions
- Jun 4, 2026deps: bump the openzeppelin group across 1 directory with 3 updates — eq-lab/pipeline-contracts0 reactions
- Apr 20, 2026Track upstream OZ PR to expose ERC-7201 root slot as internal — S01-Issuer/st0x.deploy0 reactions · 3 comments
- Mar 9, 2026chore(deps): bump lib/openzeppelin-contracts-upgradeable from `60b305a` to `524c8c9` — k0yote/newlo-point0 reactions
- Nov 25, 2025Bump @openzeppelin/contracts-upgradeable from 5.0.1 to 5.0.2 — vechain/vevote0 reactions · 2 comments
- Feb 19, 2025Bald Crimson Alligator - Launch contract does not use upgradable versions of parent initializer functions — sherlock-audit/2025-02-rova-judging0 reactions
- Feb 5, 2025Bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 — lidofinance/linea-contracts0 reactions
- Dec 5, 2024Energetic Honeysuckle Leopard - corrupt upgdreability pattarn — sherlock-audit/2024-11-ethos-network-ii-judging0 reactions
- Dec 2, 2024Bump contracts/lib/openzeppelin-contracts-upgradeable from `723f8ca` to `5fcea08` — ava-labs/avalanche-interchain-token-transfer0 reactions
- Nov 5, 2024USDE : renounceRole is not fully sealed — hats-finance/Euro-Dollar-0xa4ccd3b6daa763f729ad59eae75f9cbff7baf2cd0 reactions · 1 comment
- Aug 6, 2024chore(deps): update dependency @openzeppelin/contracts to v4.9.6 [security] — ashutoshvarma/sway0 reactions · 1 comment
- Jul 8, 2024Bump @openzeppelin/contracts-upgradeable from 5.0.0 to 5.0.2 — Ultra-Tech-code/Dynamic_NFT0 reactions
- Jun 8, 2024Uninitialized Implementation Contracts are not Completely Protected — code-423n4/2024-05-predy-validation0 reactions
- May 1, 2024CvxRewardDistributor misses `_Ownable2Step_init()` in the `initialize()` function — hats-finance/Convergence---Convex-integration-0xb3df23e155b74ad2b93777f58980d6727e8b40bb0 reactions · 13 comments
- Apr 29, 2024chore(deps): bump lib/openzeppelin-contracts-upgradeable from `762e9bc` to `82e861e` — Akagi201/foundry-template0 reactions
- Apr 24, 2024build(deps-dev): bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 — henkaku-center/mono-auction-contract0 reactions
- Apr 16, 2024chore(deps-dev): bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 — spherity/ethr-revocation-registry0 reactions
- Feb 29, 2024Bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 — Fathom-Fi/fathom-solidity-sdk0 reactions
- Feb 29, 2024Bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 in /contracts — 1337CyberSecurity/chainlink0 reactions
- Feb 29, 2024Bump @openzeppelin/contracts-upgradeable from 4.9.3 to 4.9.6 — eniblock/website-demo0 reactions
On Stack Overflow · 1
Other versions5 projects use a version of this.
Word for word · 1
- OpenZeppelin/openzeppelin-contracts★ 27k100% same
Edited · 0
None found.
Wrote their own version · 4
- swc-project/swc★ 34ksame name
- elmohq/elmo★ 577same name
- hashicorp/design-system★ 520same name
- unional/skills★ 1same name
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 repository4 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- library-api-designSkill
- solidity-styleSkill
- testingSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Add a changeset when the PR changes user-visible contract behavior: a new function, a new contract or extension, a bug fix that changes …
- Distinctive: line 19
If unsure, err on the side of adding one — release reviewers can downgrade to "skip" by deleting the file before tagging.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add a changeset
When to add one
Add a changeset when the PR changes user-visible contract behavior: a new function, a new contract or extension, a bug fix that changes outputs, a new event, a new error, a new interface ID, or a tighter requirement.
Skip for:
- NatSpec-only changes.
- Internal refactors with no observable effect.
- Test/mock-only changes.
- CI, lint, docgen, dependency bumps that don't change the published
contracts/.
If unsure, err on the side of adding one — release reviewers can downgrade to "skip" by deleting the file before tagging.
How
npx changeset addThe CLI prompts for severity, then opens an editor. Severity:
patch— bug fixes, gas optimizations, no API surface change.minor— new contracts, new extensions, new public functions on existing contracts.
There is no major from contributors — major version bumps are coordinated by maintainers.
The resulting file in .changeset/ looks like:
---
'openzeppelin-solidity': minor
---
`ComponentName`: One-sentence description starting with a backtick-quoted component name.Format rules
- First word inside the backticks is the affected contract, extension, or library:
ERC20,ERC1155Crosschain,Memory,Governor, etc. - Then a colon, then one sentence describing the user-visible change.
- Imperative mood (matching PR titles: "Add", "Fix", not "Added", "Fixed"). Trailing period optional.
- No bullet points, no headings, no multi-paragraph prose. The release workflow concatenates these verbatim.
- State the change, don't justify it. Skip "This mirrors ...", "so that ...", "closes a gap where ...", parallels to other functions, or motivation. If the user needs to take action (migration step, breaking rename, tighter requirement they might now hit), state that instead — otherwise the changelog line is just the fact of the change. Rationale belongs in the PR body and commit message, not the changelog.
Good examples (taken from existing entries):
`Memory`: Add a `isReserved(Slice)` function that checks if the memory occupied by the slice is reserved (i.e. before the free memory pointer).`ERC1155Crosschain`: Add an ERC-1155 extension to embed an ERC-7786 based crosschain bridge directly in the token contract.Add ERC-165 detection for the `IERC6909ContentURI`, `IERC6909TokenSupply` and `IERC6909Metadata` interfaces in the `ERC6909ContentURI`, `ERC6909TokenSupply` and `ERC6909Metadata` contracts respectively.(The last form — no leading backticks — is acceptable when several components are touched at once and a single prefix would be misleading.)
After committing
The changeset-bot GitHub check posts a comment confirming the changeset was detected. If the bot complains "No Changeset found" and the PR should not have one (NatSpec-only, etc.), leave a comment justifying it — a maintainer can apply the ignore-changeset label.
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.

