Files
2026-05-27 23:29:53 +01:00

2.8 KiB
Raw Permalink Blame History

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 status clean.
  • 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/ with src/ + feature subdirs.
  • 1.2 package.json 0.1.0, type: module, sideEffects: false, exports map per feature.
  • 1.3 tsconfig.lib.json extending ../../../../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 (no export *).

7. Gate

  • 7.1 bunx turbo lint typecheck test build --filter=@suaveplan/email-templates green.
  • 7.2 bunx turbo test:coverage --filter=@suaveplan/email-templates ≥ 100/100/100/100.
  • 7.3 bun scripts/folder-reorg/generate-manifest.ts refresh 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.