@pixeleducacao/curso-openclaw 2026.5.8

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 (88) hide show
  1. package/README.md +60 -0
  2. package/assets/cases/case-amora.md +97 -0
  3. package/assets/cases/case-aurora-brunner.md +85 -0
  4. package/assets/cases/case-chris-everest.md +114 -0
  5. package/assets/cases/case-filippe-cesar.md +117 -0
  6. package/assets/cases/case-igor-gouveia.md +106 -0
  7. package/assets/cases//360/237/223/215 LEIA PRIMEIRO" +57 -0
  8. package/assets/cheatsheets/crons-do-seu-agente.md +170 -0
  9. package/assets/cheatsheets/identidade-do-seu-agente.md +133 -0
  10. package/assets/cheatsheets/integracoes-de-produtividade.md +171 -0
  11. package/assets/cheatsheets/memoria-do-seu-agente.md +166 -0
  12. package/assets/cheatsheets/mission-control.md +220 -0
  13. package/assets/cheatsheets/multi-agente.md +193 -0
  14. package/assets/cheatsheets/onboarding-do-seu-agente.md +145 -0
  15. package/assets/cheatsheets/outros-canais.md +129 -0
  16. package/assets/cheatsheets/skills-do-seu-agente.md +165 -0
  17. package/assets/cheatsheets/workspace-do-seu-agente.md +155 -0
  18. package/assets/cheatsheets//360/237/223/215 LEIA PRIMEIRO" +61 -0
  19. package/assets/prompts/business/analise-features.md +47 -0
  20. package/assets/prompts/business/metricas-saas.md +53 -0
  21. package/assets/prompts/business/reports-pdf.md +37 -0
  22. package/assets/prompts/business//360/237/223/215 LEIA PRIMEIRO.docx +0 -0
  23. package/assets/prompts/community/analise-comunidade.md +43 -0
  24. package/assets/prompts/community//360/237/223/215 LEIA PRIMEIRO" +11 -0
  25. package/assets/prompts/content/content-waterfall.md +57 -0
  26. package/assets/prompts/content/ideias-de-conteudo.md +36 -0
  27. package/assets/prompts/content/tom-de-voz.md +41 -0
  28. package/assets/prompts/content//360/237/223/215 LEIA PRIMEIRO" +13 -0
  29. package/assets/prompts/productivity/daily-briefing.md +57 -0
  30. package/assets/prompts/productivity/social-metrics.md +53 -0
  31. package/assets/prompts/productivity/viagens-pesquisas.md +38 -0
  32. package/assets/prompts/productivity//360/237/223/215 LEIA PRIMEIRO" +13 -0
  33. package/assets/prompts/research/deep-research.md +52 -0
  34. package/assets/prompts/research//360/237/223/215 LEIA PRIMEIRO" +11 -0
  35. package/assets/prompts/support/analise-suporte.md +41 -0
  36. package/assets/prompts/support//360/237/223/215 LEIA PRIMEIRO" +11 -0
  37. package/assets/prompts//360/237/223/215 LEIA PRIMEIRO.docx +0 -0
  38. package/assets/skills/_registry.md +184 -0
  39. package/assets/skills/canais/_registry.md +36 -0
  40. package/assets/skills/canais/wizard-whatsapp/SKILL.md +334 -0
  41. package/assets/skills/operacional/_registry.md +20 -0
  42. package/assets/skills/operacional/backup-workspace-github/SKILL.md +246 -0
  43. package/assets/skills/planejamento/_registry.md +70 -0
  44. package/assets/skills/planejamento/brainstorming/SKILL.md +133 -0
  45. package/assets/skills/planejamento/executing-plans/SKILL.md +182 -0
  46. package/assets/skills/planejamento/verification-before-completion/SKILL.md +157 -0
  47. package/assets/skills/planejamento/writing-plans/SKILL.md +170 -0
  48. package/assets/skills/starter/_registry.md +93 -0
  49. package/assets/skills/starter/onboarding-checklist/SKILL.md +434 -0
  50. package/assets/skills/starter/onboarding-checklist/evals/evals.json +245 -0
  51. package/assets/skills/starter/onboarding-checklist/references/arquivamento-pos-jornada.md +167 -0
  52. package/assets/skills/starter/onboarding-checklist/references/arquivos-raiz.md +281 -0
  53. package/assets/skills/starter/onboarding-checklist/references/checklist-template.md +215 -0
  54. package/assets/skills/starter/onboarding-checklist/references/comandos-canonicos.md +272 -0
  55. package/assets/skills/starter/onboarding-checklist/references/dependencias.md +139 -0
  56. package/assets/skills/starter/onboarding-checklist/references/manifesto-abertura.md +54 -0
  57. package/assets/skills/starter/onboarding-checklist/references/mapa-aulas.md +216 -0
  58. package/assets/skills/starter/onboarding-checklist/references/padrao-exemplos-opt-in.md +159 -0
  59. package/assets/skills/starter/onboarding-checklist/references/principios-defensivos.md +408 -0
  60. package/assets/skills/starter/onboarding-checklist/references/prompt-upgrade-para-aluno-antigo.md +289 -0
  61. package/assets/skills/starter/onboarding-checklist/references/sistema-de-mapas.md +273 -0
  62. package/assets/skills/starter/onboarding-checklist/references/sobre-o-kit.md +105 -0
  63. package/assets/skills/starter/primeira-vitoria/SKILL.md +515 -0
  64. package/assets/skills/starter/primeira-vitoria/evals/evals.json +201 -0
  65. package/assets/skills/starter/wizard-agente/SKILL.md +420 -0
  66. package/assets/skills/starter/wizard-agente/evals/evals.json +204 -0
  67. package/assets/skills/starter/wizard-aluno/SKILL.md +353 -0
  68. package/assets/skills/starter/wizard-aluno/evals/evals.json +192 -0
  69. package/assets/skills/starter/wizard-autonomia/SKILL.md +391 -0
  70. package/assets/skills/starter/wizard-autonomia/evals/evals.json +192 -0
  71. package/assets/skills/starter/wizard-conectar/SKILL.md +450 -0
  72. package/assets/skills/starter/wizard-conectar/evals/evals.json +196 -0
  73. package/assets/skills/starter/wizard-whisper-quick/SKILL.md +349 -0
  74. package/assets/skills/starter/wizard-whisper-quick/evals/evals.json +195 -0
  75. package/assets/skills/starter/wizard-workspace/SKILL.md +483 -0
  76. package/assets/skills/starter/wizard-workspace/evals/evals.json +174 -0
  77. package/assets/templates/AGENTS.template.md +58 -0
  78. package/assets/templates/IDENTITY.template.md +21 -0
  79. package/assets/templates/MAPA.template.md +71 -0
  80. package/assets/templates/README.md +62 -0
  81. package/assets/templates/SOUL-stub.template.md +26 -0
  82. package/assets/templates/USER.template.md +41 -0
  83. package/dist/index.d.ts +9 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +11 -0
  86. package/dist/index.js.map +1 -0
  87. package/openclaw.plugin.json +15 -0
  88. package/package.json +44 -0
