diff --git a/docs/superpowers/plans/2026-06-26-email-templates-brand-hygiene.md b/docs/superpowers/plans/2026-06-26-email-templates-brand-hygiene.md
index 2a0d4d6..689d2ad 100644
--- a/docs/superpowers/plans/2026-06-26-email-templates-brand-hygiene.md
+++ b/docs/superpowers/plans/2026-06-26-email-templates-brand-hygiene.md
@@ -477,19 +477,19 @@ git commit -m "feat(email): add theme language file with preheader copy"
| `invitation.html` | `invitation.preheader` | invite link (existing var, as present) |
| `test.html` | `test.preheader` | none (skip button rows) |
-- [ ] **Step 1: Convert `welcome.html`** per the transform + its row above.
-- [ ] **Step 2: Convert `verify-email.html`.**
-- [ ] **Step 3: Convert `reset_notify.html`** (no button — keep only the text rows).
-- [ ] **Step 4: Convert `registration_accepted.html`.**
-- [ ] **Step 5: Convert `invitation.html`.**
-- [ ] **Step 6: Convert `test.html`** (no button).
+- [x] **Step 1: Convert `welcome.html`** per the transform + its row above.
+- [x] **Step 2: Convert `verify-email.html`.**
+- [x] **Step 3: Convert `reset_notify.html`** (no button — keep only the text rows).
+- [x] **Step 4: Convert `registration_accepted.html`.**
+- [x] **Step 5: Convert `invitation.html`.**
+- [x] **Step 6: Convert `test.html`** (no button).
-- [ ] **Step 7: Run the regression guard — expect only `banned`, `notification`, `digest` failing**
+- [x] **Step 7: Run the regression guard — expect only `banned`, `notification`, `digest` failing**
Run: `node scripts/check-emails.js`
Expected: FAIL listing exactly `banned.html`, `notification.html`, `digest.html`.
-- [ ] **Step 8: Build + commit**
+- [x] **Step 8: Build + commit**
```bash
./nodebb build
diff --git a/email/invitation.html b/email/invitation.html
new file mode 100644
index 0000000..1ed3be0
--- /dev/null
+++ b/email/invitation.html
@@ -0,0 +1,45 @@
+
+
+
[[email:invitation.preheader]]
+
+
+
+
+
+
+
+
+[[email:greeting-no-name]]
+ |
+
+
+
+[[email:invitation.text1, {username}, {site_title}]]
+ |
+
+
+|
+ [[email:invitation.text2, {expireDays}]]
+ |
+
+
+|
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/email/registration_accepted.html b/email/registration_accepted.html
new file mode 100644
index 0000000..c21cd5a
--- /dev/null
+++ b/email/registration_accepted.html
@@ -0,0 +1,40 @@
+
+
+[[email:registration_accepted.preheader]]
+
+
+
+
+
+
+
+
+[[email:welcome.text1, {site_title}]]
+ |
+
+
+
+[[email:welcome.text3]]
+ |
+
+
+|
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/email/reset_notify.html b/email/reset_notify.html
new file mode 100644
index 0000000..29e09fe
--- /dev/null
+++ b/email/reset_notify.html
@@ -0,0 +1,30 @@
+
+
+[[email:reset_notify.preheader]]
+
+
+
+
+
+
+
+
+[[email:greeting-with-name, {username}]]
+ |
+
+
+
+[[email:reset.notify.text1, {date}]]
+ |
+
+
+|
+ [[email:reset.notify.text2]]
+ |
+
+
+ |
+
+
+
+
diff --git a/email/test.html b/email/test.html
new file mode 100644
index 0000000..34ac544
--- /dev/null
+++ b/email/test.html
@@ -0,0 +1,25 @@
+
+
+[[email:test.preheader]]
+
+
+
+
+
+
+
+
+[[email:greeting-no-name]]
+ |
+
+
+
+[[email:test.text1]]
+ |
+
+
+ |
+
+
+
+
diff --git a/email/verify-email.html b/email/verify-email.html
new file mode 100644
index 0000000..a587ebf
--- /dev/null
+++ b/email/verify-email.html
@@ -0,0 +1,50 @@
+
+
+[[email:verify-email.preheader]]
+
+
+
+
+
+
+
+
+[[email:greeting-with-name, {username}]]
+ |
+
+
+
+[[email:email.verify.text1]]
+ |
+
+
+|
+ [[email:email.verify.text2]]
+ |
+
+
+|
+ [[email:email.verify.text3, {email}]]
+ |
+
+
+|
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/email/welcome.html b/email/welcome.html
new file mode 100644
index 0000000..4c468ac
--- /dev/null
+++ b/email/welcome.html
@@ -0,0 +1,50 @@
+
+
+[[email:welcome.preheader]]
+
+
+
+
+
+
+
+
+[[email:greeting-with-name, {username}]]
+ |
+
+
+
+[[email:email.verify.text1]]
+ |
+
+
+|
+ [[email:email.verify.text2]]
+ |
+
+
+|
+ [[email:email.verify.text3, {email}]]
+ |
+
+
+|
+
+
+
+ |
+
+
+ |
+
+
+
+