@elevasis/sdk 1.21.0 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/cli.cjs +1239 -173
  2. package/dist/index.d.ts +1752 -464
  3. package/dist/index.js +3477 -143
  4. package/dist/node/index.d.ts +1 -0
  5. package/dist/node/index.js +19 -1
  6. package/dist/test-utils/index.d.ts +1188 -127
  7. package/dist/test-utils/index.js +3359 -152
  8. package/dist/worker/index.js +3148 -80
  9. package/package.json +2 -2
  10. package/reference/claude-config/hooks/post-edit-validate.mjs +98 -98
  11. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +188 -188
  12. package/reference/claude-config/hooks/tool-failure-recovery.mjs +73 -73
  13. package/reference/claude-config/registries/graph-skills.json +4 -4
  14. package/reference/claude-config/registries/knowledge-flags.json +0 -2
  15. package/reference/claude-config/rules/active-change-index.md +80 -80
  16. package/reference/claude-config/rules/agent-start-here.md +277 -277
  17. package/reference/claude-config/rules/deployment.md +57 -57
  18. package/reference/claude-config/rules/error-handling.md +56 -56
  19. package/reference/claude-config/rules/execution.md +40 -40
  20. package/reference/claude-config/rules/frontend.md +4 -4
  21. package/reference/claude-config/rules/observability.md +31 -31
  22. package/reference/claude-config/rules/operations.md +29 -17
  23. package/reference/claude-config/rules/organization-model.md +113 -81
  24. package/reference/claude-config/rules/organization-os.md +115 -113
  25. package/reference/claude-config/rules/package-taxonomy.md +33 -33
  26. package/reference/claude-config/rules/platform.md +42 -42
  27. package/reference/claude-config/rules/shared-types.md +49 -46
  28. package/reference/claude-config/rules/task-tracking.md +47 -47
  29. package/reference/claude-config/rules/ui.md +200 -200
  30. package/reference/claude-config/rules/vibe.md +235 -235
  31. package/reference/claude-config/scripts/statusline-command.js +18 -18
  32. package/reference/claude-config/settings.json +34 -34
  33. package/reference/claude-config/skills/deploy/{SKILL.md → skill.md} +156 -156
  34. package/reference/claude-config/skills/dsp/SKILL.md +66 -66
  35. package/reference/claude-config/skills/elevasis/SKILL.md +235 -235
  36. package/reference/claude-config/skills/explore/SKILL.md +6 -6
  37. package/reference/claude-config/skills/git-sync/SKILL.md +126 -126
  38. package/reference/claude-config/skills/knowledge/SKILL.md +314 -299
  39. package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +100 -100
  40. package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +159 -159
  41. package/reference/claude-config/skills/knowledge/operations/customers.md +109 -109
  42. package/reference/claude-config/skills/knowledge/operations/features.md +76 -76
  43. package/reference/claude-config/skills/knowledge/operations/goals.md +118 -118
  44. package/reference/claude-config/skills/knowledge/operations/identity.md +93 -93
  45. package/reference/claude-config/skills/knowledge/operations/labels.md +94 -94
  46. package/reference/claude-config/skills/knowledge/operations/offerings.md +109 -109
  47. package/reference/claude-config/skills/knowledge/operations/roles.md +99 -99
  48. package/reference/claude-config/skills/knowledge/operations/techStack.md +30 -30
  49. package/reference/claude-config/skills/project/SKILL.md +1088 -1088
  50. package/reference/claude-config/skills/run-ui/SKILL.md +73 -73
  51. package/reference/claude-config/skills/save/SKILL.md +3 -3
  52. package/reference/claude-config/skills/setup/SKILL.md +275 -275
  53. package/reference/claude-config/skills/status/SKILL.md +59 -59
  54. package/reference/claude-config/skills/submit-request/SKILL.md +180 -180
  55. package/reference/claude-config/skills/sync/SKILL.md +47 -47
  56. package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
  57. package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
  58. package/reference/claude-config/skills/tutorial/technical.md +1303 -1303
  59. package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
  60. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +27 -27
  61. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +30 -30
  62. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +73 -73
  63. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +86 -86
  64. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +55 -55
  65. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +97 -97
  66. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +112 -112
  67. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +93 -93
  68. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +58 -58
  69. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +56 -56
  70. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +71 -71
  71. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
  72. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +59 -59
  73. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +42 -42
  74. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +60 -60
  75. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +37 -37
  76. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +34 -34
  77. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +38 -38
  78. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +32 -32
  79. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +33 -33
  80. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +69 -69
  81. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -30
  82. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +45 -0
  83. package/reference/claude-config/sync-notes/README.md +43 -43
  84. package/reference/cli.mdx +808 -808
  85. package/reference/concepts.mdx +146 -146
  86. package/reference/deployment/api.mdx +297 -297
  87. package/reference/deployment/command-center.mdx +209 -209
  88. package/reference/deployment/index.mdx +195 -195
  89. package/reference/deployment/provided-features.mdx +107 -107
  90. package/reference/deployment/ui-execution.mdx +250 -250
  91. package/reference/examples/organization-model.ts +171 -84
  92. package/reference/framework/agent.mdx +156 -156
  93. package/reference/framework/index.mdx +195 -195
  94. package/reference/framework/interaction-guidance.mdx +182 -182
  95. package/reference/framework/memory.mdx +326 -326
  96. package/reference/framework/project-structure.mdx +282 -282
  97. package/reference/framework/tutorial-system.mdx +135 -135
  98. package/reference/getting-started.mdx +142 -142
  99. package/reference/index.mdx +106 -106
  100. package/reference/packages/core/src/README.md +14 -14
  101. package/reference/packages/core/src/business/README.md +2 -2
  102. package/reference/packages/core/src/knowledge/README.md +32 -32
  103. package/reference/packages/core/src/organization-model/README.md +149 -149
  104. package/reference/packages/core/src/test-utils/README.md +37 -37
  105. package/reference/packages/ui/src/api/README.md +18 -18
  106. package/reference/packages/ui/src/app/README.md +24 -24
  107. package/reference/packages/ui/src/auth/README.md +18 -18
  108. package/reference/packages/ui/src/components/README.md +24 -24
  109. package/reference/packages/ui/src/execution/README.md +16 -16
  110. package/reference/packages/ui/src/features/README.md +28 -28
  111. package/reference/packages/ui/src/graph/README.md +16 -16
  112. package/reference/packages/ui/src/hooks/README.md +23 -23
  113. package/reference/packages/ui/src/initialization/README.md +19 -19
  114. package/reference/packages/ui/src/knowledge/README.md +31 -31
  115. package/reference/packages/ui/src/organization/README.md +18 -18
  116. package/reference/packages/ui/src/profile/README.md +19 -19
  117. package/reference/packages/ui/src/provider/README.md +32 -32
  118. package/reference/packages/ui/src/router/README.md +18 -18
  119. package/reference/packages/ui/src/sse/README.md +13 -13
  120. package/reference/packages/ui/src/test-utils/README.md +7 -7
  121. package/reference/packages/ui/src/theme/README.md +23 -23
  122. package/reference/packages/ui/src/theme/presets/README.md +19 -19
  123. package/reference/packages/ui/src/types/README.md +16 -16
  124. package/reference/packages/ui/src/utils/README.md +18 -18
  125. package/reference/packages/ui/src/zustand/README.md +18 -18
  126. package/reference/platform-tools/adapters-integration.mdx +301 -301
  127. package/reference/platform-tools/adapters-platform.mdx +553 -553
  128. package/reference/platform-tools/index.mdx +217 -217
  129. package/reference/platform-tools/type-safety.mdx +82 -82
  130. package/reference/resources/index.mdx +349 -349
  131. package/reference/resources/patterns.mdx +449 -449
  132. package/reference/resources/types.mdx +116 -116
  133. package/reference/roadmap.mdx +165 -165
  134. package/reference/runtime.mdx +173 -173
  135. package/reference/scaffold/core/organization-graph.mdx +110 -90
  136. package/reference/scaffold/core/organization-model.mdx +225 -213
  137. package/reference/scaffold/index.mdx +67 -67
  138. package/reference/scaffold/operations/propagation-pipeline.md +77 -77
  139. package/reference/scaffold/operations/scaffold-maintenance.md +12 -12
  140. package/reference/scaffold/operations/workflow-recipes.md +138 -138
  141. package/reference/scaffold/recipes/add-a-feature.md +307 -85
  142. package/reference/scaffold/recipes/add-a-resource.md +137 -103
  143. package/reference/scaffold/recipes/customize-knowledge-browser.md +5 -5
  144. package/reference/scaffold/recipes/customize-organization-model.md +275 -138
  145. package/reference/scaffold/recipes/extend-a-base-entity.md +8 -8
  146. package/reference/scaffold/recipes/extend-crm.md +3 -3
  147. package/reference/scaffold/recipes/extend-lead-gen.md +394 -394
  148. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +118 -118
  149. package/reference/scaffold/recipes/index.md +46 -46
  150. package/reference/scaffold/recipes/query-the-knowledge-graph.md +197 -170
  151. package/reference/scaffold/reference/contracts.md +2136 -2093
  152. package/reference/scaffold/reference/glossary.md +76 -76
  153. package/reference/scaffold/ui/composition-extensibility.mdx +233 -233
  154. package/reference/scaffold/ui/customization.md +243 -243
  155. package/reference/scaffold/ui/feature-flags-and-gating.md +46 -46
  156. package/reference/scaffold/ui/feature-shell.mdx +72 -72
  157. package/reference/scaffold/ui/recipes.md +221 -214
  158. package/reference/spine/spine-primer.md +96 -96
  159. package/reference/templates/index.mdx +47 -47
  160. package/reference/troubleshooting.mdx +223 -223
