diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 94dfff8..5a5e2f0 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -28,6 +28,7 @@
/doc/values.md @NixOS/steering
/doc/vault.md @Mic92 @mweinelt @zimbatm
/doc/constitution.md @NixOS/steering
+/doc/constitution-commentary.md @NixOS/steering
/doc/nixpkgs-core.md @NixOS/nixpkgs-core
/doc/nixpkgs-committers.md @NickCao @jtojnar @winterqt @NixOS/nixpkgs-core
/doc/calendar.md @edolstra @tomberek @fricklerhandwerk
diff --git a/doc/constitution-commentary.md b/doc/constitution-commentary.md
new file mode 100644
index 0000000..7925bc3
--- /dev/null
+++ b/doc/constitution-commentary.md
@@ -0,0 +1,94 @@
+# Constitution Commentary
+
+This document contains a non-normative, non-binding commentary on the constitution, explaining some subtleties.
+
+## SC Election and Removal procedure
+
+The state machine of the portions of the constitution that govern the composition of the SC (what seats are filled, who is in which seat) is especially complex.
+The following flow chart diagrams this state machine:
+
+```mermaid
+flowchart TD
+ Start([Regular SC Governance])
+ End(["Regular SC Governance (with new members)"])
+
+ %% Note that order effects layout, at least informally.
+ %% Current layout chosen in part because graph renders planar (no edges cross).
+
+ %% Regular elections
+ RegularElec[Regular Election]
+
+ Start -->|some terms end| HalfVacation[[3-4 seats to be vacated]] --> RegularElec
+ RegularElec -->|seats filled for fresh 2-year terms| End
+
+ %% Special Elections
+ SpecialElec[Special Election]
+
+ Start -.->|optional, if <7 filled| SpecialElec
+ SpecialElec -->|winners serve remainder of terms| End
+
+ %% Single seat vacation
+ Removal[Vote for removal for conduct]
+ OneMoreVacation[[one additional seat vacated immediately]]
+ Required[Vote for Special Election or dissolution]
+ AllVacated0[[all seats to be vacated]]
+
+ Start -.->|optional| Removal
+ Start -.->|resignation or other loss| OneMoreVacation
+ Removal -->|succeeds by supermajority| OneMoreVacation
+ OneMoreVacation --> VacancyCheck
+ Removal -->|fails| Start
+ VacancyCheck{Vacancy count?}
+ VacancyCheck -->|≥4 filled| Start
+ VacancyCheck -->|<4 filled| Required
+ Required -->|all members propose special election| SpecialElec
+ Required -->|any member proposes dissolution| AllVacated0
+ AllVacated0 -->|special election wins via vacant seat votes| SpecialElec
+
+ %% Dissolution
+ Dissolution["Vote to dissolve the SC
(vacant seats vote yes)"]
+ AllVacated1[[all seats to be vacated]]
+ ElectionType["Vote between election types
(vacant seats vote special)"]
+
+ Start -.->|optional| Dissolution
+ Dissolution -->|succeeds by majority| AllVacated1
+ AllVacated1 --> ElectionType
+ Dissolution -->|fails| Start
+ ElectionType -->|initial wins| InitialElec
+ ElectionType -->|special wins| SpecialElec
+
+ %% Initial Elections
+ InitialElec[Initial Election]
+
+ InitialElec -->|Entirely new SC seatedtop 4: 2yr terms
bottom 3: 1yr terms| End
+```
+
+### Deferred versus immediate loss of members
+
+A no-confidence vote does not immediately dissolve the SC.
+It just triggers the election (which presumably cannot be cancelled) at which point all current SC members loose their seats (unless reelected).
+By contrast, removal for conduct does immediately remove an SC member.
+
+Voluntary resignations are a grey area.
+In the above diagram they are also diagrammed as immediately taking effect, but arguably they could also be deferred until the election when those seats are replaced.
+
+The important part of this distinction is who is a member voting in subsequent votes.
+Members removed for conduct do not vote choose the election type (in the no-confidence case) or whether to hold a special election (in the seats-vacated case).
+Members not resigning absolutely do vote in both those cases.
+Voluntarily-resigning members are a grey area.
+
+### When the SC drops before 4 members
+
+The most subtle part is what happens when the SC drops below 4 members due to "resignation or other less" or removal for conduct.
+
+The constitution states that when less than half of the seats are filled, a special election must occur.
+But, presumably, a vote of no-confidence, triggering a full reelection can occur at any time.
+Therefore, that can also occur instead at this point, leading indeed to a special election also, but a different sort of special election.
+
+If any SC member proposes a no-confidence vote, the vote will automatically win due to how vacant seats are counted for such votes.
+The vacant seats will also automatically cause special election, rather than initial election, to win the subsequent vote for the type of full reelection.
+However, vacant seats do not trigger votes, they only vote once a sitting member triggers a vote.
+Therefore at this point, no attempt to hold a no confidence vote will end in a special election of just the currently-vacant seats, while any attempt to hold a no-confidence vote will end in a special election for all seats.
+
+Note that both paths above lead to a special election.
+As a corollary, it is only possible to follow no-confidence with an initial election when more than half of the SC seats were full prior to the no-confidence vote.