docs: list every Conventional Commits type rule 8 allows (improvise-1xfb.2)

Answers the Codex P2 on #306: the type list read as exhaustive and left out
refactor, perf and style, all in use on main. Ad-hoc prefixes become a
standard type with a scope, and the user's quote is marked [sic].

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
Edward Langley
2026-09-24 19:35:56 -07:00
parent d1b3258aeb
commit 94260d58b8
+7 -4
View File
@@ -48,7 +48,7 @@ not in a second copy.
**The default is a new commit.** The user: "As a general rule, you shuold
just add a new conventional commit. Small adjustments can ammend HEAD, but
when in doubt don't." (2026-09-25; improvise-1xfb.2). That narrows an
when in doubt don't." [sic] (2026-09-25; improvise-1xfb.2). That narrows an
earlier ruling: "I don't mind amending on a branch that hasn't been pushed,
but don't do anything that requires a force push" (2026-09-25;
improvise-79h5).
@@ -65,9 +65,12 @@ not in a second copy.
forbidden, and so is the force push itself.
**Messages are Conventional Commits**: `type(scope): subject`, with the
scope optional. The types in use are `feat`, `fix`, `test`, `docs`, `ci`
and `chore`. A ticket id goes at the end of the subject in parentheses, as
the history already carries it: `fix(tui): the grid and the tile bar scroll
scope optional. The types are Conventional Commits' own: `feat`, `fix`,
`refactor`, `perf`, `style`, `test`, `docs`, `ci` and `chore`. Do not
invent new ones. History also has ad-hoc prefixes (`tooling:`, `context:`,
`clippy:`, `checkers:`); write those as a standard type with a scope
instead, e.g. `chore(tooling):`. A ticket id goes at the end of the subject
in parentheses, as most recent conventional commits carry it: `fix(tui): the grid and the tile bar scroll
by the width they are drawn in (improvise-gtn7.1)`. A merge commit keeps
the message git writes for it. The message says what changed. The argument
for the change lives in `context/`, never only in the message