From 8878eda0b207bdc0f0f31d88e067399c4613cdfd Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Mon, 18 May 2026 09:11:40 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20CLAUDE.md=20=E2=80=94=20codify=20change?= =?UTF-8?q?log-update=20rule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an explicit rule that every user-visible change updates CHANGELOG.md in the same commit, under an `## [Unreleased]` heading between releases. References the C-2 gap (0.2.7 and 0.2.8 shipped without changelog entries) so the motivation is durable. Co-Authored-By: Claude Opus 4.7 --- CLAUDE.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 8e41081..02074ea 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -77,6 +77,14 @@ Only a second consecutive failure is treated as a real auth problem. - Type hints and docstrings everywhere - Formatter: `ruff format` · Linter: `ruff check` · Tests: `pytest` - All text (docstrings, comments, README): English +- **CHANGELOG.md:** every user-visible change (bug fix, new/changed + tool, behavior change, security fix, dependency bump) gets a + `CHANGELOG.md` entry in the same commit — under a `## [Unreleased]` + heading between releases, which becomes `## [X.Y.Z] - YYYY-MM-DD` on + version bump. Pure internal cleanup (renames without external callers, + comment-only edits, ruff autofix) needs no entry. Don't ship a release + with a stale changelog (this was the C-2 gap that caused 0.2.7 and + 0.2.8 to ship undocumented). - **Version consistency:** the package version lives in `pyproject.toml` and must stay in sync with `uv.lock` and the `[X.Y.Z]` heading in `CHANGELOG.md`. `src/mcp_synology_container/__init__.py` derives