@elevasis/sdk 1.21.0 → 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 (160) hide show
  1. package/dist/cli.cjs +951 -171
  2. package/dist/index.d.ts +632 -341
  3. package/dist/index.js +3102 -142
  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 +313 -4
  7. package/dist/test-utils/index.js +3246 -281
  8. package/dist/worker/index.js +3041 -80
  9. package/package.json +3 -3
  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 +110 -84
  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 +42 -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 +146 -83
  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 +226 -219
  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 +308 -88
  142. package/reference/scaffold/recipes/add-a-resource.md +134 -110
  143. package/reference/scaffold/recipes/customize-knowledge-browser.md +5 -5
  144. package/reference/scaffold/recipes/customize-organization-model.md +273 -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 +400 -400
  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 +2101 -2096
  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,42 +1,42 @@
1
- ---
2
- description: Platform conventions -- SDK workflows, agents, deployment, resource registry
3
- paths:
4
- - operations/**
5
- ---
6
-
7
- # Platform (Elevasis SDK)
8
-
9
- ## Safety Invariants
10
-
11
- - Every workflow implements `WorkflowDefinition` from `@elevasis/sdk` with: `config`, `contract` (Zod schemas), `steps` map, and `entryPoint`
12
- - Input/output schemas MUST come from `@shared/types` -- never define inline Zod schemas in workflow files
13
- - `operations/src/index.ts` default-exports a `DeploymentSpec` with `workflows` and `agents` arrays -- every resource must be registered here
14
- - Always run `check` before `deploy`
15
-
16
- ## Imports
17
-
18
- - `@elevasis/sdk` for types (`WorkflowDefinition`, `DeploymentSpec`)
19
- - `@elevasis/sdk/worker` for runtime utilities (`platform`, adapters: `llm`, `storage`, `scheduler`, `notifications`, `acqDb`, `list`)
20
- - `@shared/*` resolves to `../shared/*` for shared type imports
21
- - Never import from `ui/src/` -- separate runtimes
22
-
23
- ## Key Rules
24
-
25
- - Use typed adapters over raw `platform.call()` whenever a typed adapter exists
26
- - `version` in resource config is semver -- bump on contract changes
27
- - `status` is `'dev'` or `'prod'` -- new resources start as `'dev'`
28
-
29
- ## CLI Commands
30
-
31
- | Command | Purpose |
32
- | ------------------------------------ | ----------------------------- |
33
- | `pnpm -C operations run check` | Validate resource definitions |
34
- | `pnpm -C operations run deploy` | Deploy to dev |
35
- | `pnpm -C operations run deploy:prod` | Deploy to production |
36
-
37
- ## Detailed Reference
38
-
39
- - `node_modules/@elevasis/sdk/reference/scaffold/operations/workflow-recipes.md` -- workflow anatomy, adapter patterns, trigger patterns
40
- - `node_modules/@elevasis/sdk/reference/scaffold/recipes/add-a-resource.md` -- end-to-end resource authoring guide
41
- - `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md` -- lead-gen UI, hooks, list/member state, artifacts, and workflow adapter extension guide
42
- - SDK reference docs: `operations/node_modules/@elevasis/sdk/reference/` (concepts, framework, platform-tools, runtime, CLI)
1
+ ---
2
+ description: Platform conventions -- SDK workflows, agents, deployment, resource registry
3
+ paths:
4
+ - operations/**
5
+ ---
6
+
7
+ # Platform (Elevasis SDK)
8
+
9
+ ## Safety Invariants
10
+
11
+ - Every workflow implements `WorkflowDefinition` from `@elevasis/sdk` with: `config`, `contract` (Zod schemas), `steps` map, and `entryPoint`
12
+ - Input/output schemas MUST come from `@core/types` or browser-safe sibling schema files -- never define reusable workflow contracts inline in Node-only workflow files
13
+ - `operations/src/index.ts` default-exports a `DeploymentSpec` with `workflows` and `agents` arrays -- every resource must be registered here
14
+ - Always run `check` before `deploy`
15
+
16
+ ## Imports
17
+
18
+ - `@elevasis/sdk` for types (`WorkflowDefinition`, `DeploymentSpec`)
19
+ - `@elevasis/sdk/worker` for runtime utilities (`platform`, adapters: `llm`, `storage`, `scheduler`, `notifications`, `acqDb`, `list`)
20
+ - `@core/*` resolves to `../core/*` for shared type and org-model imports
21
+ - Never import from `ui/src/` -- separate runtimes
22
+
23
+ ## Key Rules
24
+
25
+ - Use typed adapters over raw `platform.call()` whenever a typed adapter exists
26
+ - `version` in resource config is semver -- bump on contract changes
27
+ - `status` is `'dev'` or `'prod'` -- new resources start as `'dev'`
28
+
29
+ ## CLI Commands
30
+
31
+ | Command | Purpose |
32
+ | ------------------------------------ | ----------------------------- |
33
+ | `pnpm -C operations run check` | Validate resource definitions |
34
+ | `pnpm -C operations run deploy` | Deploy to dev |
35
+ | `pnpm -C operations run deploy:prod` | Deploy to production |
36
+
37
+ ## Detailed Reference
38
+
39
+ - `node_modules/@elevasis/sdk/reference/scaffold/operations/workflow-recipes.md` -- workflow anatomy, adapter patterns, trigger patterns
40
+ - `node_modules/@elevasis/sdk/reference/scaffold/recipes/add-a-resource.md` -- end-to-end resource authoring guide
41
+ - `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md` -- lead-gen UI, hooks, list/member state, artifacts, and workflow adapter extension guide
42
+ - SDK reference docs: `operations/node_modules/@elevasis/sdk/reference/` (concepts, framework, platform-tools, runtime, CLI)
@@ -1,46 +1,49 @@
1
- ---
2
- description: Shared type boundary -- what belongs in core/types, import rules, schema conventions
3
- paths:
4
- - core/types/**
5
- ---
6
-
7
- # Shared Types
8
-
9
- `shared/` is the type boundary between the frontend (`src/`) and platform (`operations/`). Both runtimes import from here but never from each other.
10
-
11
- ## What Belongs Here
12
-
13
- - Zod schemas for workflow input/output contracts
14
- - TypeScript types inferred from those schemas (`z.infer<typeof schema>`)
15
- - Domain types referenced by both runtimes (status enums, entity shapes)
16
- - Shared constants
17
-
18
- ## What Does NOT Belong Here
19
-
20
- - React components, hooks, or anything importing `react`
21
- - SDK runtime code or anything importing `@elevasis/sdk/worker`
22
- - Browser APIs or Node-specific APIs
23
- - Implementation logic -- types and constants only
24
-
25
- ## Schema Convention
26
-
27
- Define Zod schemas first, then infer the type:
28
-
29
- ```typescript
30
- export const fooInputSchema = z.object({ ... })
31
- export type FooInput = z.infer<typeof fooInputSchema>
32
- ```
33
-
34
- Name schemas `<name>InputSchema` / `<name>OutputSchema`. Name types `<Name>Input` / `<Name>Output`.
35
-
36
- ## File Organization
37
-
38
- Types live in `shared/types/`. The directory structure:
39
-
40
- - `shared/types/index.ts` -- Main entry point, re-exports from domain files
41
- - As the project grows: split into domain files within the directory (e.g., `shared/types/billing.ts`, `shared/types/auth.ts`)
42
- - Re-export new domain files from `shared/types/index.ts`
43
-
44
- ## Path Alias
45
-
46
- Both tsconfigs resolve `@shared/*` to `shared/*`. Always use `@shared/types` (not relative paths) when importing from `src/` or `operations/src/`.
1
+ ---
2
+ description: Core type boundary -- what belongs in core/types, import rules, schema conventions
3
+ paths:
4
+ - core/types/**
5
+ ---
6
+
7
+ # Core Types
8
+
9
+ `core/types/` is the browser-safe type boundary between the frontend (`ui/`) and platform runtime (`operations/`). Both runtimes import from here but never from each other.
10
+
11
+ Keep this as a standalone rule because it autoloads only for `core/types/**` edits. Operations workflow rules can reference this boundary, but shared browser-safe contract guidance belongs here.
12
+
13
+ ## What Belongs Here
14
+
15
+ - Zod schemas for workflow input/output contracts
16
+ - TypeScript types inferred from those schemas (`z.infer<typeof schema>`)
17
+ - Domain types referenced by both runtimes (status enums, entity shapes)
18
+ - Shared constants
19
+
20
+ ## What Does NOT Belong Here
21
+
22
+ - React components, hooks, or anything importing `react`
23
+ - SDK runtime code or anything importing `@elevasis/sdk/worker`
24
+ - Browser APIs or Node-specific APIs
25
+ - Implementation logic -- types and constants only
26
+
27
+ ## Schema Convention
28
+
29
+ Define Zod schemas first, then infer the type:
30
+
31
+ ```typescript
32
+ export const fooInputSchema = z.object({ ... })
33
+ export type FooInput = z.infer<typeof fooInputSchema>
34
+ ```
35
+
36
+ Name schemas `<name>InputSchema` / `<name>OutputSchema`. Name types `<Name>Input` / `<Name>Output`.
37
+
38
+ ## File Organization
39
+
40
+ Types live in `core/types/`. The directory structure:
41
+
42
+ - `core/types/index.ts` -- Main entry point, re-exports from domain files
43
+ - `core/types/entities.ts` -- Entity contracts extending published base entities
44
+ - As the project grows: split into domain files within the directory (e.g., `core/types/billing.ts`, `core/types/auth.ts`)
45
+ - Re-export new domain files from `core/types/index.ts`
46
+
47
+ ## Path Alias
48
+
49
+ Project tsconfigs resolve `@core/*` to `core/*`. Always use `@core/types` or `@core/types/entities` (not relative paths) when importing shared contracts from `ui/` or `operations/src/`.
@@ -1,47 +1,47 @@
1
- ---
2
- description: In-progress task conventions -- doc format, status values, auto-save behavior
3
- ---
4
-
5
- # Task Tracking
6
-
7
- ## Status Values
8
-
9
- Exactly three values for frontmatter `status`: `planned`, `in-progress`, `complete`.
10
-
11
- ## Doc Format
12
-
13
- - Frontmatter: `title`, `description`, `status` only -- nothing else belongs in task-doc frontmatter; `resume_context` is DB-canonical on `prj_tasks`
14
- - Sections: Objective, Plan, Progress, Resume Context
15
- - Progress subsections use markers: `### Step N: Title -- PENDING`, `-- IN PROGRESS`, `-- COMPLETE`
16
-
17
- ## Auto-Update Behavior
18
-
19
- - When working on a tracked task, update the Progress section when a plan step transitions:
20
- - PENDING -> IN PROGRESS (starting work on a step)
21
- - IN PROGRESS -> COMPLETE (finishing a step)
22
- - Do NOT update on every action -- only on step transitions
23
-
24
- ## Auto-Save Behavior
25
-
26
- The agent auto-saves progress (no user action needed) when:
27
-
28
- - The conversation context is getting heavy (many tool calls, large file reads)
29
- - The user appears to be wrapping up (thanks, goodbye, switching topics)
30
- - Significant progress has been made (2+ steps completed without saving)
31
- - Before a context reset
32
-
33
- Auto-save updates the task doc's Progress and Resume Context sections silently, then briefly confirms. The canonical persistence path is `pnpm elevasis-sdk project:task:save` -- the CLI writes through to `prj_tasks.resume_context` (JSONB) so another agent can resume without re-deriving intent.
34
-
35
- ## Completion Suggestions
36
-
37
- When all plan steps are marked COMPLETE, **suggest** completing the task -- never auto-invoke. Ask: "All steps for '{task}' look done. Want me to finalize it?"
38
-
39
- ## Where Tasks Live
40
-
41
- Project tasks for this template live in the `prj_tasks` Supabase table, not in repo-local files. Operate on them via the SDK CLI:
42
-
43
- - `pnpm elevasis-sdk project:work` -- entrypoint for task work (resume / new intent detection)
44
- - `pnpm elevasis-sdk project:list` -- portfolio / task listing
45
- - `pnpm elevasis-sdk project:task:save` -- persist progress + `resume_context` to the DB
46
-
47
- The monorepo-side `/work` slash command still exists for monorepo task docs under `apps/docs/content/docs/in-progress/**`; that flow is unchanged. What went away is the external template's own `/work` skill and its `docs/in-progress/` directory -- external projects now route through the DB-backed `project:*` surface above.
1
+ ---
2
+ description: In-progress task conventions -- doc format, status values, auto-save behavior
3
+ ---
4
+
5
+ # Task Tracking
6
+
7
+ ## Status Values
8
+
9
+ Exactly three values for frontmatter `status`: `planned`, `in-progress`, `complete`.
10
+
11
+ ## Doc Format
12
+
13
+ - Frontmatter: `title`, `description`, `status` only -- nothing else belongs in task-doc frontmatter; `resume_context` is DB-canonical on `prj_tasks`
14
+ - Sections: Objective, Plan, Progress, Resume Context
15
+ - Progress subsections use markers: `### Step N: Title -- PENDING`, `-- IN PROGRESS`, `-- COMPLETE`
16
+
17
+ ## Auto-Update Behavior
18
+
19
+ - When working on a tracked task, update the Progress section when a plan step transitions:
20
+ - PENDING -> IN PROGRESS (starting work on a step)
21
+ - IN PROGRESS -> COMPLETE (finishing a step)
22
+ - Do NOT update on every action -- only on step transitions
23
+
24
+ ## Auto-Save Behavior
25
+
26
+ The agent auto-saves progress (no user action needed) when:
27
+
28
+ - The conversation context is getting heavy (many tool calls, large file reads)
29
+ - The user appears to be wrapping up (thanks, goodbye, switching topics)
30
+ - Significant progress has been made (2+ steps completed without saving)
31
+ - Before a context reset
32
+
33
+ Auto-save updates the task doc's Progress and Resume Context sections silently, then briefly confirms. The canonical persistence path is `pnpm elevasis-sdk project:task:save` -- the CLI writes through to `prj_tasks.resume_context` (JSONB) so another agent can resume without re-deriving intent.
34
+
35
+ ## Completion Suggestions
36
+
37
+ When all plan steps are marked COMPLETE, **suggest** completing the task -- never auto-invoke. Ask: "All steps for '{task}' look done. Want me to finalize it?"
38
+
39
+ ## Where Tasks Live
40
+
41
+ Project tasks for this template live in the `prj_tasks` Supabase table, not in repo-local files. Operate on them via the SDK CLI:
42
+
43
+ - `pnpm elevasis-sdk project:work` -- entrypoint for task work (resume / new intent detection)
44
+ - `pnpm elevasis-sdk project:list` -- portfolio / task listing
45
+ - `pnpm elevasis-sdk project:task:save` -- persist progress + `resume_context` to the DB
46
+
47
+ The monorepo-side `/work` slash command still exists for monorepo task docs under `apps/docs/content/docs/in-progress/**`; that flow is unchanged. What went away is the external template's own `/work` skill and its `docs/in-progress/` directory -- external projects now route through the DB-backed `project:*` surface above.