The bump was decided by `[major]` / `[minor]` markers alone, so a range of
ordinary `fix:` commits and a range of `feat:` commits released the same way,
and the version number said nothing about what changed.
Read the intent from the subject instead, keeping the explicit markers as
overrides for the cases a subject cannot carry:
`feat` as its own word minor 0.1.0 -> 0.2.0
`!:` or BREAKING major 0.1.0 -> 1.0.0
anything else patch 0.1.0 -> 0.1.1
`feat` has to be a word, so "Fix the feature flag leak" is a patch rather than
a minor. Only the subject line is read; the body is not.
Adds `npm run release:notes`, which prints the notes a push would publish, and
AGENTS.md, which states the rules where an agent will read them.