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 **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 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, 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; but don't do anything that requires a force push" (2026-09-25;
improvise-79h5). improvise-79h5).
@@ -65,9 +65,12 @@ not in a second copy.
forbidden, and so is the force push itself. forbidden, and so is the force push itself.
**Messages are Conventional Commits**: `type(scope): subject`, with the **Messages are Conventional Commits**: `type(scope): subject`, with the
scope optional. The types in use are `feat`, `fix`, `test`, `docs`, `ci` scope optional. The types are Conventional Commits' own: `feat`, `fix`,
and `chore`. A ticket id goes at the end of the subject in parentheses, as `refactor`, `perf`, `style`, `test`, `docs`, `ci` and `chore`. Do not
the history already carries it: `fix(tui): the grid and the tile bar scroll 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 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 the message git writes for it. The message says what changed. The argument
for the change lives in `context/`, never only in the message for the change lives in `context/`, never only in the message