@@ -1,99 +1,99 @@
1
- ---
2
- title: Spine Primer
3
- description: Tenant-facing primer for using an Organization Model catalog as the shared coordination spine between workflow producers, runtime state, API filters, and UI projections.
4
- ---
1
+ ---
2
+ title: Spine Primer
3
+ description: Tenant-facing primer for using an Organization Model catalog as the shared coordination spine between workflow producers, runtime state, API filters, and UI projections.
4
+ ---
5
5
  <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
6
6
  <!-- Regenerate: pnpm scaffold:sync -->
7
7
 
8
-
9
- # Spine Primer
10
-
11
- Use this primer when a tenant domain has a closed set of stages, statuses, or catalog keys that multiple surfaces must share. A spine is the tenant Organization Model vocabulary that coordinates workflows, runtime state, API reads, and UI rendering without forcing those surfaces to import from each other.
12
-
13
- The lead-generation pattern is the reference shape: `organizationModel.prospecting.stages` defines the stage vocabulary, workflow templates reference those stages, workflow factories validate stage keys before running, entity state stores sparse per-stage progress, and UI views render progress from the same vocabulary.
14
-
15
- ## What The Spine Owns
16
-
17
- A spine owns the shared vocabulary for one domain. The vocabulary is not just a list of strings. Each key should carry enough metadata for consumers to derive behavior consistently:
18
-
19
- - `key` identifies the stage or catalog member.
20
- - `label` gives a human-readable name.
21
- - `description` explains the business meaning.
22
- - `order` gives stable display and workflow ordering.
23
- - `entity` identifies which tenant entity the stage updates.
24
-
25
- The same keys then appear in four places:
26
-
27
- | Role | Tenant-facing shape |
28
- | --- | --- |
29
- | Vocabulary | `organizationModel.prospecting.stages` |
30
- | Process | workflow templates and build steps that reference stage keys |
31
- | Runtime state | entity state maps such as `{ [stageKey]: { status, updatedAt, data } }` |
32
- | Consumer projection | API filters, progress summaries, and UI step rendering |
33
-
34
- ## Layering
35
-
36
- ```text
37
- tenant Organization Model
38
- - prospecting stages
39
- - workflow templates
40
- - capability bindings
41
- |
42
- +--> workflow factory
43
- | - validates stage keys
44
- | - runs producers
45
- | - dispatches entity-tagged results
46
- |
47
- +--> API and query helpers
48
- | - filter pending entities by stage key
49
- | - aggregate progress from state maps
50
- |
51
- +--> UI projections
52
- - render labels and order from the catalog
53
- - distinguish known and unknown state keys
54
-
55
- entity runtime state
56
- { [stageKey]: { status, updatedAt, data } }
57
- ```
58
-
59
- The important boundary is that producers and consumers coordinate through the Organization Model vocabulary plus runtime state. They do not coordinate through direct imports, duplicated string constants, or workflow-specific side channels.
60
-
61
- ## Invariants
62
-
63
- 1. **The vocabulary is closed and validated.** Workflow factories should reject stage keys that are not present in the tenant Organization Model.
64
-
65
- 2. **The vocabulary carries metadata.** Labels, descriptions, ordering, and entity ownership should come from the catalog rather than being copied into each consumer.
66
-
67
- 3. **Runtime state is sparse and additive.** New stages appear in entity state when reached. Adding a catalog member should not require backfilling every entity.
68
-
69
- 4. **Producers return entity-tagged results.** Workflow steps should return which entity changed, its identifier, status, and optional data. The factory owns writing those results to the correct state map.
70
-
71
- 5. **Capability binding is separate from stage naming.** Workflow templates should point at capability keys, and the tenant environment can bind those capabilities to concrete workflow resources.
72
-
73
- ## Applying The Pattern
74
-
75
- Use this checklist when adding or changing a tenant domain spine:
76
-
77
- 1. Define the domain catalog in the tenant Organization Model.
78
- 2. Include labels, descriptions, ordering, and entity ownership in each catalog entry.
79
- 3. Make workflow templates reference catalog keys instead of free-form strings.
80
- 4. Validate template stage keys when constructing workflow factories.
81
- 5. Store progress in sparse entity state maps keyed by catalog member.
82
- 6. Return entity-tagged workflow results and let the factory dispatch state updates.
83
- 7. Read progress through query helpers that use the same catalog keys.
84
- 8. Render UI labels, order, and status from the catalog plus state map.
85
-
86
- Promote a vocabulary to a spine when the same catalog coordinates all three surfaces: at least one process definition, at least one workflow producer, and at least one independent consumer such as an API query or UI view.
87
-
88
- ## Counter-Patterns
89
-
90
- Avoid these patterns in spine-governed domains:
91
-
92
- - Free-form stage strings in workflow inputs.
93
- - Duplicated UI-only labels or ordering.
94
- - Per-workflow skip logic that bypasses the shared pending and progress contract.
95
- - State writes from individual steps instead of the workflow factory.
96
- - Hidden side channels for progress, such as ad hoc context keys.
97
- - Direct coupling between producer code and consumer UI code.
98
-
99
- When in doubt, update the Organization Model vocabulary first, then let workflow templates, factories, queries, and views project from it.
8
+
9
+ # Spine Primer
10
+
11
+ Use this primer when a tenant domain has a closed set of stages, statuses, or catalog keys that multiple surfaces must share. A spine is the tenant Organization Model vocabulary that coordinates workflows, runtime state, API reads, and UI rendering without forcing those surfaces to import from each other.
12
+
13
+ The lead-generation pattern is the reference shape: `organizationModel.prospecting.stages` defines the stage vocabulary, workflow templates reference those stages, workflow factories validate stage keys before running, entity state stores sparse per-stage progress, and UI views render progress from the same vocabulary.
14
+
15
+ ## What The Spine Owns
16
+
17
+ A spine owns the shared vocabulary for one domain. The vocabulary is not just a list of strings. Each key should carry enough metadata for consumers to derive behavior consistently:
18
+
19
+ - `key` identifies the stage or catalog member.
20
+ - `label` gives a human-readable name.
21
+ - `description` explains the business meaning.
22
+ - `order` gives stable display and workflow ordering.
23
+ - `entity` identifies which tenant entity the stage updates.
24
+
25
+ The same keys then appear in four places:
26
+
27
+ | Role | Tenant-facing shape |
28
+ | --- | --- |
29
+ | Vocabulary | `organizationModel.prospecting.stages` |
30
+ | Process | workflow templates and build steps that reference stage keys |
31
+ | Runtime state | entity state maps such as `{ [stageKey]: { status, updatedAt, data } }` |
32
+ | Consumer projection | API filters, progress summaries, and UI step rendering |
33
+
34
+ ## Layering
35
+
36
+ ```text
37
+ tenant Organization Model
38
+ - prospecting stages
39
+ - workflow templates
40
+ - capability bindings
41
+ |
42
+ +--> workflow factory
43
+ | - validates stage keys
44
+ | - runs producers
45
+ | - dispatches entity-tagged results
46
+ |
47
+ +--> API and query helpers
48
+ | - filter pending entities by stage key
49
+ | - aggregate progress from state maps
50
+ |
51
+ +--> UI projections
52
+ - render labels and order from the catalog
53
+ - distinguish known and unknown state keys
54
+
55
+ entity runtime state
56
+ { [stageKey]: { status, updatedAt, data } }
57
+ ```
58
+
59
+ The important boundary is that producers and consumers coordinate through the Organization Model vocabulary plus runtime state. They do not coordinate through direct imports, duplicated string constants, or workflow-specific side channels.
60
+
61
+ ## Invariants
62
+
63
+ 1. **The vocabulary is closed and validated.** Workflow factories should reject stage keys that are not present in the tenant Organization Model.
64
+
65
+ 2. **The vocabulary carries metadata.** Labels, descriptions, ordering, and entity ownership should come from the catalog rather than being copied into each consumer.
66
+
67
+ 3. **Runtime state is sparse and additive.** New stages appear in entity state when reached. Adding a catalog member should not require backfilling every entity.
68
+
69
+ 4. **Producers return entity-tagged results.** Workflow steps should return which entity changed, its identifier, status, and optional data. The factory owns writing those results to the correct state map.
70
+
71
+ 5. **Capability binding is separate from stage naming.** Workflow templates should point at capability keys, and the tenant environment can bind those capabilities to concrete workflow resources.
72
+
73
+ ## Applying The Pattern
74
+
75
+ Use this checklist when adding or changing a tenant domain spine:
76
+
77
+ 1. Define the domain catalog in the tenant Organization Model.
78
+ 2. Include labels, descriptions, ordering, and entity ownership in each catalog entry.
79
+ 3. Make workflow templates reference catalog keys instead of free-form strings.
80
+ 4. Validate template stage keys when constructing workflow factories.
81
+ 5. Store progress in sparse entity state maps keyed by catalog member.
82
+ 6. Return entity-tagged workflow results and let the factory dispatch state updates.
83
+ 7. Read progress through query helpers that use the same catalog keys.
84
+ 8. Render UI labels, order, and status from the catalog plus state map.
85
+
86
+ Promote a vocabulary to a spine when the same catalog coordinates all three surfaces: at least one process definition, at least one workflow producer, and at least one independent consumer such as an API query or UI view.
87
+
88
+ ## Counter-Patterns
89
+
90
+ Avoid these patterns in spine-governed domains:
91
+
92
+ - Free-form stage strings in workflow inputs.
93
+ - Duplicated UI-only labels or ordering.
94
+ - Per-workflow skip logic that bypasses the shared pending and progress contract.
95
+ - State writes from individual steps instead of the workflow factory.
96
+ - Hidden side channels for progress, such as ad hoc context keys.
97
+ - Direct coupling between producer code and consumer UI code.
98
+
99
+ When in doubt, update the Organization Model vocabulary first, then let workflow templates, factories, queries, and views project from it.
@@ -1,47 +1,47 @@
1
- ---
2
- title: Templates
3
- description: Ready-to-use workflow templates for common automation patterns -- web scraping, data enrichment, email sending, lead scoring, PDF generation, text classification, and recurring jobs
4
- ---
5
-
6
- Templates are pre-built workflow definitions covering the most common SDK automation patterns. Each template includes a complete `WorkflowDefinition` with Zod schemas, step handlers, and real platform tool usage. Scaffold any template through Claude Code (`/work` then describe the template) or adapt the code manually.
7
-
8
- Templates follow the same `WorkflowDefinition` structure as any custom resource -- they are reference implementations, not a special feature. The patterns demonstrated (multi-step chains, LLM structured output, Supabase CRUD, scheduler setup) apply directly to custom workflows you build.
9
-
10
- All templates are available for any organization. Credentials specific to each template (Supabase, Resend, Apify, etc.) must be created in the command center before running the workflow.
11
-
12
- ## Documentation
13
-
14
- ### Data Collection & Processing
15
-
16
- - [Web Scraper](web-scraper.mdx) - Apify actor runs web scrape, stores structured results in Supabase table
17
- - [Data Enrichment](data-enrichment.mdx) - Reads Supabase records, enriches each with LLM, writes results back; supports batching
18
-
19
- ### Communication & CRM
20
-
21
- - [Email Sender](email-sender.mdx) - Transactional email via Resend with plain text and HTML support, single or multiple recipients
22
- - [Lead Scorer](lead-scorer.mdx) - Multi-criteria LLM lead scoring with configurable rubric and Supabase result storage
23
-
24
- ### Documents & AI
25
-
26
- - [PDF Generator](pdf-generator.mdx) - Renders structured data to PDF, uploads to platform storage, returns signed download URL
27
- - [Text Classifier](text-classifier.mdx) - Multi-label text classification via LLM structured output, configurable categories and confidence scoring
28
-
29
- ### Scheduling
30
-
31
- - [Recurring Job](recurring-job.mdx) - Two-workflow setup pattern: a setup workflow creates the schedule, the job workflow runs on each trigger; uses idempotency keys for safe re-registration
32
-
33
- ## Platform Tools Used
34
-
35
- | Template | Platform Tools | Credentials Needed |
36
- | --------------- | ------------------- | ------------------------------- |
37
- | Web Scraper | `apify`, `supabase` | `apify`, `my-database` |
38
- | Data Enrichment | `llm`, `supabase` | `my-database` (LLM server-side) |
39
- | Email Sender | `resend` | `my-resend` |
40
- | Lead Scorer | `llm`, `supabase` | `my-database` (LLM server-side) |
41
- | PDF Generator | `pdf`, `storage` | None (platform services) |
42
- | Text Classifier | `llm` | None (LLM server-side) |
43
- | Recurring Job | `scheduler` | None (platform service) |
44
-
45
- ---
46
-
47
- **Last Updated:** 2026-03-19
1
+ ---
2
+ title: Templates
3
+ description: Ready-to-use workflow templates for common automation patterns -- web scraping, data enrichment, email sending, lead scoring, PDF generation, text classification, and recurring jobs
4
+ ---
5
+
6
+ Templates are pre-built workflow definitions covering the most common SDK automation patterns. Each template includes a complete `WorkflowDefinition` with Zod schemas, step handlers, and real platform tool usage. Scaffold any template through Claude Code (`/work` then describe the template) or adapt the code manually.
7
+
8
+ Templates follow the same `WorkflowDefinition` structure as any custom resource -- they are reference implementations, not a special feature. The patterns demonstrated (multi-step chains, LLM structured output, Supabase CRUD, scheduler setup) apply directly to custom workflows you build.
9
+
10
+ All templates are available for any organization. Credentials specific to each template (Supabase, Resend, Apify, etc.) must be created in the command center before running the workflow.
11
+
12
+ ## Documentation
13
+
14
+ ### Data Collection & Processing
15
+
16
+ - [Web Scraper](web-scraper.mdx) - Apify actor runs web scrape, stores structured results in Supabase table
17
+ - [Data Enrichment](data-enrichment.mdx) - Reads Supabase records, enriches each with LLM, writes results back; supports batching
18
+
19
+ ### Communication & CRM
20
+
21
+ - [Email Sender](email-sender.mdx) - Transactional email via Resend with plain text and HTML support, single or multiple recipients
22
+ - [Lead Scorer](lead-scorer.mdx) - Multi-criteria LLM lead scoring with configurable rubric and Supabase result storage
23
+
24
+ ### Documents & AI
25
+
26
+ - [PDF Generator](pdf-generator.mdx) - Renders structured data to PDF, uploads to platform storage, returns signed download URL
27
+ - [Text Classifier](text-classifier.mdx) - Multi-label text classification via LLM structured output, configurable categories and confidence scoring
28
+
29
+ ### Scheduling
30
+
31
+ - [Recurring Job](recurring-job.mdx) - Two-workflow setup pattern: a setup workflow creates the schedule, the job workflow runs on each trigger; uses idempotency keys for safe re-registration
32
+
33
+ ## Platform Tools Used
34
+
35
+ | Template | Platform Tools | Credentials Needed |
36
+ | --------------- | ------------------- | ------------------------------- |
37
+ | Web Scraper | `apify`, `supabase` | `apify`, `my-database` |
38
+ | Data Enrichment | `llm`, `supabase` | `my-database` (LLM server-side) |
39
+ | Email Sender | `resend` | `my-resend` |
40
+ | Lead Scorer | `llm`, `supabase` | `my-database` (LLM server-side) |
41
+ | PDF Generator | `pdf`, `storage` | None (platform services) |
42
+ | Text Classifier | `llm` | None (LLM server-side) |
43
+ | Recurring Job | `scheduler` | None (platform service) |
44
+
45
+ ---
46
+
47
+ **Last Updated:** 2026-03-19