Enforce CHANGELOG entries

Require release notes to contain real Added, Changed, and Fixed entries before a release lands.

The jump log can be brief, but it cannot say "TBD" where the coordinates should be.

Prompt for your coding agentOpen in Claude ↗

Add mediva to this repo (npm i -D mediva) and write CHANGELOG.mdv.md beside CHANGELOG.md. Whenever you change CHANGELOG.md, run npx mdv check CHANGELOG.md and fix every finding.

Starters are being rebuilt; write this by hand.

CHANGELOG.mdv.md
<!-- mdv: section required heading.pattern=/^Changelog$/ -->
# Changelog

<!-- mdv: section required heading.pattern=/^[0-9]+\.[0-9]+\.[0-9]+\s-\s[0-9]{4}-[0-9]{2}-[0-9]{2}$/ -->

## 1.2.3 - 2026-06-28
<!-- mdv: endsection -->

<!-- mdv: section required content.words.min=3 content.none=@placeholders -->
### Added

- New user-visible capability.

<!-- mdv: section required content.words.min=3 content.none=@placeholders -->
### Changed

- Changed user-visible behavior.

<!-- mdv: section required content.words.min=3 content.none=@placeholders -->
### Fixed

- Fixed user-visible bug.
# Changelog

## 1.2.3 - 2026-06-28

### Added

TBD

### Changed

- Uplink retries now back off.

No ### Fixed, a TBD in Added: both fail. In CI a plain npx mdv check finds the contract beside the file.

# .github/workflows/mdv.yml
name: mediva
on:
  pull_request:
    types: [opened, edited, synchronize, reopened]
permissions:
  contents: read
jobs:
  mediva:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: jamespacileo/mediva@v0.2.0

Variations

CaseDo
A release with no fixeskeep ### Fixed and write No bug fixes this release.
A single release noterelease.mdv.md beside release.md
A full history in one filecheck a one-release fragment: repeated headings attach to the last occurrence

On this page