hanumatori/nodumbmode

changelog-discipline

Write and maintain a CHANGELOG that records every completed code change without becoming a commit dump.

First seen Aug 7, 2026

Installation

$ npx skills add hanumatori/nodumbmode --skill changelog-discipline

Summary

  • Write and maintain a CHANGELOG that records every completed code change without becoming a commit dump.
  • Use after any code change in a project that has a changelog, when setting one up, when preparing a release, or when the user asks why something was built this way.
  • Keep mechanical entries brief; preserve reasons and rejected alternatives for non-obvious decisions.
  • Do not use for commit messages, PR descriptions, or user-facing release notes.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from hanumatori/nodumbmode.

npx skills add hanumatori/nodumbmode

Browse all from hanumatori/nodumbmode

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 45
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,231 B
  • docs SUMMARY.md 475 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 159 installs

SKILL.md

changelog-discipline

CHANGELOG фиксирует каждое законченное изменение кода, но не пересказывает каждый файл и коммит. Механическая правка получает короткую запись; решение — контекст, которого нет в коде: почему сделали именно так, что было до этого и что отвергли.

Scope

  • Применять после каждого законченного изменения кода в проекте, где ведётся

changelog.

  • Применять при настройке changelog в новом проекте.
  • Применять при подготовке релиза.
  • Не применять для сообщений коммитов, описаний PR и релиз-нот для

пользователей — другие форматы, другие читатели.

Core Principles

  • Пишется для того, кто вернётся через полгода. Обычно это сам автор,

забывший контекст.

  • Полнота не требует оценки важности. Менялся код — появилась запись. Один

пункт описывает цельное изменение, а не каждый файл или коммит.

  • Глубина зависит от решения. Для механической правки достаточно назвать

область и явно сказать, что поведение не изменилось. Для неочевидного решения нужны причина, прежнее состояние и отвергнутые варианты.

  • «Почему» дороже «что». Что изменилось — видно в диффе. Почему выбрали

этот вариант — не видно нигде.

  • Changelog не описывает текущее состояние. Актуальное правило живёт в

коде, конфигурации или контракте; changelog объясняет, почему оно изменилось, и указывает, где его искать.

  • Отвергнутая альтернатива ценнее описания принятой. Она не даст через

полгода переделать обратно и наступить на те же грабли.

  • Запись делается сразу, а не перед релизом. Иначе полноту уже нельзя

проверить по ходу работы, а причины решений успевают забыться.

Формат

Структура файла

# Changelog

Все заметные изменения <проект>. Формат — Keep a Changelog.

---

## [Unreleased]

### Added
### Changed
### Fixed

---

## [0.1.3] — 2026-07-31

### <Заголовок релиза — одной фразой о сути>

- **Что:** …
- **Где:** …
- **Почему:** …
- **Было:** …

### Added
### Changed
### Fixed

Резюме релиза — четыре поля

Самая ценная часть. Не пересказ пунктов ниже, а ответ на вопрос «что вообще поменялось в продукте»:

Поле Что отвечает
Что что теперь работает иначе, в терминах продукта, а не кода
Где какие файлы и области затронуты — точка входа для того, кто полезет разбираться
Почему какую боль это снимает; ради чего вообще делалось
Было как вело себя до — иначе через полгода непонятно, что чинили

Поле Было чаще всего пропускают, и зря: без него запись описывает мир, которого читатель не помнит.

Пункты внутри секций

Одна запись = одно законченное изменение, а не один файл или коммит. Внутри:

  • жирный заголовок — суть одной фразой
  • что поменялось и где
  • для механической правки — явное «поведение не изменилось»
  • для неочевидного решения — почему выбрали так, как было раньше и что отвергли

Пример:

ПКМ вместо всплывающего меню по ховеру. Копирование ссылки из текста
переехало в контекстное меню (LinkContextMenu). Сначала это было всплывающее
по ховеру микро-меню, но до кнопки не успевал доехать курсор — контекстное
меню совпадает с поведением родного текстового поля и не требует ни за чем
успевать.

Здесь есть отвергнутый вариант и причина отказа. Через полгода это не даст «улучшить» обратно.

Workflow

  1. После каждого законченного изменения кода — сразу дописать один пункт в

[Unreleased], в подходящую секцию (Added / Changed / Fixed).

  1. Выбрать глубину. Механическую правку записать одной строкой с пометкой,

что поведение не изменилось. Для изменения поведения или неочевидного решения добавить причину, прежнее состояние и отвергнутые варианты.

  1. Формулировать от продукта, когда поведение изменилось: не «добавил

параметр», а «теперь можно X».

  1. При релизе — превратить [Unreleased] в версию с датой и написать резюме

из четырёх полей.

Проверка качества

Проверка полноты проста: если менялся код, в [Unreleased] появился пункт про цельное изменение.

Для механической правки достаточно ответить:

  • где менялось;
  • подтверждено ли, что поведение осталось прежним.

Для изменения поведения или решения запись должна отвечать:

  • что изменилось для пользователя;
  • почему сделали так, а не иначе;
  • где смотреть код;
  • как было раньше.

Если по changelog приходится восстанавливать актуальные значения или правила — они лежат не там; запись должна ссылаться на действующий источник.

References

  • references/01-antipatterns.md — как не надо, с разбором
  • references/02-examples.md — примеры записей до и после