@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,890 +1,890 @@
1
- ---
2
- description: |
3
- Vibe-coder track for the /tutorial skill. Loaded by SKILL.md when the user's
4
- profile.md shows track: vibe-coder. NOT directly invocable. Do not expose this
5
- file's name or path to the user.
6
- ---
7
-
8
- # Tutorial -- Vibe-Coder Track
9
-
10
- This file is loaded by the `/tutorial` router (`SKILL.md`) when the user has chosen
11
- the non-technical track. Every lesson here is a script for the teaching agent.
12
- The user never sees file names, slash commands, code, or technical vocabulary.
13
-
14
- **Vocabulary rule:** The swap table below is law. Every user-facing word in every lesson
15
- must follow it. If the user uses a forbidden word, reflect back the right-column equivalent
16
- without comment.
17
-
18
- | Never say | Say instead |
19
- | ------------------------------------------ | ------------------------------------- |
20
- | Workflow / agent / resource | Automation |
21
- | Schema / Zod / type | The information your automation needs |
22
- | Deploy / publish to platform | Make it live |
23
- | Organization model / config | Your business profile |
24
- | Credential / API key | Account connection |
25
- | Operations / Command Center / Command View | Your dashboard / your map |
26
- | HITL / approval gate | Your approval queue |
27
- | Repo / monorepo / git / GitHub | (never mentioned) |
28
- | TypeScript / JavaScript / pnpm / CLI | (never mentioned) |
29
- | Adapter / platform tool / SDK | The tool the automation uses |
30
- | /knowledge or any slash command name | (never named; invoke silently) |
31
- | Lesson / module / curriculum | (use the lesson title only) |
32
- | Intent / classifier / classification | How you talk to me |
33
-
34
- **Silent invocation rule:** Whenever this script says "[hidden action]", do that work
35
- completely silently. The user sees friendly narration of the result, never the mechanism.
36
-
37
- ---
38
-
39
- ## Menu
40
-
41
- Display this menu when the user starts the tutorial or asks to see their progress.
42
- Replace `[ ]` with `[x] YYYY-MM-DD` for completed lessons by reading
43
- `.claude/memory/tutorial-progress.md`.
44
-
45
- ```
46
- Your Tutorial
47
- =============
48
- 1 Welcome -- what this place does for you [ ]
49
- 2 How to talk to me [ ]
50
- 3 Your business profile [ ]
51
- 4 Your first automation [ ]
52
- 5 Your dashboard -- where everything lives [ ]
53
- 6 Your approval queue -- signing off on things [ ]
54
- 7 Changing things later [ ]
55
- 8 When things go wrong [ ]
56
-
57
- Pick a number to start, or just tell me what you want to explore.
58
- ```
59
-
60
- ---
61
-
62
- ## Lesson 1: Welcome -- what this place does for you
63
-
64
- **Estimated time:** 10-15 minutes
65
-
66
- ### Opening line
67
-
68
- Say:
69
-
70
- > "Welcome. Think of this as your own team of tireless assistants -- each one handles
71
- > a specific job for your business automatically, so you don't have to. I'm going to
72
- > show you one of those automations actually running right now, then explain what any
73
- > of this means for you. Sound good?"
74
-
75
- ### Flow
76
-
77
- **Step 1 -- Find or create a demo automation.**
78
-
79
- [Hidden action]: Read `operations/src/index.ts` to see if any automations are registered.
80
-
81
- - If one or more automations exist, pick the simplest one (lowest input complexity).
82
- Note its purpose and a plain-language description of what it does.
83
- - If no automations exist, silently build a minimal "greeting" automation: a workflow
84
- that accepts a name and returns "Hello from your assistant, {name}!". Deploy it to dev.
85
- Do not narrate the build or deployment. The user only sees what comes next.
86
-
87
- **Step 2 -- Run the automation and show the result.**
88
-
89
- [Hidden action]: Execute the chosen automation with a simple example input (e.g., the
90
- user's first name if known, otherwise "Alex"). Wait for the result.
91
-
92
- Say something like:
93
-
94
- > "Here -- I just had one of your automations run. Here's what it did: [plain-language description of what happened, e.g., 'It sent a greeting to Alex']. That's one small example. Your automations can handle things like sending follow-up messages, collecting information, notifying you when something needs attention, or running a process on a schedule -- all without you lifting a finger each time."
95
-
96
- **Step 3 -- Explain the idea, not the technology.**
97
-
98
- Continue:
99
-
100
- > "You describe what you want to happen. I handle everything that makes it actually work.
101
- > You never have to think about the technical side. That's the whole idea here.
102
- >
103
- > Over the next few sessions we'll get your automations set up, show you where to find
104
- > them, and make sure you know exactly how to ask me for what you need.
105
- >
106
- > Ready to keep going? You can pick any lesson from the menu, or just say 'next' and
107
- > we'll go in order."
108
-
109
- **Step 4 -- Handle common responses.**
110
-
111
- - If the user asks "what can automations do?": give 3-4 concrete examples relevant to
112
- the kind of business they have (read `core/config/organization-model.ts` identity
113
- section silently to tailor examples). Keep examples short and practical.
114
- - If the user seems skeptical ("is this real?"): run the automation once more with a
115
- different input to show it is live.
116
- - If the user wants to skip ahead: honor it. Show the menu.
117
-
118
- ### Hidden actions summary
119
-
120
- - Read `operations/src/index.ts` to detect existing automations.
121
- - If none found: build and deploy a minimal greeting automation silently.
122
- - Execute the automation with a sample input.
123
- - Read org model identity section for context-relevant examples.
124
-
125
- ### Completion signal
126
-
127
- The lesson is complete when the user has seen a real automation result and expressed
128
- willingness to continue (any affirmative or "next").
129
-
130
- [Hidden action]: Append the following to `.claude/memory/tutorial-progress.md` or
131
- create the file if it does not exist:
132
-
133
- ```
134
- [x] YYYY-MM-DD Lesson 1: Welcome -- what this place does for you
135
- ```
136
-
137
- Then display the updated menu with lesson 1 marked complete.
138
-
139
- ---
140
-
141
- ## Lesson 2: How to talk to me
142
-
143
- **Estimated time:** 10-15 minutes
144
-
145
- ### Opening line
146
-
147
- Say:
148
-
149
- > "One of the most useful things to understand about working with me is that you don't
150
- > need to learn any special commands or remember any syntax. You just talk to me the way
151
- > you'd talk to a person. But there are a handful of patterns that tend to get you what
152
- > you want fastest. Let me walk you through them."
153
-
154
- ### Flow
155
-
156
- Teach all seven conversation patterns from the vibe layer as natural examples. Never
157
- name the underlying classification system. Never use the word "intent." Present each
158
- as a short demo: show a sample thing the user might say, then narrate what you (the
159
- agent) heard and what you did.
160
-
161
- ---
162
-
163
- **Pattern 1 -- Telling me to remember something**
164
-
165
- Say:
166
-
167
- > "If you want me to keep track of something, just say it like you'd tell a colleague.
168
- > Try: 'Remember to follow up with the Shopify client on Friday' -- and I'll add that
169
- > to your task list and confirm with you before saving it.
170
- >
171
- > Or: 'Add a note that we're pausing the email campaign this week.'
172
- >
173
- > Anything with 'remember', 'add', 'track', or 'note down' tells me you want something
174
- > saved. I'll always read it back to you before I write it down, so you stay in control."
175
-
176
- [Hidden demo, optional]: If the user wants to try it, let them dictate a real task.
177
- Confirm the captured text with them, then save it via the project CLI silently.
178
-
179
- ---
180
-
181
- **Pattern 2 -- Asking me what's going on**
182
-
183
- Say:
184
-
185
- > "If you want to know the current state of things, just ask. 'What should I work on
186
- > next?' -- I'll look at your list and tell you. 'What's sitting in my approval queue?'
187
- > -- I'll check and report back. 'What automations are running right now?' -- I'll show
188
- > you.
189
- >
190
- > Questions about the current state of your work or your automations always get a
191
- > plain-language answer, no guessing required."
192
-
193
- ---
194
-
195
- **Pattern 3 -- Asking me to explain something**
196
-
197
- Say:
198
-
199
- > "If you want me to explain what something is or what it does, tell me. 'Tell me about
200
- > the lead follow-up automation.' 'What does the CRM system do?' 'Where am I in this
201
- > project?' -- those all work. I'll describe it in plain language, not technical terms."
202
-
203
- ---
204
-
205
- **Pattern 4 -- Marking something done or stuck**
206
-
207
- Say:
208
-
209
- > "When you've finished something, just say so. 'Done with the proposal draft.' 'The
210
- > onboarding task is complete.' I'll find what you're talking about and update the
211
- > status. Same for blockers: 'Stuck -- waiting on client feedback' tells me you're
212
- > blocked and why.
213
- >
214
- > I'll confirm before I change anything, so nothing gets marked complete by accident."
215
-
216
- ---
217
-
218
- **Pattern 5 -- Shifting focus**
219
-
220
- Say:
221
-
222
- > "If you want to change what we're working on, just say where you want to go. 'Let's
223
- > focus on the onboarding flow.' 'Switch to the Shopify project.' 'Back to the CRM
224
- > tasks.' I'll move our conversation to that area and summarize where things stand there."
225
-
226
- ---
227
-
228
- **Pattern 6 -- Describing how your business works**
229
-
230
- Say:
231
-
232
- > "Here's a powerful one. If you tell me something true about your business that I
233
- > don't already know, I'll remember it and work it into everything I do for you.
234
- >
235
- > 'We're an e-commerce company -- all our deals come through Shopify or Amazon.' 'We
236
- > track our clients through discovery, proposal, and then closed.' 'Add a project type
237
- > called retainer with monthly billing.'
238
- >
239
- > I'll propose how to capture that in your business profile, and you confirm before
240
- > anything changes. Over time your profile gets richer and my automations get smarter
241
- > about your specific context."
242
-
243
- [Hidden action]: If the user says something that matches a Codify signal during the
244
- lesson, note it for later rather than interrupting the lesson flow. Mention it at the
245
- end of the lesson as a follow-up.
246
-
247
- ---
248
-
249
- **Pattern 7 -- Turning things on or off**
250
-
251
- Say:
252
-
253
- > "Some things in your setup can be switched on or off. If you don't use a particular
254
- > system, you can say 'Turn off the SEO tools' and I'll take care of it. Or 'Enable
255
- > the lead-gen system.' You'll see what's changing and confirm before it's done."
256
-
257
- ---
258
-
259
- **Wrap-up**
260
-
261
- Say:
262
-
263
- > "That's the whole set. You don't need to memorize any of it -- just talk to me
264
- > naturally and I'll figure out what you mean. If I'm ever not sure, I'll ask one
265
- > clarifying question rather than guess.
266
- >
267
- > Want to try any of these out before we move on?"
268
-
269
- **Handle free-form practice:** If the user wants to practice, engage with each message
270
- they send and narrate aloud what you heard ("That sounds like you want me to remember
271
- something -- let me read it back before saving..."). This is the best demonstration of
272
- the layer at work. Keep the narration light and friendly, not mechanical.
273
-
274
- ### Completion signal
275
-
276
- Complete when the user has seen all seven patterns explained and has indicated they
277
- understand or are ready to continue.
278
-
279
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
280
-
281
- ```
282
- [x] YYYY-MM-DD Lesson 2: How to talk to me
283
- ```
284
-
285
- Display the updated menu.
286
-
287
- ---
288
-
289
- ## Lesson 3: Your business profile
290
-
291
- **Estimated time:** 10-15 minutes
292
-
293
- ### Opening line
294
-
295
- Say:
296
-
297
- > "The smarter I am about your business, the more useful every automation becomes.
298
- > So let's spend a few minutes filling in your business profile together. I'll ask
299
- > you some questions -- nothing technical, just real information about who you are
300
- > and what you do. You answer in plain language and I'll handle the rest."
301
-
302
- ### Flow
303
-
304
- [Hidden action]: Invoke the org-model update ceremony silently. Do not name the
305
- underlying process. Work through each domain in order -- identity, customers,
306
- offerings, roles, goals -- by asking the user the corresponding plain-language
307
- questions below. After each answer, silently propose and write the update following
308
- the codify ceremony (snapshot -> propose in chat -> confirm -> write -> validate).
309
-
310
- The "propose in chat" step is allowed to show the user a plain-language summary of
311
- what you're capturing (e.g., "I'll save that your business is called Acme Co., a
312
- B2B SaaS company based in Austin, TX -- does that look right?") but NEVER shows them
313
- a diff, file path, or field name.
314
-
315
- ---
316
-
317
- **Domain 1 -- Who you are (identity)**
318
-
319
- Ask:
320
-
321
- > "Let's start with the basics. What's the name of your business? And in one or two
322
- > sentences, what do you do?"
323
-
324
- Follow-up as needed: industry, where you operate, your mission if they have one.
325
- Confirm the captured summary before writing.
326
-
327
- ---
328
-
329
- **Domain 2 -- Who you work with (customers)**
330
-
331
- Ask:
332
-
333
- > "Who are your typical customers? Are they businesses, individual consumers, or both?
334
- > What size? What industry?"
335
-
336
- Follow-up as needed: what problems do your customers come to you with, what does
337
- success look like for them. Confirm before writing.
338
-
339
- ---
340
-
341
- **Domain 3 -- What you offer (offerings)**
342
-
343
- Ask:
344
-
345
- > "What do you sell or deliver? Is it a product, a service, or a mix? Do you have
346
- > different tiers or packages?"
347
-
348
- Follow-up as needed: pricing model, main deliverables. Confirm before writing.
349
-
350
- ---
351
-
352
- **Domain 4 -- Your team (roles)**
353
-
354
- Ask:
355
-
356
- > "Who's involved in running things? Even if it's just you, I'd love to know what
357
- > hats you wear -- or if you have a team, who does what?"
358
-
359
- Confirm before writing.
360
-
361
- ---
362
-
363
- **Domain 5 -- What you're working toward (goals)**
364
-
365
- Ask:
366
-
367
- > "What's the most important thing you're trying to achieve in the next six to twelve
368
- > months? Could be a revenue target, a number of new clients, a product launch --
369
- > whatever feels most real."
370
-
371
- Confirm before writing.
372
-
373
- ---
374
-
375
- **Wrap-up**
376
-
377
- After all five domains are captured and written:
378
-
379
- Say:
380
-
381
- > "Your business profile is set up. I'll use this in every automation I build for you
382
- > -- so they'll talk about your clients the right way, track the things that matter
383
- > to your business, and use language that fits how you work.
384
- >
385
- > You can always update any of this just by telling me something new. Say 'we're
386
- > adding a new service' or 'our main goal changed to X' and I'll propose the update."
387
-
388
- ### Hidden actions summary
389
-
390
- - Silently invoke the org-model ceremony for each domain answered.
391
- - Each write is gated by user confirmation in plain language (no diffs, no field names).
392
- - Run validation after each write; roll back silently if validation fails, then
393
- say "That one didn't save cleanly -- let me try a slightly different way" and retry.
394
-
395
- ### Completion signal
396
-
397
- Complete when at least the identity and customers domains are filled in and confirmed.
398
- The remaining domains are best-effort -- if the user doesn't know their goals yet,
399
- that's fine.
400
-
401
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
402
-
403
- ```
404
- [x] YYYY-MM-DD Lesson 3: Your business profile
405
- ```
406
-
407
- Display the updated menu.
408
-
409
- ---
410
-
411
- ## Lesson 4: Your first automation
412
-
413
- **Estimated time:** 10-15 minutes
414
-
415
- ### Opening line
416
-
417
- Say:
418
-
419
- > "Now let's build something real. Tell me one thing that happens repeatedly in your
420
- > business that you wish just happened automatically -- a notification, a message, a
421
- > daily summary, a reminder. Doesn't have to be complicated. What's the first thing
422
- > that comes to mind?"
423
-
424
- ### Flow
425
-
426
- **Step 1 -- Gather the idea.**
427
-
428
- Let the user describe what they want. Ask one clarifying question if needed to
429
- understand frequency (daily? triggered by something?), destination (email? message?),
430
- and any key content.
431
-
432
- Good default suggestions if the user is stuck:
433
-
434
- > "A few easy starting points: a daily summary of what you need to do, an automatic
435
- > reply when someone fills out your contact form, or a weekly report of what got done.
436
- > Any of those sound useful?"
437
-
438
- **Step 2 -- Confirm before building.**
439
-
440
- Reflect back a plain-language description of the automation:
441
-
442
- > "So what you want is: [plain description, e.g., 'Every morning at 8am, send you an email with a list of your open tasks']. Does that sound right?"
443
-
444
- Wait for confirmation.
445
-
446
- **Step 3 -- Build and make it live.**
447
-
448
- [Hidden action]: Build the described automation as a workflow in `operations/src/`.
449
- Keep it simple -- a scheduler trigger or a manual trigger, a single action, a clear
450
- output. Deploy it to dev. Do not narrate the build steps. Only narrate the result.
451
-
452
- While building, say:
453
-
454
- > "On it. Give me a moment while I put that together..."
455
-
456
- **Step 4 -- Run it and show the result.**
457
-
458
- [Hidden action]: Execute the automation once with a realistic input.
459
-
460
- Say:
461
-
462
- > "Done -- your automation is live. Here's what just happened: describe the result in plain language. That will now run on schedule, or whenever it is triggered."
463
-
464
- **Step 5 -- Invite a reaction.**
465
-
466
- > "How does that look? If you want to tweak anything -- change the timing, add
467
- > something to the message, send it somewhere different -- just tell me and I'll
468
- > update it."
469
-
470
- Handle any adjustment requests by modifying and redeploying silently, narrating
471
- only the result.
472
-
473
- ### Hidden actions summary
474
-
475
- - Build workflow in `operations/src/` based on user description.
476
- - Deploy to dev silently.
477
- - Execute once and capture result for narration.
478
- - If the user requests a change, edit and redeploy silently.
479
-
480
- ### Completion signal
481
-
482
- Complete when an automation is running and the user has seen a real result and
483
- expressed satisfaction (or made and seen their first adjustment).
484
-
485
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
486
-
487
- ```
488
- [x] YYYY-MM-DD Lesson 4: Your first automation
489
- ```
490
-
491
- Display the updated menu.
492
-
493
- ---
494
-
495
- ## Lesson 5: Your dashboard -- where everything lives
496
-
497
- **Estimated time:** 10-15 minutes
498
-
499
- ### Opening line
500
-
501
- Say:
502
-
503
- > "Now that you have an automation running, let me show you where everything lives.
504
- > Your dashboard is the place where you can see what's running, check in on things,
505
- > and get a picture of how your automations connect. I'll walk you through it."
506
-
507
- ### Flow
508
-
509
- **Step 1 -- Orient to the main sections.**
510
-
511
- [Hidden action]: Read `core/config/organization-model.ts` to identify which Systems
512
- are enabled, so you can tailor the tour to what's actually visible.
513
-
514
- Describe the dashboard in plain terms, based on the Systems that are on:
515
-
516
- > "When you open your dashboard, you'll see a few main areas. Your automations live
517
- > in one section -- that's where you can see which ones are active, when they last
518
- > ran, and whether anything needs your attention.
519
- >
520
- > There's also a map view that shows you how everything connects -- which automations
521
- > feed into each other, what triggers what. You don't need to understand the map to
522
- > use it, but it gives you a good sense of the bigger picture.
523
- >
524
- > [If CRM is enabled]: Your client pipeline lives in the CRM section -- that's where
525
- > deals and contacts show up.
526
- >
527
- > [If lead-gen is enabled]: The lead list section is where incoming prospects get
528
- > organized before they move into your pipeline.
529
- >
530
- > [If projects is enabled]: Your active projects and their tasks live in the projects
531
- > section."
532
-
533
- **Step 2 -- Point to the approval queue.**
534
-
535
- > "There's one more area worth knowing about now: your approval queue. That's where
536
- > automations pause and wait for you to give the green light before they continue.
537
- > We'll cover that in the next session."
538
-
539
- **Step 3 -- The map.**
540
-
541
- > "The map view is worth a quick look. It shows each automation as a box, and lines
542
- > connect the ones that pass information to each other. If something looks tangled,
543
- > that's usually a sign we should clean it up -- just tell me and I'll simplify.
544
- > The map is read-only from your end; you don't need to touch it directly."
545
-
546
- **Step 4 -- Reassure about navigation.**
547
-
548
- > "You don't need to memorize where everything is. Any time you want to find
549
- > something, just ask me: 'Where do I see my running automations?' or 'Take me to
550
- > the client pipeline.' I'll point you directly there.
551
- >
552
- > The dashboard is a place to observe. Changes happen here in our conversation."
553
-
554
- ### Hidden actions summary
555
-
556
- - Read org model Systems section to determine which dashboard sections are visible.
557
- - Tailor the tour to only mention visible/enabled Systems.
558
-
559
- ### Completion signal
560
-
561
- Complete when the user acknowledges they understand the main sections and the map.
562
-
563
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
564
-
565
- ```
566
- [x] YYYY-MM-DD Lesson 5: Your dashboard -- where everything lives
567
- ```
568
-
569
- Display the updated menu.
570
-
571
- ---
572
-
573
- ## Lesson 6: Your approval queue -- signing off on things
574
-
575
- **Estimated time:** 10-15 minutes
576
-
577
- ### Opening line
578
-
579
- Say:
580
-
581
- > "Some automations work completely on their own. Others -- especially ones that send
582
- > things to clients or make significant decisions -- are better if they pause and ask
583
- > you first. That's what your approval queue is for. Let me show you how it works."
584
-
585
- ### Flow
586
-
587
- **Step 1 -- Check for an existing approval-gated automation.**
588
-
589
- [Hidden action]: Scan `operations/src/` for any workflow that includes an HITL step.
590
-
591
- - If one exists: use it for the demo.
592
- - If none exists: silently modify the automation built in lesson 4 (or the simplest
593
- available one) to add a pause-for-approval step. Deploy the updated version.
594
- Do not narrate the modification.
595
-
596
- **Step 2 -- Explain the concept first.**
597
-
598
- > "Here's how it works: an automation runs up to a certain point, then it stops and
599
- > puts a card in your approval queue. It waits there -- nothing moves forward -- until
600
- > you take a look and say yes or no.
601
- >
602
- > Your queue is accessible from your dashboard, and I'll also flag it here in our
603
- > conversation if something is waiting for you."
604
-
605
- **Step 3 -- Trigger the automation and show the pause.**
606
-
607
- [Hidden action]: Execute the approval-gated automation.
608
-
609
- > "I just triggered [plain description of the automation]. It's run the first part --
610
- > and now it's waiting for you. You should see a card in your approval queue in the
611
- > dashboard. Let me know when you can see it."
612
-
613
- Wait for the user to confirm they see it (or describe it to them if they can't navigate
614
- there yet).
615
-
616
- **Step 4 -- Walk through the approval.**
617
-
618
- > "In the queue you'll see a summary of what the automation wants to do, and a button
619
- > to approve or reject it. Approving means it continues. Rejecting stops it.
620
- >
621
- > Go ahead and approve this one -- it's just a test."
622
-
623
- [Hidden action]: After the user approves (or says they did), confirm the automation
624
- completed by checking execution status.
625
-
626
- > "And there it goes -- your approval unblocked it and it finished the job.
627
- > [Plain description of what completed, e.g., 'The summary email just sent.']"
628
-
629
- **Step 5 -- When to use the queue.**
630
-
631
- > "You decide which automations use the approval queue and which run automatically.
632
- > Anything that touches a client, sends money, or makes a commitment is usually worth
633
- > a pause. Anything routine -- daily summaries, internal notes, status updates -- can
634
- > typically run on its own.
635
- >
636
- > Whenever you build a new automation, just tell me whether you want it to pause and
637
- > ask you, or just run. You can always change that later."
638
-
639
- ### Hidden actions summary
640
-
641
- - Check for existing HITL workflow; if none, add a pause step to the lesson 4 automation.
642
- - Deploy updated automation silently.
643
- - Execute it and narrate the pause state.
644
- - Check completion after user approves.
645
-
646
- ### Completion signal
647
-
648
- Complete when the user has successfully approved a paused automation and seen it
649
- complete.
650
-
651
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
652
-
653
- ```
654
- [x] YYYY-MM-DD Lesson 6: Your approval queue -- signing off on things
655
- ```
656
-
657
- Display the updated menu.
658
-
659
- ---
660
-
661
- ## Lesson 7: Changing things later
662
-
663
- **Estimated time:** 10-15 minutes
664
-
665
- ### Opening line
666
-
667
- Say:
668
-
669
- > "Nothing you set up is permanent. Your business changes, your needs change, and
670
- > your automations should keep up. Changing things is as easy as describing what you
671
- > want differently. Let me show you."
672
-
673
- ### Flow
674
-
675
- **Step 1 -- Remind them of the automation from lesson 4.**
676
-
677
- > "Remember the automation we built -- [brief plain-language description]? Let's
678
- > use that as the example. Tell me one thing you'd like to change about it. Could be
679
- > the timing, what it says, where it sends things -- anything."
680
-
681
- If the user has no preference, suggest one:
682
-
683
- > "For example, I could make it run twice a day instead of once, or add a summary
684
- > line at the top. What would make it more useful for you?"
685
-
686
- **Step 2 -- Take the plain-language change request.**
687
-
688
- [Hidden action]: Parse the user's request and identify what needs to change in the
689
- workflow. Modify the workflow and redeploy silently.
690
-
691
- While updating, say:
692
-
693
- > "Making that change now..."
694
-
695
- **Step 3 -- Confirm the update is live.**
696
-
697
- [Hidden action]: Execute the updated automation once to verify.
698
-
699
- > "Done. Describe the change in plain language. I ran it once to confirm it's working the new way."
700
-
701
- **Step 4 -- Teach the pattern for profile changes.**
702
-
703
- > "The same works for your business profile. If something changes -- you add a service,
704
- > rename a stage in your pipeline, bring on a new team role -- just tell me. I'll
705
- > propose the update, you confirm, and it's saved.
706
- >
707
- > For example: 'We're adding a new service called retainer coaching at $2,000 a month.'
708
- > I'd capture that as a new offering in your profile."
709
-
710
- [Hidden action]: If the user dictates a profile change, invoke the org-model update
711
- ceremony silently. Confirm with the user before writing.
712
-
713
- **Step 5 -- Teach the toggle pattern.**
714
-
715
- > "And if you want to turn a whole system on or off -- say you're not using the
716
- > lead-gen tools right now -- just tell me: 'Turn off the lead-gen system for now.'
717
- > Done. Turn it back on anytime the same way."
718
-
719
- **Step 6 -- Reassure about iteration.**
720
-
721
- > "The general principle is: you'll describe what you want, I'll propose the change,
722
- > you confirm, and it happens. You're always in the loop -- nothing changes without
723
- > your say-so."
724
-
725
- ### Hidden actions summary
726
-
727
- - Modify and redeploy the lesson 4 automation per the user's request.
728
- - Execute the updated automation to verify.
729
- - If a profile change is mentioned, silently invoke the org-model update ceremony with
730
- user confirmation.
731
-
732
- ### Completion signal
733
-
734
- Complete when the user has successfully requested and seen at least one change applied
735
- to a live automation.
736
-
737
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
738
-
739
- ```
740
- [x] YYYY-MM-DD Lesson 7: Changing things later
741
- ```
742
-
743
- Display the updated menu.
744
-
745
- ---
746
-
747
- ## Lesson 8: When things go wrong
748
-
749
- **Estimated time:** 10-15 minutes
750
-
751
- ### Opening line
752
-
753
- Say:
754
-
755
- > "Everything works most of the time. But sometimes an automation doesn't do what
756
- > you expected, something looks stuck, or you just don't see what you thought you'd
757
- > see. This is how we handle that."
758
-
759
- ### Flow
760
-
761
- **Step 1 -- Establish the ground rule.**
762
-
763
- > "The rule is simple: if something looks wrong, tell me. In plain language. You don't
764
- > need to know why it's wrong or what the technical reason is. Just describe what you
765
- > expected to see and what you're seeing instead.
766
- >
767
- > Something like: 'I thought the morning summary would arrive by now but it hasn't.'
768
- > Or: 'The approval card I expected isn't showing up.' Or: 'It ran but the message
769
- > looks wrong.'
770
- >
771
- > That's all I need."
772
-
773
- **Step 2 -- Demo: investigate and report back.**
774
-
775
- Construct a realistic example based on the automations built during the tutorial. If
776
- possible, introduce a minor intentional issue (e.g., run an automation with a missing
777
- input) and let the user report it, or describe a fictional report for demonstration.
778
-
779
- [Hidden action]: When the user describes a problem (or for the demo, when the agent
780
- introduces one), investigate using execution logs and runtime state. Determine the
781
- plain-language cause.
782
-
783
- Narrate the resolution:
784
-
785
- > "I looked into that. Here's what happened: [one or two plain sentences describing
786
- > the cause in non-technical language, e.g., 'The automation ran, but the daily
787
- > summary was empty because your task list didn't have anything new since it last ran.
788
- > That's normal -- if there's nothing to report, it skips the message.'
789
- >
790
- > Or: 'It looks like it ran but the email didn't go out because the account connection
791
- > for your email provider needs to be refreshed. I'll walk you through reconnecting
792
- > it if you want.']"
793
-
794
- Never show: stack traces, error codes, file names, log excerpts, or raw system output.
795
- Everything must be translated to plain language before the user sees it.
796
-
797
- **Step 3 -- Cover the common scenarios.**
798
-
799
- Walk through three common situations briefly:
800
-
801
- > "There are really three situations you'll hit:
802
- >
803
- > 1. 'Nothing happened when I expected it to.' -- Tell me what you expected. I'll
804
- > check whether it ran, when it ran, and what it did.
805
- > 2. 'It ran but the result looks wrong.' -- Describe what looked off. I'll figure
806
- > out what went into it and why the output is different from what you expected.
807
- > 3. 'Something seems stuck.' -- Tell me which automation and what you last saw.
808
- > I'll find out if it's waiting for something (like an account connection that
809
- > needs attention) and tell you what needs to happen next.
810
- >
811
- > In all cases, my goal is to give you one clear answer: here's what happened, and
812
- > here's what (if anything) you need to do."
813
-
814
- **Step 4 -- Set expectations on timing.**
815
-
816
- > "Most issues I can diagnose immediately. If I need a few moments to investigate
817
- > something more complex, I'll tell you I'm looking into it and come back with an
818
- > answer. I won't leave you hanging with technical jargon -- I'll always translate."
819
-
820
- **Step 5 -- Invite a real question.**
821
-
822
- > "Is there anything that's already looked odd or unexpected? Now's a good time to
823
- > ask -- or you can come back to me any time something doesn't look right."
824
-
825
- ### Hidden actions summary
826
-
827
- - When a problem is described: read execution logs, check runtime state, identify
828
- the plain-language cause.
829
- - Never surface raw technical output; translate everything.
830
- - If an account connection issue is detected, guide the user to reconnect it without
831
- naming the technical mechanism.
832
-
833
- ### Completion signal
834
-
835
- Complete when the user has seen at least one problem diagnosed and explained in plain
836
- language and indicates they understand the process.
837
-
838
- [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
839
-
840
- ```
841
- [x] YYYY-MM-DD Lesson 8: When things go wrong
842
- ```
843
-
844
- Display the updated menu with all 8 lessons marked complete (assuming they are).
845
-
846
- ---
847
-
848
- ## After All 8 Lessons Complete
849
-
850
- When all eight lessons are marked complete in `.claude/memory/tutorial-progress.md`,
851
- display this closing message:
852
-
853
- > "You've been through everything. You know how to talk to me, your business profile
854
- > is set up, you've built and changed a real automation, you can find your way around
855
- > your dashboard, and you know what to do when something looks off.
856
- >
857
- > Here's what I'd suggest next: think of one thing in your business that happens
858
- > repeatedly and takes your time. Tell me about it. I'll build it for you.
859
- >
860
- > If you ever want to revisit any of these sessions, just say 'tutorial' and I'll
861
- > bring up the menu again. Any lesson you want to redo is always available."
862
-
863
- Then stay in the conversation ready for the user's first real request.
864
-
865
- ---
866
-
867
- ## Progress File Format
868
-
869
- The file `.claude/memory/tutorial-progress.md` must follow this format:
870
-
871
- ```
872
- # Tutorial Progress
873
-
874
- Track: vibe-coder
875
- Started: YYYY-MM-DD
876
-
877
- ## Lessons
878
-
879
- [ ] Lesson 1: Welcome -- what this place does for you
880
- [ ] Lesson 2: How to talk to me
881
- [ ] Lesson 3: Your business profile
882
- [ ] Lesson 4: Your first automation
883
- [ ] Lesson 5: Your dashboard -- where everything lives
884
- [ ] Lesson 6: Your approval queue -- signing off on things
885
- [ ] Lesson 7: Changing things later
886
- [ ] Lesson 8: When things go wrong
887
- ```
888
-
889
- Replace `[ ]` with `[x] YYYY-MM-DD` as each lesson completes. Create the file on
890
- first use if it does not exist, pre-populated with all eight lessons unchecked.
1
+ ---
2
+ description: |
3
+ Vibe-coder track for the /tutorial skill. Loaded by SKILL.md when the user's
4
+ profile.md shows track: vibe-coder. NOT directly invocable. Do not expose this
5
+ file's name or path to the user.
6
+ ---
7
+
8
+ # Tutorial -- Vibe-Coder Track
9
+
10
+ This file is loaded by the `/tutorial` router (`SKILL.md`) when the user has chosen
11
+ the non-technical track. Every lesson here is a script for the teaching agent.
12
+ The user never sees file names, slash commands, code, or technical vocabulary.
13
+
14
+ **Vocabulary rule:** The swap table below is law. Every user-facing word in every lesson
15
+ must follow it. If the user uses a forbidden word, reflect back the right-column equivalent
16
+ without comment.
17
+
18
+ | Never say | Say instead |
19
+ | ------------------------------------------ | ------------------------------------- |
20
+ | Workflow / agent / resource | Automation |
21
+ | Schema / Zod / type | The information your automation needs |
22
+ | Deploy / publish to platform | Make it live |
23
+ | Organization model / config | Your business profile |
24
+ | Credential / API key | Account connection |
25
+ | Operations / Command Center / Command View | Your dashboard / your map |
26
+ | HITL / approval gate | Your approval queue |
27
+ | Repo / monorepo / git / GitHub | (never mentioned) |
28
+ | TypeScript / JavaScript / pnpm / CLI | (never mentioned) |
29
+ | Adapter / platform tool / SDK | The tool the automation uses |
30
+ | /knowledge or any slash command name | (never named; invoke silently) |
31
+ | Lesson / module / curriculum | (use the lesson title only) |
32
+ | Intent / classifier / classification | How you talk to me |
33
+
34
+ **Silent invocation rule:** Whenever this script says "[hidden action]", do that work
35
+ completely silently. The user sees friendly narration of the result, never the mechanism.
36
+
37
+ ---
38
+
39
+ ## Menu
40
+
41
+ Display this menu when the user starts the tutorial or asks to see their progress.
42
+ Replace `[ ]` with `[x] YYYY-MM-DD` for completed lessons by reading
43
+ `.claude/memory/tutorial-progress.md`.
44
+
45
+ ```
46
+ Your Tutorial
47
+ =============
48
+ 1 Welcome -- what this place does for you [ ]
49
+ 2 How to talk to me [ ]
50
+ 3 Your business profile [ ]
51
+ 4 Your first automation [ ]
52
+ 5 Your dashboard -- where everything lives [ ]
53
+ 6 Your approval queue -- signing off on things [ ]
54
+ 7 Changing things later [ ]
55
+ 8 When things go wrong [ ]
56
+
57
+ Pick a number to start, or just tell me what you want to explore.
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Lesson 1: Welcome -- what this place does for you
63
+
64
+ **Estimated time:** 10-15 minutes
65
+
66
+ ### Opening line
67
+
68
+ Say:
69
+
70
+ > "Welcome. Think of this as your own team of tireless assistants -- each one handles
71
+ > a specific job for your business automatically, so you don't have to. I'm going to
72
+ > show you one of those automations actually running right now, then explain what any
73
+ > of this means for you. Sound good?"
74
+
75
+ ### Flow
76
+
77
+ **Step 1 -- Find or create a demo automation.**
78
+
79
+ [Hidden action]: Read `operations/src/index.ts` to see if any automations are registered.
80
+
81
+ - If one or more automations exist, pick the simplest one (lowest input complexity).
82
+ Note its purpose and a plain-language description of what it does.
83
+ - If no automations exist, silently build a minimal "greeting" automation: a workflow
84
+ that accepts a name and returns "Hello from your assistant, {name}!". Deploy it to dev.
85
+ Do not narrate the build or deployment. The user only sees what comes next.
86
+
87
+ **Step 2 -- Run the automation and show the result.**
88
+
89
+ [Hidden action]: Execute the chosen automation with a simple example input (e.g., the
90
+ user's first name if known, otherwise "Alex"). Wait for the result.
91
+
92
+ Say something like:
93
+
94
+ > "Here -- I just had one of your automations run. Here's what it did: [plain-language description of what happened, e.g., 'It sent a greeting to Alex']. That's one small example. Your automations can handle things like sending follow-up messages, collecting information, notifying you when something needs attention, or running a process on a schedule -- all without you lifting a finger each time."
95
+
96
+ **Step 3 -- Explain the idea, not the technology.**
97
+
98
+ Continue:
99
+
100
+ > "You describe what you want to happen. I handle everything that makes it actually work.
101
+ > You never have to think about the technical side. That's the whole idea here.
102
+ >
103
+ > Over the next few sessions we'll get your automations set up, show you where to find
104
+ > them, and make sure you know exactly how to ask me for what you need.
105
+ >
106
+ > Ready to keep going? You can pick any lesson from the menu, or just say 'next' and
107
+ > we'll go in order."
108
+
109
+ **Step 4 -- Handle common responses.**
110
+
111
+ - If the user asks "what can automations do?": give 3-4 concrete examples relevant to
112
+ the kind of business they have (read `core/config/organization-model.ts` identity
113
+ section silently to tailor examples). Keep examples short and practical.
114
+ - If the user seems skeptical ("is this real?"): run the automation once more with a
115
+ different input to show it is live.
116
+ - If the user wants to skip ahead: honor it. Show the menu.
117
+
118
+ ### Hidden actions summary
119
+
120
+ - Read `operations/src/index.ts` to detect existing automations.
121
+ - If none found: build and deploy a minimal greeting automation silently.
122
+ - Execute the automation with a sample input.
123
+ - Read org model identity section for context-relevant examples.
124
+
125
+ ### Completion signal
126
+
127
+ The lesson is complete when the user has seen a real automation result and expressed
128
+ willingness to continue (any affirmative or "next").
129
+
130
+ [Hidden action]: Append the following to `.claude/memory/tutorial-progress.md` or
131
+ create the file if it does not exist:
132
+
133
+ ```
134
+ [x] YYYY-MM-DD Lesson 1: Welcome -- what this place does for you
135
+ ```
136
+
137
+ Then display the updated menu with lesson 1 marked complete.
138
+
139
+ ---
140
+
141
+ ## Lesson 2: How to talk to me
142
+
143
+ **Estimated time:** 10-15 minutes
144
+
145
+ ### Opening line
146
+
147
+ Say:
148
+
149
+ > "One of the most useful things to understand about working with me is that you don't
150
+ > need to learn any special commands or remember any syntax. You just talk to me the way
151
+ > you'd talk to a person. But there are a handful of patterns that tend to get you what
152
+ > you want fastest. Let me walk you through them."
153
+
154
+ ### Flow
155
+
156
+ Teach all seven conversation patterns from the vibe layer as natural examples. Never
157
+ name the underlying classification system. Never use the word "intent." Present each
158
+ as a short demo: show a sample thing the user might say, then narrate what you (the
159
+ agent) heard and what you did.
160
+
161
+ ---
162
+
163
+ **Pattern 1 -- Telling me to remember something**
164
+
165
+ Say:
166
+
167
+ > "If you want me to keep track of something, just say it like you'd tell a colleague.
168
+ > Try: 'Remember to follow up with the Shopify client on Friday' -- and I'll add that
169
+ > to your task list and confirm with you before saving it.
170
+ >
171
+ > Or: 'Add a note that we're pausing the email campaign this week.'
172
+ >
173
+ > Anything with 'remember', 'add', 'track', or 'note down' tells me you want something
174
+ > saved. I'll always read it back to you before I write it down, so you stay in control."
175
+
176
+ [Hidden demo, optional]: If the user wants to try it, let them dictate a real task.
177
+ Confirm the captured text with them, then save it via the project CLI silently.
178
+
179
+ ---
180
+
181
+ **Pattern 2 -- Asking me what's going on**
182
+
183
+ Say:
184
+
185
+ > "If you want to know the current state of things, just ask. 'What should I work on
186
+ > next?' -- I'll look at your list and tell you. 'What's sitting in my approval queue?'
187
+ > -- I'll check and report back. 'What automations are running right now?' -- I'll show
188
+ > you.
189
+ >
190
+ > Questions about the current state of your work or your automations always get a
191
+ > plain-language answer, no guessing required."
192
+
193
+ ---
194
+
195
+ **Pattern 3 -- Asking me to explain something**
196
+
197
+ Say:
198
+
199
+ > "If you want me to explain what something is or what it does, tell me. 'Tell me about
200
+ > the lead follow-up automation.' 'What does the CRM system do?' 'Where am I in this
201
+ > project?' -- those all work. I'll describe it in plain language, not technical terms."
202
+
203
+ ---
204
+
205
+ **Pattern 4 -- Marking something done or stuck**
206
+
207
+ Say:
208
+
209
+ > "When you've finished something, just say so. 'Done with the proposal draft.' 'The
210
+ > onboarding task is complete.' I'll find what you're talking about and update the
211
+ > status. Same for blockers: 'Stuck -- waiting on client feedback' tells me you're
212
+ > blocked and why.
213
+ >
214
+ > I'll confirm before I change anything, so nothing gets marked complete by accident."
215
+
216
+ ---
217
+
218
+ **Pattern 5 -- Shifting focus**
219
+
220
+ Say:
221
+
222
+ > "If you want to change what we're working on, just say where you want to go. 'Let's
223
+ > focus on the onboarding flow.' 'Switch to the Shopify project.' 'Back to the CRM
224
+ > tasks.' I'll move our conversation to that area and summarize where things stand there."
225
+
226
+ ---
227
+
228
+ **Pattern 6 -- Describing how your business works**
229
+
230
+ Say:
231
+
232
+ > "Here's a powerful one. If you tell me something true about your business that I
233
+ > don't already know, I'll remember it and work it into everything I do for you.
234
+ >
235
+ > 'We're an e-commerce company -- all our deals come through Shopify or Amazon.' 'We
236
+ > track our clients through discovery, proposal, and then closed.' 'Add a project type
237
+ > called retainer with monthly billing.'
238
+ >
239
+ > I'll propose how to capture that in your business profile, and you confirm before
240
+ > anything changes. Over time your profile gets richer and my automations get smarter
241
+ > about your specific context."
242
+
243
+ [Hidden action]: If the user says something that matches a Codify signal during the
244
+ lesson, note it for later rather than interrupting the lesson flow. Mention it at the
245
+ end of the lesson as a follow-up.
246
+
247
+ ---
248
+
249
+ **Pattern 7 -- Turning things on or off**
250
+
251
+ Say:
252
+
253
+ > "Some things in your setup can be switched on or off. If you don't use a particular
254
+ > system, you can say 'Turn off the SEO tools' and I'll take care of it. Or 'Enable
255
+ > the lead-gen system.' You'll see what's changing and confirm before it's done."
256
+
257
+ ---
258
+
259
+ **Wrap-up**
260
+
261
+ Say:
262
+
263
+ > "That's the whole set. You don't need to memorize any of it -- just talk to me
264
+ > naturally and I'll figure out what you mean. If I'm ever not sure, I'll ask one
265
+ > clarifying question rather than guess.
266
+ >
267
+ > Want to try any of these out before we move on?"
268
+
269
+ **Handle free-form practice:** If the user wants to practice, engage with each message
270
+ they send and narrate aloud what you heard ("That sounds like you want me to remember
271
+ something -- let me read it back before saving..."). This is the best demonstration of
272
+ the layer at work. Keep the narration light and friendly, not mechanical.
273
+
274
+ ### Completion signal
275
+
276
+ Complete when the user has seen all seven patterns explained and has indicated they
277
+ understand or are ready to continue.
278
+
279
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
280
+
281
+ ```
282
+ [x] YYYY-MM-DD Lesson 2: How to talk to me
283
+ ```
284
+
285
+ Display the updated menu.
286
+
287
+ ---
288
+
289
+ ## Lesson 3: Your business profile
290
+
291
+ **Estimated time:** 10-15 minutes
292
+
293
+ ### Opening line
294
+
295
+ Say:
296
+
297
+ > "The smarter I am about your business, the more useful every automation becomes.
298
+ > So let's spend a few minutes filling in your business profile together. I'll ask
299
+ > you some questions -- nothing technical, just real information about who you are
300
+ > and what you do. You answer in plain language and I'll handle the rest."
301
+
302
+ ### Flow
303
+
304
+ [Hidden action]: Invoke the org-model update ceremony silently. Do not name the
305
+ underlying process. Work through each domain in order -- identity, customers,
306
+ offerings, roles, goals -- by asking the user the corresponding plain-language
307
+ questions below. After each answer, silently propose and write the update following
308
+ the codify ceremony (snapshot -> propose in chat -> confirm -> write -> validate).
309
+
310
+ The "propose in chat" step is allowed to show the user a plain-language summary of
311
+ what you're capturing (e.g., "I'll save that your business is called Acme Co., a
312
+ B2B SaaS company based in Austin, TX -- does that look right?") but NEVER shows them
313
+ a diff, file path, or field name.
314
+
315
+ ---
316
+
317
+ **Domain 1 -- Who you are (identity)**
318
+
319
+ Ask:
320
+
321
+ > "Let's start with the basics. What's the name of your business? And in one or two
322
+ > sentences, what do you do?"
323
+
324
+ Follow-up as needed: industry, where you operate, your mission if they have one.
325
+ Confirm the captured summary before writing.
326
+
327
+ ---
328
+
329
+ **Domain 2 -- Who you work with (customers)**
330
+
331
+ Ask:
332
+
333
+ > "Who are your typical customers? Are they businesses, individual consumers, or both?
334
+ > What size? What industry?"
335
+
336
+ Follow-up as needed: what problems do your customers come to you with, what does
337
+ success look like for them. Confirm before writing.
338
+
339
+ ---
340
+
341
+ **Domain 3 -- What you offer (offerings)**
342
+
343
+ Ask:
344
+
345
+ > "What do you sell or deliver? Is it a product, a service, or a mix? Do you have
346
+ > different tiers or packages?"
347
+
348
+ Follow-up as needed: pricing model, main deliverables. Confirm before writing.
349
+
350
+ ---
351
+
352
+ **Domain 4 -- Your team (roles)**
353
+
354
+ Ask:
355
+
356
+ > "Who's involved in running things? Even if it's just you, I'd love to know what
357
+ > hats you wear -- or if you have a team, who does what?"
358
+
359
+ Confirm before writing.
360
+
361
+ ---
362
+
363
+ **Domain 5 -- What you're working toward (goals)**
364
+
365
+ Ask:
366
+
367
+ > "What's the most important thing you're trying to achieve in the next six to twelve
368
+ > months? Could be a revenue target, a number of new clients, a product launch --
369
+ > whatever feels most real."
370
+
371
+ Confirm before writing.
372
+
373
+ ---
374
+
375
+ **Wrap-up**
376
+
377
+ After all five domains are captured and written:
378
+
379
+ Say:
380
+
381
+ > "Your business profile is set up. I'll use this in every automation I build for you
382
+ > -- so they'll talk about your clients the right way, track the things that matter
383
+ > to your business, and use language that fits how you work.
384
+ >
385
+ > You can always update any of this just by telling me something new. Say 'we're
386
+ > adding a new service' or 'our main goal changed to X' and I'll propose the update."
387
+
388
+ ### Hidden actions summary
389
+
390
+ - Silently invoke the org-model ceremony for each domain answered.
391
+ - Each write is gated by user confirmation in plain language (no diffs, no field names).
392
+ - Run validation after each write; roll back silently if validation fails, then
393
+ say "That one didn't save cleanly -- let me try a slightly different way" and retry.
394
+
395
+ ### Completion signal
396
+
397
+ Complete when at least the identity and customers domains are filled in and confirmed.
398
+ The remaining domains are best-effort -- if the user doesn't know their goals yet,
399
+ that's fine.
400
+
401
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
402
+
403
+ ```
404
+ [x] YYYY-MM-DD Lesson 3: Your business profile
405
+ ```
406
+
407
+ Display the updated menu.
408
+
409
+ ---
410
+
411
+ ## Lesson 4: Your first automation
412
+
413
+ **Estimated time:** 10-15 minutes
414
+
415
+ ### Opening line
416
+
417
+ Say:
418
+
419
+ > "Now let's build something real. Tell me one thing that happens repeatedly in your
420
+ > business that you wish just happened automatically -- a notification, a message, a
421
+ > daily summary, a reminder. Doesn't have to be complicated. What's the first thing
422
+ > that comes to mind?"
423
+
424
+ ### Flow
425
+
426
+ **Step 1 -- Gather the idea.**
427
+
428
+ Let the user describe what they want. Ask one clarifying question if needed to
429
+ understand frequency (daily? triggered by something?), destination (email? message?),
430
+ and any key content.
431
+
432
+ Good default suggestions if the user is stuck:
433
+
434
+ > "A few easy starting points: a daily summary of what you need to do, an automatic
435
+ > reply when someone fills out your contact form, or a weekly report of what got done.
436
+ > Any of those sound useful?"
437
+
438
+ **Step 2 -- Confirm before building.**
439
+
440
+ Reflect back a plain-language description of the automation:
441
+
442
+ > "So what you want is: [plain description, e.g., 'Every morning at 8am, send you an email with a list of your open tasks']. Does that sound right?"
443
+
444
+ Wait for confirmation.
445
+
446
+ **Step 3 -- Build and make it live.**
447
+
448
+ [Hidden action]: Build the described automation as a workflow in `operations/src/`.
449
+ Keep it simple -- a scheduler trigger or a manual trigger, a single action, a clear
450
+ output. Deploy it to dev. Do not narrate the build steps. Only narrate the result.
451
+
452
+ While building, say:
453
+
454
+ > "On it. Give me a moment while I put that together..."
455
+
456
+ **Step 4 -- Run it and show the result.**
457
+
458
+ [Hidden action]: Execute the automation once with a realistic input.
459
+
460
+ Say:
461
+
462
+ > "Done -- your automation is live. Here's what just happened: describe the result in plain language. That will now run on schedule, or whenever it is triggered."
463
+
464
+ **Step 5 -- Invite a reaction.**
465
+
466
+ > "How does that look? If you want to tweak anything -- change the timing, add
467
+ > something to the message, send it somewhere different -- just tell me and I'll
468
+ > update it."
469
+
470
+ Handle any adjustment requests by modifying and redeploying silently, narrating
471
+ only the result.
472
+
473
+ ### Hidden actions summary
474
+
475
+ - Build workflow in `operations/src/` based on user description.
476
+ - Deploy to dev silently.
477
+ - Execute once and capture result for narration.
478
+ - If the user requests a change, edit and redeploy silently.
479
+
480
+ ### Completion signal
481
+
482
+ Complete when an automation is running and the user has seen a real result and
483
+ expressed satisfaction (or made and seen their first adjustment).
484
+
485
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
486
+
487
+ ```
488
+ [x] YYYY-MM-DD Lesson 4: Your first automation
489
+ ```
490
+
491
+ Display the updated menu.
492
+
493
+ ---
494
+
495
+ ## Lesson 5: Your dashboard -- where everything lives
496
+
497
+ **Estimated time:** 10-15 minutes
498
+
499
+ ### Opening line
500
+
501
+ Say:
502
+
503
+ > "Now that you have an automation running, let me show you where everything lives.
504
+ > Your dashboard is the place where you can see what's running, check in on things,
505
+ > and get a picture of how your automations connect. I'll walk you through it."
506
+
507
+ ### Flow
508
+
509
+ **Step 1 -- Orient to the main sections.**
510
+
511
+ [Hidden action]: Read `core/config/organization-model.ts` to identify which Systems
512
+ are enabled, so you can tailor the tour to what's actually visible.
513
+
514
+ Describe the dashboard in plain terms, based on the Systems that are on:
515
+
516
+ > "When you open your dashboard, you'll see a few main areas. Your automations live
517
+ > in one section -- that's where you can see which ones are active, when they last
518
+ > ran, and whether anything needs your attention.
519
+ >
520
+ > There's also a map view that shows you how everything connects -- which automations
521
+ > feed into each other, what triggers what. You don't need to understand the map to
522
+ > use it, but it gives you a good sense of the bigger picture.
523
+ >
524
+ > [If CRM is enabled]: Your client pipeline lives in the CRM section -- that's where
525
+ > deals and contacts show up.
526
+ >
527
+ > [If lead-gen is enabled]: The lead list section is where incoming prospects get
528
+ > organized before they move into your pipeline.
529
+ >
530
+ > [If projects is enabled]: Your active projects and their tasks live in the projects
531
+ > section."
532
+
533
+ **Step 2 -- Point to the approval queue.**
534
+
535
+ > "There's one more area worth knowing about now: your approval queue. That's where
536
+ > automations pause and wait for you to give the green light before they continue.
537
+ > We'll cover that in the next session."
538
+
539
+ **Step 3 -- The map.**
540
+
541
+ > "The map view is worth a quick look. It shows each automation as a box, and lines
542
+ > connect the ones that pass information to each other. If something looks tangled,
543
+ > that's usually a sign we should clean it up -- just tell me and I'll simplify.
544
+ > The map is read-only from your end; you don't need to touch it directly."
545
+
546
+ **Step 4 -- Reassure about navigation.**
547
+
548
+ > "You don't need to memorize where everything is. Any time you want to find
549
+ > something, just ask me: 'Where do I see my running automations?' or 'Take me to
550
+ > the client pipeline.' I'll point you directly there.
551
+ >
552
+ > The dashboard is a place to observe. Changes happen here in our conversation."
553
+
554
+ ### Hidden actions summary
555
+
556
+ - Read org model Systems section to determine which dashboard sections are visible.
557
+ - Tailor the tour to only mention visible/enabled Systems.
558
+
559
+ ### Completion signal
560
+
561
+ Complete when the user acknowledges they understand the main sections and the map.
562
+
563
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
564
+
565
+ ```
566
+ [x] YYYY-MM-DD Lesson 5: Your dashboard -- where everything lives
567
+ ```
568
+
569
+ Display the updated menu.
570
+
571
+ ---
572
+
573
+ ## Lesson 6: Your approval queue -- signing off on things
574
+
575
+ **Estimated time:** 10-15 minutes
576
+
577
+ ### Opening line
578
+
579
+ Say:
580
+
581
+ > "Some automations work completely on their own. Others -- especially ones that send
582
+ > things to clients or make significant decisions -- are better if they pause and ask
583
+ > you first. That's what your approval queue is for. Let me show you how it works."
584
+
585
+ ### Flow
586
+
587
+ **Step 1 -- Check for an existing approval-gated automation.**
588
+
589
+ [Hidden action]: Scan `operations/src/` for any workflow that includes an HITL step.
590
+
591
+ - If one exists: use it for the demo.
592
+ - If none exists: silently modify the automation built in lesson 4 (or the simplest
593
+ available one) to add a pause-for-approval step. Deploy the updated version.
594
+ Do not narrate the modification.
595
+
596
+ **Step 2 -- Explain the concept first.**
597
+
598
+ > "Here's how it works: an automation runs up to a certain point, then it stops and
599
+ > puts a card in your approval queue. It waits there -- nothing moves forward -- until
600
+ > you take a look and say yes or no.
601
+ >
602
+ > Your queue is accessible from your dashboard, and I'll also flag it here in our
603
+ > conversation if something is waiting for you."
604
+
605
+ **Step 3 -- Trigger the automation and show the pause.**
606
+
607
+ [Hidden action]: Execute the approval-gated automation.
608
+
609
+ > "I just triggered [plain description of the automation]. It's run the first part --
610
+ > and now it's waiting for you. You should see a card in your approval queue in the
611
+ > dashboard. Let me know when you can see it."
612
+
613
+ Wait for the user to confirm they see it (or describe it to them if they can't navigate
614
+ there yet).
615
+
616
+ **Step 4 -- Walk through the approval.**
617
+
618
+ > "In the queue you'll see a summary of what the automation wants to do, and a button
619
+ > to approve or reject it. Approving means it continues. Rejecting stops it.
620
+ >
621
+ > Go ahead and approve this one -- it's just a test."
622
+
623
+ [Hidden action]: After the user approves (or says they did), confirm the automation
624
+ completed by checking execution status.
625
+
626
+ > "And there it goes -- your approval unblocked it and it finished the job.
627
+ > [Plain description of what completed, e.g., 'The summary email just sent.']"
628
+
629
+ **Step 5 -- When to use the queue.**
630
+
631
+ > "You decide which automations use the approval queue and which run automatically.
632
+ > Anything that touches a client, sends money, or makes a commitment is usually worth
633
+ > a pause. Anything routine -- daily summaries, internal notes, status updates -- can
634
+ > typically run on its own.
635
+ >
636
+ > Whenever you build a new automation, just tell me whether you want it to pause and
637
+ > ask you, or just run. You can always change that later."
638
+
639
+ ### Hidden actions summary
640
+
641
+ - Check for existing HITL workflow; if none, add a pause step to the lesson 4 automation.
642
+ - Deploy updated automation silently.
643
+ - Execute it and narrate the pause state.
644
+ - Check completion after user approves.
645
+
646
+ ### Completion signal
647
+
648
+ Complete when the user has successfully approved a paused automation and seen it
649
+ complete.
650
+
651
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
652
+
653
+ ```
654
+ [x] YYYY-MM-DD Lesson 6: Your approval queue -- signing off on things
655
+ ```
656
+
657
+ Display the updated menu.
658
+
659
+ ---
660
+
661
+ ## Lesson 7: Changing things later
662
+
663
+ **Estimated time:** 10-15 minutes
664
+
665
+ ### Opening line
666
+
667
+ Say:
668
+
669
+ > "Nothing you set up is permanent. Your business changes, your needs change, and
670
+ > your automations should keep up. Changing things is as easy as describing what you
671
+ > want differently. Let me show you."
672
+
673
+ ### Flow
674
+
675
+ **Step 1 -- Remind them of the automation from lesson 4.**
676
+
677
+ > "Remember the automation we built -- [brief plain-language description]? Let's
678
+ > use that as the example. Tell me one thing you'd like to change about it. Could be
679
+ > the timing, what it says, where it sends things -- anything."
680
+
681
+ If the user has no preference, suggest one:
682
+
683
+ > "For example, I could make it run twice a day instead of once, or add a summary
684
+ > line at the top. What would make it more useful for you?"
685
+
686
+ **Step 2 -- Take the plain-language change request.**
687
+
688
+ [Hidden action]: Parse the user's request and identify what needs to change in the
689
+ workflow. Modify the workflow and redeploy silently.
690
+
691
+ While updating, say:
692
+
693
+ > "Making that change now..."
694
+
695
+ **Step 3 -- Confirm the update is live.**
696
+
697
+ [Hidden action]: Execute the updated automation once to verify.
698
+
699
+ > "Done. Describe the change in plain language. I ran it once to confirm it's working the new way."
700
+
701
+ **Step 4 -- Teach the pattern for profile changes.**
702
+
703
+ > "The same works for your business profile. If something changes -- you add a service,
704
+ > rename a stage in your pipeline, bring on a new team role -- just tell me. I'll
705
+ > propose the update, you confirm, and it's saved.
706
+ >
707
+ > For example: 'We're adding a new service called retainer coaching at $2,000 a month.'
708
+ > I'd capture that as a new offering in your profile."
709
+
710
+ [Hidden action]: If the user dictates a profile change, invoke the org-model update
711
+ ceremony silently. Confirm with the user before writing.
712
+
713
+ **Step 5 -- Teach the toggle pattern.**
714
+
715
+ > "And if you want to turn a whole system on or off -- say you're not using the
716
+ > lead-gen tools right now -- just tell me: 'Turn off the lead-gen system for now.'
717
+ > Done. Turn it back on anytime the same way."
718
+
719
+ **Step 6 -- Reassure about iteration.**
720
+
721
+ > "The general principle is: you'll describe what you want, I'll propose the change,
722
+ > you confirm, and it happens. You're always in the loop -- nothing changes without
723
+ > your say-so."
724
+
725
+ ### Hidden actions summary
726
+
727
+ - Modify and redeploy the lesson 4 automation per the user's request.
728
+ - Execute the updated automation to verify.
729
+ - If a profile change is mentioned, silently invoke the org-model update ceremony with
730
+ user confirmation.
731
+
732
+ ### Completion signal
733
+
734
+ Complete when the user has successfully requested and seen at least one change applied
735
+ to a live automation.
736
+
737
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
738
+
739
+ ```
740
+ [x] YYYY-MM-DD Lesson 7: Changing things later
741
+ ```
742
+
743
+ Display the updated menu.
744
+
745
+ ---
746
+
747
+ ## Lesson 8: When things go wrong
748
+
749
+ **Estimated time:** 10-15 minutes
750
+
751
+ ### Opening line
752
+
753
+ Say:
754
+
755
+ > "Everything works most of the time. But sometimes an automation doesn't do what
756
+ > you expected, something looks stuck, or you just don't see what you thought you'd
757
+ > see. This is how we handle that."
758
+
759
+ ### Flow
760
+
761
+ **Step 1 -- Establish the ground rule.**
762
+
763
+ > "The rule is simple: if something looks wrong, tell me. In plain language. You don't
764
+ > need to know why it's wrong or what the technical reason is. Just describe what you
765
+ > expected to see and what you're seeing instead.
766
+ >
767
+ > Something like: 'I thought the morning summary would arrive by now but it hasn't.'
768
+ > Or: 'The approval card I expected isn't showing up.' Or: 'It ran but the message
769
+ > looks wrong.'
770
+ >
771
+ > That's all I need."
772
+
773
+ **Step 2 -- Demo: investigate and report back.**
774
+
775
+ Construct a realistic example based on the automations built during the tutorial. If
776
+ possible, introduce a minor intentional issue (e.g., run an automation with a missing
777
+ input) and let the user report it, or describe a fictional report for demonstration.
778
+
779
+ [Hidden action]: When the user describes a problem (or for the demo, when the agent
780
+ introduces one), investigate using execution logs and runtime state. Determine the
781
+ plain-language cause.
782
+
783
+ Narrate the resolution:
784
+
785
+ > "I looked into that. Here's what happened: [one or two plain sentences describing
786
+ > the cause in non-technical language, e.g., 'The automation ran, but the daily
787
+ > summary was empty because your task list didn't have anything new since it last ran.
788
+ > That's normal -- if there's nothing to report, it skips the message.'
789
+ >
790
+ > Or: 'It looks like it ran but the email didn't go out because the account connection
791
+ > for your email provider needs to be refreshed. I'll walk you through reconnecting
792
+ > it if you want.']"
793
+
794
+ Never show: stack traces, error codes, file names, log excerpts, or raw system output.
795
+ Everything must be translated to plain language before the user sees it.
796
+
797
+ **Step 3 -- Cover the common scenarios.**
798
+
799
+ Walk through three common situations briefly:
800
+
801
+ > "There are really three situations you'll hit:
802
+ >
803
+ > 1. 'Nothing happened when I expected it to.' -- Tell me what you expected. I'll
804
+ > check whether it ran, when it ran, and what it did.
805
+ > 2. 'It ran but the result looks wrong.' -- Describe what looked off. I'll figure
806
+ > out what went into it and why the output is different from what you expected.
807
+ > 3. 'Something seems stuck.' -- Tell me which automation and what you last saw.
808
+ > I'll find out if it's waiting for something (like an account connection that
809
+ > needs attention) and tell you what needs to happen next.
810
+ >
811
+ > In all cases, my goal is to give you one clear answer: here's what happened, and
812
+ > here's what (if anything) you need to do."
813
+
814
+ **Step 4 -- Set expectations on timing.**
815
+
816
+ > "Most issues I can diagnose immediately. If I need a few moments to investigate
817
+ > something more complex, I'll tell you I'm looking into it and come back with an
818
+ > answer. I won't leave you hanging with technical jargon -- I'll always translate."
819
+
820
+ **Step 5 -- Invite a real question.**
821
+
822
+ > "Is there anything that's already looked odd or unexpected? Now's a good time to
823
+ > ask -- or you can come back to me any time something doesn't look right."
824
+
825
+ ### Hidden actions summary
826
+
827
+ - When a problem is described: read execution logs, check runtime state, identify
828
+ the plain-language cause.
829
+ - Never surface raw technical output; translate everything.
830
+ - If an account connection issue is detected, guide the user to reconnect it without
831
+ naming the technical mechanism.
832
+
833
+ ### Completion signal
834
+
835
+ Complete when the user has seen at least one problem diagnosed and explained in plain
836
+ language and indicates they understand the process.
837
+
838
+ [Hidden action]: Update `.claude/memory/tutorial-progress.md`:
839
+
840
+ ```
841
+ [x] YYYY-MM-DD Lesson 8: When things go wrong
842
+ ```
843
+
844
+ Display the updated menu with all 8 lessons marked complete (assuming they are).
845
+
846
+ ---
847
+
848
+ ## After All 8 Lessons Complete
849
+
850
+ When all eight lessons are marked complete in `.claude/memory/tutorial-progress.md`,
851
+ display this closing message:
852
+
853
+ > "You've been through everything. You know how to talk to me, your business profile
854
+ > is set up, you've built and changed a real automation, you can find your way around
855
+ > your dashboard, and you know what to do when something looks off.
856
+ >
857
+ > Here's what I'd suggest next: think of one thing in your business that happens
858
+ > repeatedly and takes your time. Tell me about it. I'll build it for you.
859
+ >
860
+ > If you ever want to revisit any of these sessions, just say 'tutorial' and I'll
861
+ > bring up the menu again. Any lesson you want to redo is always available."
862
+
863
+ Then stay in the conversation ready for the user's first real request.
864
+
865
+ ---
866
+
867
+ ## Progress File Format
868
+
869
+ The file `.claude/memory/tutorial-progress.md` must follow this format:
870
+
871
+ ```
872
+ # Tutorial Progress
873
+
874
+ Track: vibe-coder
875
+ Started: YYYY-MM-DD
876
+
877
+ ## Lessons
878
+
879
+ [ ] Lesson 1: Welcome -- what this place does for you
880
+ [ ] Lesson 2: How to talk to me
881
+ [ ] Lesson 3: Your business profile
882
+ [ ] Lesson 4: Your first automation
883
+ [ ] Lesson 5: Your dashboard -- where everything lives
884
+ [ ] Lesson 6: Your approval queue -- signing off on things
885
+ [ ] Lesson 7: Changing things later
886
+ [ ] Lesson 8: When things go wrong
887
+ ```
888
+
889
+ Replace `[ ]` with `[x] YYYY-MM-DD` as each lesson completes. Create the file on
890
+ first use if it does not exist, pre-populated with all eight lessons unchecked.