Skip to main content

update-email-templates

Update Authgear email templates using the correct source files, translation files, and commit order. Use when editing email wording, email structure, or subject lines.

Source facts

Repository
authgear/authgear-server
Last source activity
May 26, 2026 at 22:06
Detected SKILL.md language
English
Stars
2,074
Forks
125

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
update-email-templates
description
Update Authgear email templates using the correct source files, translation files, and commit order. Use when editing email wording, email structure, or subject lines.
# Update Email Templates Follow this workflow whenever updating email templates. ## Scope Rules 1. Only edit source template files: - `resources/authgear/templates/en/messages/*.txt.gotemplate` - `resources/authgear/templates/en/messages/*.mjml.gotemplate` 2. Do not edit generated template files directly: - `resources/authgear/templates/en/messages/*.txt` - `resources/authgear/templates/en/messages/*.mjml` 3. In `*.txt.gotemplate` and `*.mjml.gotemplate`, use translations from: - `resources/authgear/templates/en/messages/translation.json` 4. Always edit English templates only at source stage. - Do not manually update non-`en` locales in source-edit commits. 5. Email subject translations are defined in: - `resources/authgear/templates/en/translation.json` ## Workflow 1. Edit source templates first: - `resources/authgear/templates/en/messages/*.txt.gotemplate` - `resources/authgear/templates/en/messages/*.mjml.gotemplate` - `resources/authgear/templates/en/messages/translation.json` (body/content translations) - `resources/authgear/templates/en/translation.json` (subject translations) 2. Generate `.mjml` from `.mjml.gotemplate`: - `go run ./scripts/generatemjml/main.go -i resources/authgear/templates` 3. Commit source edits and generated `.mjml` in one commit. 4. Before regenerating non-English translations, delete the changed keys from all non-`en` locale files so the generator knows to recreate them: - For `en/messages/translation.json` changes, delete the **top-level key** (e.g. `UsageAlert`, not `UsageAlert.Alert.Title`) from all non-`en` `messages/translation.json` files: - `make templates-translation-json-del-key KEY=<TopLevelKey>` - For `en/translation.json` subject changes, delete the changed key from all non-`en` `translation.json` files: - `make translation-json-del-key KEY=<key>` - Run once per changed top-level key. 5. In a separate commit, generate non-English translations: - `make -C scripts/python generate-translations` - Requires being logged in to Claude: `claude login` - If not logged in, stop and ask the user to run `claude login` first. 6. Finally, generate HTML emails: - `make html-email` ## Commit Boundaries (Required) - Commit 1: - Source edits (`*.gotemplate`, `en/messages/translation.json`, optional `en/translation.json`) - Generated `.mjml` - Commit 2: - Generated non-English translations (`make -C scripts/python generate-translations`) - Commit 3: - Generated email HTML artifacts (`make html-email`) Do not combine generated artifacts (`.html`, `.txt`, non-`en` translations) in the same commit as source `*.gotemplate` edits.
View on GitHub