@@ -0,0 +1,334 @@
1
+ ---
2
+ name: wizard-whatsapp
3
+ status: ATIVO
4
+ category: canais
5
+ owner: aluno
6
+ version: 1.0
7
+ mode: guided
8
+ estimated_time: 15-45min (varia por modo escolhido)
9
+ model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4]
10
+ description: Use when student types "ativa whatsapp" / "configura whatsapp" / "quero usar whatsapp", typically AFTER finishing primeira-vitoria (next-step optional). Configures WhatsApp as additional channel beyond Telegram, with 2 modes (sessão própria / chip dedicado). Default behavior: read-only — agent only responds when EXPLICITLY mentioned/triggered, NOT to every message. Asks use case BEFORE configuring (Princípio 7 — em dúvida, pergunta).
11
+ ---
12
+
13
+ # Wizard WhatsApp — Canal Opcional Pós-Vitória
14
+
15
+ ## Promessa
16
+
17
+ Aluno ativa WhatsApp como canal extra do agente. NÃO substitui Telegram (que continua o canal principal — UX da checklist depende dele). Adiciona caminho alternativo pra interagir com agente quando WhatsApp é mais conveniente (mobile, mensagens curtas, áudio).
18
+
19
+ **Default crítico:** modo **read-only** — agente NÃO responde proativamente a todas as mensagens. Responde só quando aluno aciona explicitamente.
20
+
21
+ ## Quando disparar
22
+
23
+ **Trigger explícito (sempre — não é trigger automático):**
24
+ - "ativa whatsapp"
25
+ - "configura whatsapp"
26
+ - "quero usar whatsapp"
27
+ - "adiciona whatsapp"
28
+
29
+ **NÃO disparar se:**
30
+ - `whatsapp_active=true` em `MEMORY.md` E sessão WhatsApp ainda válida (token não expirou)
31
+
32
+ Esse wizard NÃO é parte da jornada principal — é opcional pós-primeira-vitória.
33
+
34
+ ## Pergunta zero — caso de uso ANTES de configurar (Princípio 7)
35
+
36
+ Antes de qualquer config técnica, perguntar caso de uso:
37
+
38
+ ```
39
+ "Antes de mexer em WhatsApp, me conta: pra que você quer usar?
40
+
41
+ Casos comuns:
42
+
43
+ a) Eu quero mandar mensagem pro agente do meu WhatsApp pessoal
44
+ (em vez de abrir Telegram). Mais cômodo no mobile.
45
+
46
+ b) Eu tenho um chip dedicado (ex: número de empresa) e quero o
47
+ agente atendendo lá com regras claras.
48
+
49
+ c) Quero o agente respondendo grupos/contatos automaticamente
50
+ (suporte, atendimento, vendas).
51
+
52
+ d) Outro — me conta.
53
+
54
+ Manda 'a', 'b', 'c' ou descreve."
55
+ ```
56
+
57
+ **Por que perguntar antes:** os 3 casos precisam de SETUP DIFERENTE. Caso 'c' (resposta automática) tem riscos sérios (agente respondendo contato pessoal sem querer). Caso 'a' é mais simples. Caso 'b' é o intermediário.
58
+
59
+ ### Resposta por caso
60
+
61
+ #### Caso 'a' — sessão própria (WhatsApp pessoal do aluno)
62
+
63
+ ```
64
+ "Entendi. Caso A: sua sessão WhatsApp pessoal vinculada ao agente.
65
+
66
+ Implicações importantes:
67
+
68
+ ✓ Você manda áudio/texto pro agente como se fosse contato seu
69
+ ✓ Agente responde só PRA VOCÊ (o número que você usar pra mandar)
70
+ ✗ Agente NUNCA responde outros contatos seus por padrão (read-only)
71
+ ✗ Conexão depende de Linked Devices (mesma sessão do app — agente
72
+ 'lê suas mensagens', mas só responde quando você manda em chat
73
+ 1:1 contigo mesmo)
74
+
75
+ Modo correto: você cria um chat com você mesmo no WhatsApp
76
+ ('Mensagem para si próprio') e usa esse chat como canal.
77
+
78
+ Tradeoff vs Telegram: WhatsApp não suporta UI visual da checklist
79
+ (botões inline, atualização in-place). Tudo vira texto plano.
80
+ A jornada principal ficou no Telegram por isso.
81
+
82
+ Quer prosseguir com setup A? Manda 'sim' ou 'mudei de ideia'."
83
+ ```
84
+
85
+ #### Caso 'b' — chip dedicado
86
+
87
+ ```
88
+ "Entendi. Caso B: chip dedicado (número de empresa ou separado).
89
+
90
+ Implicações:
91
+
92
+ ✓ Agente atende esse número com regras claras
93
+ ✓ Não mistura com seu WhatsApp pessoal (separação limpa)
94
+ ✗ Custo: chip + plano (~R$ 15-30/mês) + setup ~30min
95
+
96
+ Setup envolve:
97
+ 1. Você configura WhatsApp Business API ou Linked Devices nesse chip
98
+ 2. Agente conecta a esse chip
99
+ 3. Definimos regras: atende ou só lê? Quais contatos?
100
+
101
+ Esse caso é mais robusto pra casos PROFISSIONAIS (atendimento,
102
+ suporte). Pra uso pessoal o Caso A já basta.
103
+
104
+ Quer prosseguir com B? Manda 'sim' ou 'volto pro A'."
105
+ ```
106
+
107
+ #### Caso 'c' — atendimento automático
108
+
109
+ ```
110
+ "Entendi. Caso C tem RISCO sério que você precisa pesar antes
111
+ de seguir.
112
+
113
+ ⚠️ RISCO: se eu respondo automático em grupos/contatos do seu
114
+ WhatsApp pessoal, posso responder por você em conversa que não
115
+ era pra mim. Casos reais já aconteceram:
116
+ - Agente respondendo grupo de família com contexto profissional
117
+ - Agente respondendo cliente quando aluno não queria
118
+ - Agente vazando contexto de outras conversas
119
+
120
+ Pra fazer C com segurança:
121
+
122
+ 1. Use chip DEDICADO (Caso B), não WhatsApp pessoal
123
+ 2. Whitelist de contatos que agente PODE responder (lista explícita)
124
+ 3. Modo de aprovação: agente sugere resposta, você aprova antes de enviar
125
+
126
+ Posso configurar C com chip dedicado + whitelist + aprovação manual.
127
+
128
+ Quer:
129
+ a) Seguir com chip dedicado + segurança extra (Caso B+ na real)
130
+ b) Voltar pro Caso A (uso pessoal seguro)
131
+ c) Pular WhatsApp por enquanto"
132
+ ```
133
+
134
+ #### Caso 'd' — outro
135
+
136
+ ```
137
+ "Manda detalhe do que você quer fazer. Vou avaliar se cabe num
138
+ dos modos existentes ou se precisa abordagem custom."
139
+ ```
140
+
141
+ ## Princípio 11 — Detecção (sempre, antes do setup técnico)
142
+
143
+ Após aluno escolher caso, antes de configurar, detectar:
144
+
145
+ ```
146
+ 1. WhatsApp Web/Linked Device já configurado no Managed?
147
+ 2. Chip dedicado já registrado?
148
+ 3. Tokens válidos no .env (WHATSAPP_SESSION_TOKEN, etc)?
149
+ ```
150
+
151
+ Se já tudo pronto: marca `whatsapp_active=true` e vai pra teste.
152
+
153
+ ## Fluxo Caso A (sessão própria — mais comum)
154
+
155
+ ### 1. Aluno escaneia QR code
156
+
157
+ ```
158
+ "Vou gerar QR code do WhatsApp Web pra você escanear.
159
+
160
+ Isso vincula a sessão do agente ao seu WhatsApp pessoal — mesma
161
+ mecânica de quando você usa WhatsApp Web no navegador.
162
+
163
+ [gera QR via openclaw whatsapp link-qr]
164
+
165
+ Abre o WhatsApp no celular →
166
+ Configurações →
167
+ Aparelhos conectados →
168
+ 'Conectar um aparelho' →
169
+ Escaneia o QR.
170
+
171
+ Quando vincular, manda 'conectado' aqui."
172
+ ```
173
+
174
+ ### 2. Validar conexão
175
+
176
+ ```bash
177
+ openclaw whatsapp status
178
+ ```
179
+
180
+ Se conectado: prossegue. Se não: investigar (provavelmente QR expirou ou não foi escaneado).
181
+
182
+ ### 3. Configurar regras default — read-only
183
+
184
+ ```
185
+ "Configuração padrão (recomendada): MODO READ-ONLY.
186
+
187
+ O que significa:
188
+ ✓ Eu LEIO todas as suas mensagens (pra você poder me invocar)
189
+ ✗ Eu NUNCA respondo automaticamente
190
+ ✓ Eu respondo SÓ quando você manda mensagem pra mim explicitamente
191
+ (no chat 'Você mesmo')
192
+
193
+ Como invocar quando precisar:
194
+ - No chat 'Você mesmo' (Mensagem para si próprio): qualquer mensagem
195
+ é uma instrução pra mim
196
+ - Em outros chats: começa mensagem com '@agente' (ou nome configurado)
197
+ pra acionar — fora isso, fico quieta
198
+
199
+ Confirma esse modo? Ou prefere customizar?"
200
+ ```
201
+
202
+ Salvar config:
203
+
204
+ ```bash
205
+ openclaw whatsapp config --mode=read-only \
206
+ --self-chat-trigger=any \
207
+ --other-chat-trigger="@agente"
208
+ ```
209
+
210
+ ### 4. Smoke test
211
+
212
+ ```
213
+ "Manda mensagem pra mim no chat 'Você mesmo' agora.
214
+
215
+ Pode ser 'oi' ou áudio curto — qualquer coisa.
216
+ Eu respondo aqui ou no WhatsApp?
217
+ "
218
+ ```
219
+
220
+ Pergunta extra: "qual canal prefere pra resposta?" (default: mesmo canal — WhatsApp).
221
+
222
+ Quando aluno mandar, validar end-to-end.
223
+
224
+ ### 5. Atualizar MEMORY.md
225
+
226
+ ```markdown
227
+ ## Flags
228
+ whatsapp_active: true
229
+ whatsapp_mode: read-only
230
+ whatsapp_caso: A (sessão própria)
231
+
232
+ ## Decisões da jornada
233
+ - {data}: Ativou WhatsApp. Modo: read-only. Caso: A. Trigger em outros chats: @agente.
234
+ ```
235
+
236
+ ### 6. Aviso final
237
+
238
+ ```
239
+ "✓ WhatsApp ativo (modo read-only).
240
+
241
+ Importantes:
242
+
243
+ 🔒 Privacidade: eu vejo TODAS suas mensagens (limitação do WhatsApp Web).
244
+ Mas só processo as que são pra mim (chat 'Você mesmo' ou @agente).
245
+ Mensagens privadas suas com outros contatos não viram contexto meu.
246
+
247
+ ⏱️ Sessão expira em ~14 dias se WhatsApp Web ficar offline. Pra renovar,
248
+ manda 'renova whatsapp' que eu gero novo QR.
249
+
250
+ 🛑 Pra desativar a qualquer momento:
251
+ 'desativa whatsapp' — agente para de processar WhatsApp imediatamente.
252
+ Sessão Linked Device permanece (pra reativar fácil) até você desconectar
253
+ manualmente no app."
254
+ ```
255
+
256
+ ## Fluxo Caso B (chip dedicado)
257
+
258
+ Mais complexo. Setup principal:
259
+
260
+ 1. Aluno informa número do chip
261
+ 2. Configura WhatsApp Business API ou Linked Device no chip
262
+ 3. Agente conecta via API key (formato `WHATSAPP_BUSINESS_TOKEN` no `.env`)
263
+ 4. Define lista de contatos que agente atende (whitelist) — opcional
264
+ 5. Smoke test
265
+
266
+ Detalhes específicos do Business API ficam em `references/whatsapp-business-setup.md` (criar quando necessário).
267
+
268
+ ## Fluxo Caso C (atendimento automático)
269
+
270
+ Sempre redireciona pra Caso B+ (chip dedicado + whitelist + aprovação):
271
+
272
+ ```
273
+ "Pra atendimento automático seguro: chip dedicado + whitelist explícita
274
+ de contatos + modo aprovação (agente sugere resposta, você aprova antes
275
+ de enviar).
276
+
277
+ Modo aprovação evita 90% dos riscos. Você dorme tranquilo sabendo que
278
+ nada sai sem sua palavra.
279
+
280
+ Vou configurar como Caso B+ — manda 'segue B+' pra prosseguir."
281
+ ```
282
+
283
+ ## Critérios de sucesso
284
+
285
+ - [ ] Caso de uso identificado e confirmado pelo aluno
286
+ - [ ] Sessão WhatsApp conectada (QR escaneado OU API token válido)
287
+ - [ ] Modo correto configurado (read-only por default)
288
+ - [ ] Smoke test passou
289
+ - [ ] `whatsapp_active=true` em `MEMORY.md`
290
+ - [ ] `whatsapp_mode` e `whatsapp_caso` registrados
291
+ - [ ] Aluno informado de privacidade + expiração + comando de desativação
292
+
293
+ ## Erros comuns
294
+
295
+ - **QR expirou antes de aluno escanear:** padrão WhatsApp Web (45s). Gerar novo.
296
+ - **Aluno escolheu Caso C sem entender risco:** sempre redirecionar pra B+ (Princípio 7 — em dúvida, perguntar). Não configurar atendimento automático em WhatsApp pessoal.
297
+ - **Aluno tem 2+ números:** WhatsApp Web aceita 1 sessão por dispositivo. Esclarecer qual número será o canal.
298
+ - **Sessão derrubada por outra conexão:** se aluno conectar WhatsApp Web em outro lugar, pode invalidar a sessão do agente. Avisar antes.
299
+
300
+ ## Aplicação dos princípios defensivos
301
+
302
+ - **Princípio 2 (confirmação):** confirma cada escolha (caso, modo, trigger).
303
+ - **Princípio 3 (NUNCA elevação):** NÃO escala automaticamente do read-only pra atendimento sem confirmação explícita do aluno.
304
+ - **Princípio 4 (narrar antes):** explica o que cada modo FAZ antes de configurar.
305
+ - **Princípio 5 (atualizar MEMORY):** múltiplas flags (mode, caso, expiração).
306
+ - **Princípio 7 (em dúvida, pergunta):** caso C sempre cai em B+ — não assume que aluno sabe risco.
307
+ - **Princípio 11 (detectar antes):** lê estado WhatsApp antes de pedir QR.
308
+
309
+ ## Decisões arquiteturais
310
+
311
+ - **D14 (Telegram-only no kit core):** WhatsApp é OPCIONAL pós-vitória. Não substitui Telegram da jornada.
312
+ - **D15 (read-only default):** modo conservador inicial. Aluno escolhe expandir se quiser.
313
+
314
+ Ver: [`../../../DECISOES-ARQUITETURA.md`](../../../DECISOES-ARQUITETURA.md)
315
+
316
+ ## Referências
317
+
318
+ ### Internas
319
+ - Princípios: [`../../starter/onboarding-checklist/references/principios-defensivos.md`](../../starter/onboarding-checklist/references/principios-defensivos.md)
320
+
321
+ ### Externas
322
+ - WhatsApp Web FAQ: https://faq.whatsapp.com/general/download-and-installation/about-whatsapp-web
323
+ - WhatsApp Business API: https://business.whatsapp.com/products/business-platform
324
+
325
+ ## Status
326
+
327
+ ✅ ATIVO desde v1 do Starter Kit (02/05/2026).
328
+
329
+ ## Roadmap
330
+
331
+ - v1.1: Suporte a múltiplos canais simultâneos (Telegram + WhatsApp + Slack)
332
+ - v1.2: Whitelist visual no Telegram (aluno gerencia "quem agente pode responder no WhatsApp")
333
+ - v1.3: Modo aprovação manual (agente sugere → aluno aprova → envia) pra atendimento
334
+ - v2: Routing inteligente — agente decide qual canal usar baseado no tipo de mensagem
@@ -0,0 +1,20 @@
1
+ # Registry — operacional/ (skills utilities)
2
+
3
+ > Skills utilities pra operação contínua do agente.
4
+ > Não fazem parte da jornada obrigatória do starter-kit, mas são instaladas/ativadas durante ela.
5
+
6
+ ## Skills
7
+
8
+ | Skill | Status | Versão | Owner | Mode | Quando ativar |
9
+ |---|---|---|---|---|---|
10
+ | [`backup-workspace-github`](backup-workspace-github/SKILL.md) | ✅ ATIVO | 1.0 | aluno | guided | Item "Integrações" da checklist (módulo 7) ou comando "ativa backup" |
11
+
12
+ ## Princípios universais
13
+
14
+ Todas as skills aqui herdam os princípios defensivos da `onboarding-checklist`. Ver: [`../starter/onboarding-checklist/references/principios-defensivos.md`](../starter/onboarding-checklist/references/principios-defensivos.md).
15
+
16
+ ## Roadmap (skills futuras)
17
+
18
+ - `health-check` — diagnóstico do estado do agente (skills, crons, integrações)
19
+ - `restore-from-backup` — reverte workspace pra estado anterior do GitHub
20
+ - `clean-orphans` — remove arquivos órfãos detectados em pastas
@@ -0,0 +1,246 @@
1
+ ---
2
+ name: backup-workspace-github
3
+ status: ATIVO
4
+ category: operacional
5
+ owner: aluno
6
+ version: 1.0
7
+ mode: guided
8
+ estimated_time: 5min (ativação) + automatic (cron)
9
+ model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4]
10
+ description: Use when student wants automatic daily backup of workspace to private GitHub repo. Activates during item "Integrações" of the wizard checklist OR standalone when student types "ativa backup github" / "configura backup". Combines openclaw backup create + git push to student's private repo. Cron daily at 03:00 BRT. Maintains 30-day history. Notifies via Telegram on failure.
11
+ ---
12
+
13
+ # Backup Workspace GitHub
14
+
15
+ ## Promessa
16
+
17
+ O workspace inteiro do aluno (skills, memory, configs, arquivos raiz — exceto `.env`) é versionado automaticamente todo dia em um repo privado do GitHub. Se algo der errado (deleção acidental, bug do Managed, hardware fail), aluno restaura pelo histórico de commits.
18
+
19
+ ## Quando disparar
20
+
21
+ **Trigger automático (durante jornada):**
22
+ - Aluno chega no item "Integrações" da checklist (módulo 7) e fornece o GitHub Service Token
23
+
24
+ **Trigger explícito (standalone):**
25
+ - "ativa backup github"
26
+ - "configura backup"
27
+ - "quero backup do workspace"
28
+
29
+ **NÃO disparar se:**
30
+ - Cron `backup-workspace-github` já tá rodando (verificar via `openclaw cron list`)
31
+ - Aluno explicitamente desativou backup (`backup_disabled=true` em `MEMORY.md`)
32
+
33
+ ## Princípio 11 — Detectar antes de pedir
34
+
35
+ Antes de qualquer coisa, **detectar** estado atual:
36
+
37
+ ```
38
+ 1. Lê .env: existe GITHUB_TOKEN?
39
+ 2. Roda `openclaw cron list`: existe cron backup-workspace-github?
40
+ 3. Verifica se repo privado existe no GitHub do aluno
41
+ ```
42
+
43
+ **Casos:**
44
+
45
+ | Estado | Ação |
46
+ |---|---|
47
+ | Tudo configurado e rodando | "✓ Backup já tá ativo. Último push: {timestamp}. Próximo: hoje 03:00." |
48
+ | Token existe mas cron não | Ativa cron com token existente (skip pedir token) |
49
+ | Token não existe | Pede token (segue fluxo "credencial não encontrada" do Princípio 11/.env first) |
50
+ | Repo não existe | Cria repo privado no GitHub do aluno via API |
51
+
52
+ ## Princípio ".env first"
53
+
54
+ Token GitHub segue padrão universal de credenciais:
55
+
56
+ 1. Tenta ler `GITHUB_TOKEN` do `.env`
57
+ 2. Se achou e funciona (call de teste à API GitHub): usa direto
58
+ 3. Se achou mas inválido: explica erro e pede novo token
59
+ 4. Se não achou: pede ao aluno (uma vez)
60
+ 5. Salva no `.env` com nome canônico `GITHUB_TOKEN`
61
+
62
+ **Como aluno gera o token:**
63
+
64
+ ```
65
+ "Pra criar GitHub Service Token:
66
+
67
+ 1. Acessa https://github.com/settings/tokens (logado)
68
+ 2. Clica 'Generate new token (classic)'
69
+ 3. Nome sugerido: 'openclaw-backup-{seu-agente}'
70
+ 4. Expiration: 'No expiration' (ou 1 ano se preferir rotacionar)
71
+ 5. Marca scopes: 'repo' (acesso completo a repos privados)
72
+ 6. Clica 'Generate token' no fim
73
+ 7. Copia o token (começa com ghp_...) e cola aqui
74
+
75
+ Atenção: o token só é mostrado UMA vez. Copia agora."
76
+ ```
77
+
78
+ ## Fluxo de configuração
79
+
80
+ ### 1. Validar token GitHub
81
+
82
+ Após receber token, agente roda:
83
+
84
+ ```bash
85
+ curl -s -H "Authorization: token GITHUB_TOKEN" https://api.github.com/user
86
+ ```
87
+
88
+ Se retorna 200 com info do usuário: ✓ token válido
89
+ Se retorna 401: token inválido — pede novo
90
+ Se outro erro: investiga e reporta
91
+
92
+ ### 2. Criar repo privado (se não existir)
93
+
94
+ Nome padrão: `{username-github}-workspace-backup`
95
+
96
+ ```bash
97
+ curl -X POST -H "Authorization: token GITHUB_TOKEN" \
98
+ https://api.github.com/user/repos \
99
+ -d '{"name": "{nome}", "private": true, "auto_init": true}'
100
+ ```
101
+
102
+ Confirmação ao aluno: "✓ Repo criado: github.com/{username}/{nome}-workspace-backup (privado)"
103
+
104
+ ### 3. Configurar git local no workspace
105
+
106
+ ```bash
107
+ cd $WORKSPACE
108
+ git init # se não estiver inicializado
109
+ git remote add backup https://{TOKEN}@github.com/{username}/{nome}-workspace-backup.git
110
+ ```
111
+
112
+ **Importante:** o token vai inline no remote URL. Cuidado com vazamento — não commitar `.git/config` em outro repo.
113
+
114
+ ### 4. Criar `.gitignore` defensivo
115
+
116
+ Adicionar/verificar entradas no `.gitignore` do workspace:
117
+
118
+ ```
119
+ .env
120
+ .env.local
121
+ .env.*.local
122
+ *.key
123
+ *.pem
124
+ *-credentials.json
125
+ .tmp-*
126
+ ```
127
+
128
+ **Crítico:** `.env` NUNCA vai pro backup. Chaves API ficam só no Managed do aluno.
129
+
130
+ ### 5. Criar cron diário
131
+
132
+ ```bash
133
+ openclaw cron create \
134
+ --name "backup-workspace-github" \
135
+ --schedule "0 3 * * *" \
136
+ --tz "America/Sao_Paulo" \
137
+ --command "cd $WORKSPACE && \
138
+ openclaw backup create && \
139
+ git add -A && \
140
+ git commit -m \"backup: $(date +%Y-%m-%d-%H%M)\" && \
141
+ git push backup main"
142
+ ```
143
+
144
+ Confirma ao aluno: "✓ Cron configurado: diário às 03:00 BRT"
145
+
146
+ ### 6. Primeiro push manual (smoke test)
147
+
148
+ Roda imediatamente uma vez pra confirmar que funciona end-to-end:
149
+
150
+ ```bash
151
+ cd $WORKSPACE
152
+ git add -A
153
+ git commit -m "backup: initial setup $(date +%Y-%m-%d-%H%M)"
154
+ git push backup main
155
+ ```
156
+
157
+ Se sucesso: "✓ Primeiro backup feito. Você pode ver em https://github.com/{username}/{nome}-workspace-backup"
158
+
159
+ Se erro: investiga (provavelmente .gitignore mal configurado ou token sem scope correto) e reporta.
160
+
161
+ ### 7. Atualizar MEMORY.md
162
+
163
+ ```markdown
164
+ - {data}: backup-workspace-github ativado. Repo: {url}. Cron: 03:00 BRT.
165
+ ```
166
+
167
+ E flag: `backup_active: true`
168
+
169
+ ## Critérios de sucesso
170
+
171
+ - [ ] `GITHUB_TOKEN` no `.env` e validado
172
+ - [ ] Repo privado criado no GitHub do aluno
173
+ - [ ] `.gitignore` exclui `.env` e secrets
174
+ - [ ] Cron `backup-workspace-github` rodando
175
+ - [ ] Primeiro push manual completou com sucesso
176
+ - [ ] `backup_active: true` em `MEMORY.md`
177
+
178
+ ## Erros comuns
179
+
180
+ - **Token sem scope `repo`:** GitHub retorna 404 ao tentar criar repo. Pedir aluno regenerar token marcando `repo`.
181
+ - **`.env` indo pro backup:** falha catastrófica. SEMPRE validar `.gitignore` antes do primeiro push.
182
+ - **Repo nome conflita:** se já existir repo com mesmo nome, sufixar com `-2`, `-3`, etc.
183
+ - **Workspace tem outro remote configurado:** usar `backup` como nome do remote (não `origin`) pra não conflitar.
184
+ - **Cron silenciosamente falha:** configurar notificação via Telegram quando cron falha (próxima versão).
185
+
186
+ ## Histórico de commits
187
+
188
+ Cada backup vira commit separado. Aluno consegue:
189
+
190
+ - Ver histórico: `git log backup/main`
191
+ - Restaurar versão antiga: `git checkout backup/main~7` (volta 7 dias)
192
+ - Ver diff: `git diff backup/main~1 backup/main` (mudanças do último dia)
193
+
194
+ Histórico de 30 dias garantido por convenção. Mais que isso, GitHub não cobra extra (repo privado free tier).
195
+
196
+ ## Limpeza/desativação
197
+
198
+ Se aluno quiser parar:
199
+
200
+ ```
201
+ "desativa backup"
202
+ ```
203
+
204
+ Comportamento:
205
+ 1. Remove cron: `openclaw cron remove backup-workspace-github`
206
+ 2. Marca `backup_disabled: true` em `MEMORY.md`
207
+ 3. **NÃO deleta repo** — fica no GitHub do aluno como histórico
208
+ 4. **NÃO remove `GITHUB_TOKEN` do .env** — pode ser útil pra outras integrações
209
+ 5. Confirma: "✓ Backup desativado. Repo histórico continua em {url}. Reativar a qualquer momento com 'ativa backup'."
210
+
211
+ ## Atualização do TOOLS (se existir)
212
+
213
+ Esta skill aplica Princípio 12 (mapas distribuídos). Se aluno tiver `skills/operacional/MAPA.md`, atualizar com:
214
+
215
+ ```markdown
216
+ | backup-workspace-github | Backup diário do workspace pro GitHub privado | ativo |
217
+ ```
218
+
219
+ Não criar TOOLS.md monolítico (Princípio 12 proíbe).
220
+
221
+ ## Princípios Defensivos
222
+
223
+ Esta skill herda os princípios universais da `onboarding-checklist`. Ver: `skills/starter/onboarding-checklist/references/principios-defensivos.md`.
224
+
225
+ ### Aplicação específica
226
+
227
+ - **Princípio 1 (backup antes):** N/A — esta skill É backup. Mas valida `.gitignore` antes do primeiro push (proteção equivalente)
228
+ - **Princípio 2 (confirmação):** pede confirmação antes de criar cron (afeta infra)
229
+ - **Princípio 11 (detectar antes de pedir):** lê estado atual antes de configurar — se já tá rodando, não duplica
230
+ - **Princípio ".env first":** GitHub Token segue padrão universal de credenciais
231
+
232
+ ## Referências
233
+
234
+ - Padrão `.env first`: `skills/starter/onboarding-checklist/references/principios-defensivos.md` (Princípio 11)
235
+ - Como GitHub gera tokens: https://github.com/settings/tokens
236
+ - Documentação `openclaw cron`: rodar `openclaw cron --help`
237
+
238
+ ## Status
239
+
240
+ ✅ ATIVO desde v1 do Starter Kit (02/05/2026).
241
+
242
+ ## Roadmap
243
+
244
+ - v1.1: Notificação automática via Telegram quando cron falha
245
+ - v1.2: Comando "restaura do backup {data}" pra reverter workspace
246
+ - v2: Suporte a múltiplos remotes (backup pra mais de 1 repo simultâneo)
@@ -0,0 +1,70 @@
1
+ # Registry — planejamento/ (Superpowers curado)
2
+
3
+ > 4 skills de pensamento/processo curadas do projeto open-source [obra/superpowers](https://github.com/obra/superpowers).
4
+ > Adaptadas/simplificadas pro contexto do mini-curso OpenClaw v2.
5
+
6
+ ## Skills
7
+
8
+ | Skill | Status | Versão | Owner | Mode | Tempo |
9
+ |---|---|---|---|---|---|
10
+ | [`brainstorming`](brainstorming/SKILL.md) | ✅ ATIVO | 1.0 | aluno | guided | 5-15min |
11
+ | [`writing-plans`](writing-plans/SKILL.md) | ✅ ATIVO | 1.0 | aluno | guided | 10-30min |
12
+ | [`executing-plans`](executing-plans/SKILL.md) | ✅ ATIVO | 1.0 | aluno | guided | varia |
13
+ | [`verification-before-completion`](verification-before-completion/SKILL.md) | ✅ ATIVO | 1.0 | aluno | guided | 5-15min |
14
+
15
+ ## Fluxo recomendado
16
+
17
+ ```
18
+ brainstorming (entender problema)
19
+
20
+ writing-plans (transformar em plano executável)
21
+
22
+ executing-plans (tirar do papel)
23
+
24
+ verification-before-completion (provar que terminou)
25
+ ```
26
+
27
+ Não precisa rodar todas. Pra projetos pequenos, brainstorming + verification já cobre. Pra projetos médios/grandes, todas as 4 valem.
28
+
29
+ ## Por que curado?
30
+
31
+ O projeto [obra/superpowers](https://github.com/obra/superpowers) tem 23+ skills. Não faz sentido instalar todas no starter-kit (curva de aprendizado massa).
32
+
33
+ Estas 4 são as que MAIS aplicam pro perfil de aluno do mini-curso (não-engenheiro de software, foco em workflows pessoais/pequenas operações). Conforme aluno avança, pode adicionar mais skills do superpowers manualmente.
34
+
35
+ ## Versões
36
+
37
+ Cada skill aqui é VERSÃO CURADA — simplificada do original. Trade-off:
38
+
39
+ ✓ Mais fácil de absorver (5-15min de leitura)
40
+ ✗ Menos detalhada (não cobre casos edge avançados)
41
+
42
+ Pra versão completa: link na seção Referências de cada skill.
43
+
44
+ ## Decisão arquitetural
45
+
46
+ Decisão original (do roadmap): "curar todas as 23 skills do Superpowers" foi rejeitada (ver D em `DECISOES-ARQUITETURA.md`). Curar 4 = começar simples, expandir conforme uso real.
47
+
48
+ ## Como aluno ativa
49
+
50
+ Após primeira-vitória, próximos passos opcionais incluem:
51
+
52
+ ```
53
+ → Quer instalar skills de planejamento (brainstorming, plans, debugging)?
54
+ Manda 'instala superpowers'
55
+ ```
56
+
57
+ Quando aluno manda, agente disponibiliza as 4 skills (já estão no kit, basta marcar como ativas).
58
+
59
+ ## Princípios universais
60
+
61
+ Mesmo com origem externa, todas seguem os 12 princípios defensivos da `onboarding-checklist`. Especialmente:
62
+
63
+ - **Princípio 5** (atualizar estado em arquivo)
64
+ - **Princípio 7** (em dúvida, perguntar)
65
+ - **Princípio 9** (parar se algo der errado)
66
+
67
+ ---
68
+
69
+ *Registry v1 — Onda 3 (02/05/2026).*
70
+ *Source: https://github.com/obra/superpowers (autor: jesse alpha aka @obra)*