Context sections
Sections are written as ### SectionName in the commit body. There are 11 sections, each capturing a specific piece of context.
| Section | Description |
|---|---|
| Why | Why this change was necessary |
| Cause | Root cause of the issue being fixed |
| Approach | How the solution works |
| Alternatives | Other approaches that were considered |
| Tradeoffs | What was traded off or accepted |
| Metrics | Performance or size impact numbers |
| Invariants | Properties that must remain true |
| Migration | Steps needed to migrate existing code/data |
| Covers | What the tests cover (or don't) |
| Breaking | Breaking changes and who is affected |
| Refs | Links to issues, PRs, docs, or discussions |