@elevasis/sdk 1.20.2 → 1.22.0

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 (164) hide show
  1. package/dist/cli.cjs +4220 -1583
  2. package/dist/index.d.ts +1035 -481
  3. package/dist/index.js +7381 -4187
  4. package/dist/node/index.d.ts +1 -3
  5. package/dist/node/index.js +40 -49
  6. package/dist/test-utils/index.d.ts +699 -123
  7. package/dist/test-utils/index.js +3826 -630
  8. package/dist/worker/index.js +3616 -442
  9. package/package.json +3 -3
  10. package/reference/_navigation.md +9 -7
  11. package/reference/_reference-manifest.json +1 -1
  12. package/reference/claude-config/hooks/post-edit-validate.mjs +98 -98
  13. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +188 -188
  14. package/reference/claude-config/hooks/tool-failure-recovery.mjs +73 -73
  15. package/reference/claude-config/registries/graph-skills.json +4 -4
  16. package/reference/claude-config/registries/knowledge-flags.json +0 -2
  17. package/reference/claude-config/rules/active-change-index.md +80 -80
  18. package/reference/claude-config/rules/agent-start-here.md +277 -273
  19. package/reference/claude-config/rules/deployment.md +57 -57
  20. package/reference/claude-config/rules/error-handling.md +56 -56
  21. package/reference/claude-config/rules/execution.md +40 -40
  22. package/reference/claude-config/rules/frontend.md +4 -4
  23. package/reference/claude-config/rules/observability.md +31 -31
  24. package/reference/claude-config/rules/operations.md +29 -17
  25. package/reference/claude-config/rules/organization-model.md +108 -40
  26. package/reference/claude-config/rules/organization-os.md +115 -113
  27. package/reference/claude-config/rules/package-taxonomy.md +33 -33
  28. package/reference/claude-config/rules/platform.md +42 -42
  29. package/reference/claude-config/rules/shared-types.md +49 -46
  30. package/reference/claude-config/rules/task-tracking.md +47 -47
  31. package/reference/claude-config/rules/ui.md +200 -200
  32. package/reference/claude-config/rules/vibe.md +235 -231
  33. package/reference/claude-config/scripts/statusline-command.js +18 -18
  34. package/reference/claude-config/settings.json +34 -34
  35. package/reference/claude-config/skills/deploy/{SKILL.md → skill.md} +156 -156
  36. package/reference/claude-config/skills/dsp/SKILL.md +66 -66
  37. package/reference/claude-config/skills/elevasis/SKILL.md +235 -235
  38. package/reference/claude-config/skills/explore/SKILL.md +6 -6
  39. package/reference/claude-config/skills/git-sync/SKILL.md +126 -126
  40. package/reference/claude-config/skills/knowledge/SKILL.md +330 -271
  41. package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +100 -100
  42. package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +159 -158
  43. package/reference/claude-config/skills/knowledge/operations/customers.md +109 -109
  44. package/reference/claude-config/skills/knowledge/operations/features.md +76 -113
  45. package/reference/claude-config/skills/knowledge/operations/goals.md +118 -118
  46. package/reference/claude-config/skills/knowledge/operations/identity.md +93 -93
  47. package/reference/claude-config/skills/knowledge/operations/labels.md +94 -89
  48. package/reference/claude-config/skills/knowledge/operations/offerings.md +109 -109
  49. package/reference/claude-config/skills/knowledge/operations/roles.md +99 -99
  50. package/reference/claude-config/skills/knowledge/operations/techStack.md +30 -30
  51. package/reference/claude-config/skills/project/SKILL.md +1088 -1088
  52. package/reference/claude-config/skills/run-ui/SKILL.md +73 -73
  53. package/reference/claude-config/skills/save/SKILL.md +3 -3
  54. package/reference/claude-config/skills/setup/SKILL.md +275 -275
  55. package/reference/claude-config/skills/status/SKILL.md +59 -59
  56. package/reference/claude-config/skills/submit-request/SKILL.md +180 -180
  57. package/reference/claude-config/skills/sync/SKILL.md +47 -47
  58. package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
  59. package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
  60. package/reference/claude-config/skills/tutorial/technical.md +1303 -1306
  61. package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
  62. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +27 -27
  63. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +30 -30
  64. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +73 -73
  65. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +86 -86
  66. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +55 -55
  67. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +97 -97
  68. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +112 -112
  69. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +93 -93
  70. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +58 -58
  71. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +56 -56
  72. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +71 -71
  73. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
  74. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +59 -59
  75. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +42 -42
  76. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +60 -60
  77. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +37 -37
  78. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +34 -34
  79. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +38 -38
  80. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +32 -32
  81. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +33 -33
  82. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +69 -69
  83. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -0
  84. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +42 -0
  85. package/reference/claude-config/sync-notes/README.md +43 -43
  86. package/reference/cli.mdx +808 -668
  87. package/reference/concepts.mdx +146 -146
  88. package/reference/deployment/api.mdx +297 -297
  89. package/reference/deployment/command-center.mdx +209 -209
  90. package/reference/deployment/index.mdx +195 -195
  91. package/reference/deployment/provided-features.mdx +107 -93
  92. package/reference/deployment/ui-execution.mdx +250 -250
  93. package/reference/examples/organization-model.ts +147 -84
  94. package/reference/framework/agent.mdx +156 -156
  95. package/reference/framework/index.mdx +195 -195
  96. package/reference/framework/interaction-guidance.mdx +182 -182
  97. package/reference/framework/memory.mdx +326 -326
  98. package/reference/framework/project-structure.mdx +282 -282
  99. package/reference/framework/tutorial-system.mdx +135 -135
  100. package/reference/getting-started.mdx +142 -142
  101. package/reference/index.mdx +106 -106
  102. package/reference/packages/core/src/README.md +14 -14
  103. package/reference/packages/core/src/business/README.md +2 -2
  104. package/reference/packages/core/src/knowledge/README.md +33 -32
  105. package/reference/packages/core/src/organization-model/README.md +149 -109
  106. package/reference/packages/core/src/test-utils/README.md +37 -37
  107. package/reference/packages/ui/src/api/README.md +18 -18
  108. package/reference/packages/ui/src/app/README.md +24 -24
  109. package/reference/packages/ui/src/auth/README.md +18 -18
  110. package/reference/packages/ui/src/components/README.md +24 -24
  111. package/reference/packages/ui/src/execution/README.md +16 -16
  112. package/reference/packages/ui/src/features/README.md +28 -28
  113. package/reference/packages/ui/src/graph/README.md +16 -16
  114. package/reference/packages/ui/src/hooks/README.md +23 -23
  115. package/reference/packages/ui/src/initialization/README.md +19 -19
  116. package/reference/packages/ui/src/knowledge/README.md +31 -31
  117. package/reference/packages/ui/src/organization/README.md +18 -18
  118. package/reference/packages/ui/src/profile/README.md +19 -19
  119. package/reference/packages/ui/src/provider/README.md +32 -32
  120. package/reference/packages/ui/src/router/README.md +18 -18
  121. package/reference/packages/ui/src/sse/README.md +13 -13
  122. package/reference/packages/ui/src/test-utils/README.md +7 -7
  123. package/reference/packages/ui/src/theme/README.md +23 -23
  124. package/reference/packages/ui/src/theme/presets/README.md +19 -19
  125. package/reference/packages/ui/src/types/README.md +16 -16
  126. package/reference/packages/ui/src/utils/README.md +18 -18
  127. package/reference/packages/ui/src/zustand/README.md +18 -18
  128. package/reference/platform-tools/adapters-integration.mdx +301 -301
  129. package/reference/platform-tools/adapters-platform.mdx +553 -553
  130. package/reference/platform-tools/index.mdx +217 -217
  131. package/reference/platform-tools/type-safety.mdx +82 -82
  132. package/reference/resources/index.mdx +349 -349
  133. package/reference/resources/patterns.mdx +449 -449
  134. package/reference/resources/types.mdx +116 -116
  135. package/reference/roadmap.mdx +165 -165
  136. package/reference/runtime.mdx +173 -173
  137. package/reference/scaffold/core/organization-graph.mdx +110 -89
  138. package/reference/scaffold/core/organization-model.mdx +226 -171
  139. package/reference/scaffold/index.mdx +67 -67
  140. package/reference/scaffold/operations/propagation-pipeline.md +77 -77
  141. package/reference/scaffold/operations/scaffold-maintenance.md +10 -10
  142. package/reference/scaffold/operations/workflow-recipes.md +138 -138
  143. package/reference/scaffold/recipes/add-a-feature.md +310 -88
  144. package/reference/scaffold/recipes/add-a-resource.md +137 -117
  145. package/reference/scaffold/recipes/customize-crm-actions.md +439 -439
  146. package/reference/scaffold/recipes/customize-knowledge-browser.md +384 -0
  147. package/reference/scaffold/recipes/customize-organization-model.md +281 -118
  148. package/reference/scaffold/recipes/extend-a-base-entity.md +8 -8
  149. package/reference/scaffold/recipes/extend-crm.md +40 -39
  150. package/reference/scaffold/recipes/extend-lead-gen.md +400 -401
  151. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +118 -114
  152. package/reference/scaffold/recipes/index.md +47 -46
  153. package/reference/scaffold/recipes/query-the-knowledge-graph.md +227 -0
  154. package/reference/scaffold/reference/contracts.md +2389 -2121
  155. package/reference/scaffold/reference/feature-registry.md +9 -20
  156. package/reference/scaffold/reference/glossary.md +76 -76
  157. package/reference/scaffold/ui/composition-extensibility.mdx +233 -233
  158. package/reference/scaffold/ui/customization.md +243 -243
  159. package/reference/scaffold/ui/feature-flags-and-gating.md +46 -46
  160. package/reference/scaffold/ui/feature-shell.mdx +72 -72
  161. package/reference/scaffold/ui/recipes.md +221 -213
  162. package/reference/spine/spine-primer.md +96 -96
  163. package/reference/templates/index.mdx +47 -47
  164. 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