2.8 KiB
2.8 KiB
Tasks: enterprise-email-templates
Change ID: enterprise-email-templates
Package: @suaveplan/email-templates
Target path: packages/communication/emails/email-templates
0. Pre-flight (non-negotiable)
- 0.1
pwd && git worktree list && git statusclean. - 0.2 Sync to base SHA
cd3e462c436722e86c150dce144efffd91195495. - 0.3 Read enterprise spec + every upstream source file.
1. Scaffold
- 1.1 Create
packages/communication/emails/email-templates/withsrc/+ feature subdirs. - 1.2
package.json0.1.0,type: module,sideEffects: false, exports map per feature. - 1.3
tsconfig.lib.jsonextending../../../../tsconfig.base.json. - 1.4
vite.config.ts(multi-entry build, externals). - 1.5
vitest.config.ts(forks, istanbul, 100% thresholds). - 1.6
README.md.
2. Foundation modules
- 2.1
src/error-codes/error-codes.{ts,test.ts,md,index.ts}— six EMAIL_TEMPLATES codes + EmailTemplatesError. - 2.2
src/telemetry/telemetry.{ts,test.ts,md,index.ts}— meter + four instruments. - 2.3
src/vnode/vnode.{ts,test.ts,md,types.ts,index.ts}—h(),renderVNode, escape helpers. - 2.4
src/theme/theme.{ts,test.ts,md,types.ts,index.ts}— defaultTheme, createTheme, mergeThemes.
3. Renderer + message + builder + registry
- 3.1
src/renderer/renderer.{ts,test.ts,md,types.ts,index.ts}—renderToHtml,wrapInDocument,resolveSubject,escapeHtml,stripHtml. - 3.2
src/message/message.{ts,test.ts,md,types.ts,index.ts}—createEmailMessage. - 3.3
src/template-builder/template-builder.{ts,test.ts,md,types.ts,index.ts}— TemplateBuilder + createTemplateBuilder. - 3.4
src/template-registry/template-registry.{ts,test.ts,md,types.ts,index.ts}— TemplateRegistry + createRegistry + search.
4. Components (nine)
- 4.1 EmailLayout
- 4.2 EmailContainer
- 4.3 EmailHeading
- 4.4 EmailText
- 4.5 EmailLink
- 4.6 EmailImage
- 4.7 EmailDivider
- 4.8 EmailButton
- 4.9 EmailFooter (clock-injectable)
5. Templates (five)
- 5.1 Welcome
- 5.2 Verification
- 5.3 PasswordReset
- 5.4 Notification
- 5.5 Invoice
6. Index barrel
- 6.1
src/index.ts— named re-exports for full surface (noexport *).
7. Gate
- 7.1
bunx turbo lint typecheck test build --filter=@suaveplan/email-templatesgreen. - 7.2
bunx turbo test:coverage --filter=@suaveplan/email-templates≥ 100/100/100/100. - 7.3
bun scripts/folder-reorg/generate-manifest.tsrefresh MANIFEST. - 7.4 STATUS.md flip
–→✅+ counter.
8. OpenSpec finalisation
- 8.1 Fold spec delta into
openspec/specs/email-templates/spec.md. - 8.2 Move folder to
openspec/archive/2026-05-25-enterprise-email-templates/. - 8.3 Conventional-commit on
feat/migrate-email-templates.