@pixeleducacao/curso-openclaw 2026.5.8 → 2026.5.9

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 (42) hide show
  1. package/assets/skills/_registry.md +41 -13
  2. package/assets/skills/operacional/_registry.md +6 -0
  3. package/assets/skills/operacional/backup-workspace-github/SKILL.md +39 -3
  4. package/assets/skills/operacional/commit-diario-workspace/SKILL.md +233 -0
  5. package/assets/skills/operacional/cron-resume-wizards/SKILL.md +329 -0
  6. package/assets/skills/operacional/seguranca-checklist/SKILL.md +202 -0
  7. package/assets/skills/starter/_registry.md +13 -9
  8. package/assets/skills/starter/continuar-jornada/SKILL.md +358 -0
  9. package/assets/skills/starter/gera-log-jornada/SKILL.md +338 -0
  10. package/assets/skills/starter/onboarding-checklist/SKILL.md +416 -88
  11. package/assets/skills/starter/onboarding-checklist/references/arquivos-raiz.md +44 -16
  12. package/assets/skills/starter/onboarding-checklist/references/aula-menus.md +304 -0
  13. package/assets/skills/starter/onboarding-checklist/references/checklist-template.md +70 -1
  14. package/assets/skills/starter/onboarding-checklist/references/comandos-canonicos.md +337 -9
  15. package/assets/skills/starter/onboarding-checklist/references/mapa-aulas.md +17 -12
  16. package/assets/skills/starter/onboarding-checklist/references/principios-defensivos.md +772 -0
  17. package/assets/skills/starter/onboarding-checklist/references/sistema-de-mapas.md +2 -2
  18. package/assets/skills/starter/onboarding-checklist/references/wizard-header-template.md +51 -0
  19. package/assets/skills/starter/primeira-vitoria/SKILL.md +448 -53
  20. package/assets/skills/starter/primeira-vitoria/evals/evals.json +2 -2
  21. package/assets/skills/starter/wizard-agente/SKILL.md +123 -17
  22. package/assets/skills/starter/wizard-agente/evals/evals.json +3 -3
  23. package/assets/skills/starter/wizard-aluno/SKILL.md +28 -3
  24. package/assets/skills/starter/wizard-aluno/evals/evals.json +1 -1
  25. package/assets/skills/starter/wizard-autonomia/SKILL.md +157 -27
  26. package/assets/skills/starter/wizard-autonomia/evals/evals.json +2 -2
  27. package/assets/skills/starter/wizard-autonomia/screenshots/painel-hostinger-cli.jpg +0 -0
  28. package/assets/skills/starter/wizard-conectar/SKILL.md +382 -74
  29. package/assets/skills/starter/wizard-conectar/screenshots/github-pat/01-avatar-settings.png +0 -0
  30. package/assets/skills/starter/wizard-conectar/screenshots/github-pat/02-developer-settings.png +0 -0
  31. package/assets/skills/starter/wizard-conectar/screenshots/github-pat/03-tokens-classic.png +0 -0
  32. package/assets/skills/starter/wizard-conectar/screenshots/github-pat/04-generate-classic.png +0 -0
  33. package/assets/skills/starter/wizard-whisper-quick/SKILL.md +160 -23
  34. package/assets/skills/starter/wizard-workspace/SKILL.md +23 -4
  35. package/assets/skills/starter/wizard-workspace/evals/evals.json +1 -1
  36. package/assets/templates/HEARTBEAT.template.md +58 -0
  37. package/assets/templates/README.md +65 -13
  38. package/assets/templates/SOUL-stub.template.md +1 -1
  39. package/assets/templates/template-material-didatico.html +457 -0
  40. package/assets/templates/template-report-executivo.html +368 -0
  41. package/assets/templates/template-report.html +370 -0
  42. package/package.json +1 -1
@@ -0,0 +1,338 @@
1
+ ---
2
+ name: gera-log-jornada
3
+ status: ATIVO
4
+ category: starter
5
+ owner: aluno
6
+ version: 1.1
7
+ mode: guided
8
+ estimated_time: 1-2min
9
+ model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
10
+ description: Use when student types "gera log" / "gera feedback" / "histórico jornada" / "relatório" — generates a structured log of the student's journey through the kit (which steps completed, which were skipped/postponed, observations captured inline, final config) to be sent as feedback to Bruno. Reads MEMORY.md (flags + decisions + observations) and formats into shareable markdown. Offers 2 send paths: Tally form (https://tally.so/r/obyy1V) and Telegram group (@cursoopenclaw with `me marca`). Created in v2.1 (Bruno feedback): students wanted a way to send rich feedback context, not just "achei vago". Includes PII sanitization option (default ON). v1.1 (kit v2.2): header com Princípios 13/14/15 explícitos (auditoria pós-v2.1).
11
+ ---
12
+
13
+ # Gera Log da Jornada — Feedback Estruturado pro Bruno
14
+
15
+ > 🔴 **PRINCÍPIOS NÃO-NEGOCIÁVEIS PRO AGENTE (kit v2.2):**
16
+ >
17
+ > **NÃO IMPROVISE.** Read este arquivo INTEIRO antes de falar com aluno. Não invente fluxo simplificado.
18
+ >
19
+ > **P13 — Guard Rail.** Esta skill é curta (~30s); aluno raramente desvia. Se desviar, mesmo padrão dos wizards — anota em `## Perguntas pendentes` e traz de volta.
20
+ >
21
+ > **P14 — Smoke tests visíveis.** Esta skill OBEDECE P14 por design: NUNCA inventa dado que não está em MEMORY.md. Se uma flag não existe, marca `não rodou` no log — não preenche valor plausível.
22
+ >
23
+ > **P15 — Mensagens `<canonical>` literais.** Os 2 links de envio (Tally + grupo Telegram) e o convite à sanitização PII são CANONICAL — usar LITERAL.
24
+ >
25
+ > **P17 — Formatação Telegram-friendly.** Mensagens canonical pro aluno (convite + 2 caminhos de envio Tally/Telegram) usam parágrafos contínuos. NÃO quebrar manualmente.
26
+ >
27
+ > Detalhes: `../onboarding-checklist/references/principios-defensivos.md` (P1–P17).
28
+
29
+ > 🤖 **Agente:** essa skill gera um log estruturado da jornada do aluno pra ele enviar como feedback. NÃO é a skill que MANDA o feedback — é a que GERA o conteúdo formatado e oferece os caminhos de envio. Aluno valida + manda manualmente.
30
+
31
+ ## Promessa
32
+
33
+ Aluno consegue mandar feedback rico em ~30 segundos: agente gera log estruturado da jornada (passos, pulos, observações, configuração final), aluno valida, copia e cola onde quiser (Tally form ou grupo Telegram).
34
+
35
+ Bruno recebe input com **contexto** em vez de "achei vago". Padroniza coleta pra Pixel iterar com base em dados reais.
36
+
37
+ ## Quando disparar
38
+
39
+ **Trigger automático:**
40
+ - NÃO disparar automaticamente
41
+
42
+ **Trigger explícito (qualquer um):**
43
+ - "gera log"
44
+ - "gera feedback"
45
+ - "log da jornada"
46
+ - "histórico da jornada"
47
+ - "relatório"
48
+ - "relatório de feedback"
49
+ - "feedback estruturado"
50
+ - "me ajuda a mandar feedback"
51
+
52
+ **Funciona em qualquer momento:**
53
+ - Durante o onboarding (gera log parcial — útil pra aluno reportar quando trava no meio)
54
+ - Após primeira vitória (log completo)
55
+ - Em qualquer ponto depois (com flags atualizadas)
56
+
57
+ ## Princípio 11 — Detecção antes de gerar
58
+
59
+ Antes de gerar, lê:
60
+
61
+ ```bash
62
+ # Lê MEMORY.md
63
+ cat MEMORY.md
64
+
65
+ # Detecta flags principais
66
+ onboarding_complete=$(grep "onboarding_complete:" MEMORY.md)
67
+ versao_kit=$(grep "kit_version:" MEMORY.md)
68
+ ambiente=$(grep "ambiente:" MEMORY.md)
69
+ modo=$(grep "modo:" MEMORY.md)
70
+ ```
71
+
72
+ ### 3 estados detectáveis
73
+
74
+ | Estado | Comportamento |
75
+ |---|---|
76
+ | **MEMORY.md vazio ou aluno não começou jornada** | Avisar: "Você ainda não começou a jornada. Manda 'oi' que eu disparo o onboarding." NÃO gerar log. |
77
+ | **Jornada parcial** (onboarding_complete: false) | Gerar log parcial: passos completados + onde travou + observações até aqui |
78
+ | **Jornada completa** (onboarding_complete: true) | Gerar log completo: jornada inteira + configuração final |
79
+
80
+ ## Fluxo principal
81
+
82
+ ### 1. Confirmar intenção + perguntar sobre PII
83
+
84
+ ```
85
+ "Vou gerar um log da sua jornada pra você mandar de feedback pro Bruno.
86
+
87
+ Antes, 1 escolha:
88
+
89
+ → **Sanitizado** (recomendado, default): tiro seu nome, cidade, dados pessoais
90
+ antes de gerar — fica genérico, mas ainda útil pra Bruno entender o que
91
+ aconteceu
92
+
93
+ → **Completo**: inclui seu nome + dados de USER.md (mais contexto, menos
94
+ privacidade)
95
+
96
+ Manda 'sanitizado' ou 'completo'. Se não responder, vou de sanitizado."
97
+ ```
98
+
99
+ Aguardar resposta. Default: sanitizado.
100
+
101
+ ### 2. Ler dados de MEMORY.md
102
+
103
+ Extrair em ordem:
104
+
105
+ **Cabeçalho:**
106
+ - Data atual
107
+ - Versão do kit (`kit_version` em MEMORY.md, ou inferir de SKILL.md do onboarding-checklist)
108
+ - Ambiente (`ambiente: managed | vps-root | local-dev`)
109
+ - Modo (`modo: A | B`)
110
+ - Tempo total (calcular: `created_at` da primeira flag até `last_activity_at`, se disponível)
111
+
112
+ **Passos (na ordem 0-6):**
113
+ - Para cada passo, status: ✓ concluído / ✗ pulou / ⏰ agendado / ⚠ erro
114
+ - Observações inline (se aluno reportou problemas durante o passo, devem estar em `## Observações inline` em MEMORY.md)
115
+
116
+ **Pulos pendentes:**
117
+ - `whisper_reminder_at` ainda válido?
118
+ - `whisper_skipped_permanently: true`?
119
+
120
+ **Configuração final (apenas se sanitizado=false):**
121
+ - Nome do agente (de IDENTITY.md)
122
+ - Tom (de SOUL.md)
123
+ - exec-policy
124
+ - Backup ativo?
125
+
126
+ ### 3. Gerar log no formato canônico
127
+
128
+ ```markdown
129
+ === Log da Jornada — Starter Kit OpenClaw v2.1 ===
130
+ Data: {YYYY-MM-DD}
131
+ Versão do kit: {kit_version}
132
+ Ambiente: {managed | vps-root | local-dev}
133
+ Modo: {A | B}
134
+ Tempo total: {Nmin}
135
+
136
+ PASSO 0 — Whisper: {status} {detalhes}
137
+ PASSO 1 — Agente: {status} {detalhes}
138
+ PASSO 2 — Aluno: {status} {detalhes}
139
+ PASSO 3 — Autonomia: {status} {detalhes}
140
+ PASSO 4 — Workspace: {status} {detalhes}
141
+ PASSO 5 — Conectar:
142
+ {sub-status Brave Search}
143
+ {sub-status GitHub Token}
144
+ {sub-status Backup automático}
145
+ {sub-status Chromium se aplicável}
146
+ PASSO 6 — Primeira vitória: {status} {detalhes}
147
+
148
+ OBSERVAÇÕES INLINE (capturadas durante a jornada):
149
+ {lista das observações registradas em MEMORY.md ## Observações inline}
150
+ {ou: "Nenhuma observação inline registrada." se vazio}
151
+
152
+ CONFIGURAÇÃO FINAL: {se sanitizado=true, omitir essa seção inteira}
153
+ - Agente: {nome agente}, tom {tom}
154
+ - exec-policy: {yolo | ask}
155
+ - Backup GitHub: {ativo | inativo}
156
+ - Whisper: {ativo | inativo}
157
+
158
+ PULOS PENDENTES: {lista, ou "nenhum"}
159
+ COMANDOS QUE NÃO ENTENDI (registrados): {lista, ou "nenhum"}
160
+ ```
161
+
162
+ **Limite de tamanho:** ~80 linhas. Se exceder, cortar `OBSERVAÇÕES INLINE` mantendo as mais recentes.
163
+
164
+ ### 4. Mostrar log pro aluno + perguntar se quer ajustar
165
+
166
+ ```
167
+ "Pronto, log gerado:
168
+
169
+ [bloco de código com o log]
170
+
171
+ Tá certo? Quer adicionar algo, remover algo, ou já mandar como tá?
172
+
173
+ → 'manda' — vou te dar os 2 jeitos de enviar
174
+ → 'ajusta' — me diz o que mudar
175
+ → 'cancela' — não envia, mas log fica salvo em content/feedback-log-{data}.md
176
+ "
177
+ ```
178
+
179
+ ### 5. Ações por resposta
180
+
181
+ **Se "manda":**
182
+
183
+ ```
184
+ "Beleza. 2 jeitos de enviar (escolhe um ou os dois):
185
+
186
+ 📊 **Tally form** (1 pergunta NPS + textarea pra colar log):
187
+ https://tally.so/r/obyy1V
188
+ → Cole o log no campo 'comentário' do form
189
+
190
+ 💬 **Grupo Telegram dos alunos:**
191
+ https://t.me/cursoopenclaw
192
+ → Tópico 'Suporte' ou 'Geral'
193
+ → Marca o Bruno com @brunookamoto + cola o log
194
+
195
+ Sem pressão, escolhe o que preferir. O importante é que tá em formato
196
+ estruturado — Bruno vai conseguir entender contexto rápido.
197
+
198
+ Salvei o log em content/feedback-log-{data}.md também (caso queira
199
+ abrir/editar antes de mandar)."
200
+ ```
201
+
202
+ **Se "ajusta":**
203
+
204
+ ```
205
+ "O que muda? Pode ser:
206
+ - Adicionar uma observação que esqueci de registrar
207
+ - Remover algo que tá errado
208
+ - Mudar de sanitizado pra completo (ou vice-versa)
209
+
210
+ Manda."
211
+ ```
212
+
213
+ Aplicar ajuste, mostrar log atualizado, voltar pra step 4.
214
+
215
+ **Se "cancela":**
216
+
217
+ ```
218
+ "Beleza, não enviei. Log salvo em content/feedback-log-{data}.md
219
+ (você pode reabrir/editar depois).
220
+
221
+ Se mudar de ideia: 'manda log' que eu reabro o fluxo."
222
+ ```
223
+
224
+ ### 6. Salvar log em arquivo
225
+
226
+ Independente da escolha, salvar em:
227
+
228
+ ```
229
+ content/feedback-log-{YYYY-MM-DD-HHMM}.md
230
+ ```
231
+
232
+ Conteúdo: o log gerado + cabeçalho com data + status de envio (enviado / cancelado / aguardando).
233
+
234
+ ### 7. Atualizar MEMORY.md
235
+
236
+ ```markdown
237
+ ## Decisões da jornada
238
+ - {data}: Gerou log de feedback. Sanitizado: {sim|não}. Status envio: {enviado | cancelado | aguardando}.
239
+
240
+ ## Flags
241
+ last_feedback_log_at: {timestamp}
242
+ ```
243
+
244
+ ## Estrutura sugerida do MEMORY.md (pros wizards alimentarem)
245
+
246
+ Pra essa skill funcionar bem, os outros wizards precisam registrar dados padronizados em MEMORY.md. Sugestão de seções (já parcialmente em uso):
247
+
248
+ ```markdown
249
+ # MEMORY.md — Estado do agente
250
+
251
+ ## Flags
252
+ {key: value list}
253
+
254
+ ## Decisões da jornada
255
+ - {data}: descrição
256
+
257
+ ## Observações inline (capturadas pelo agente durante uso)
258
+ - {data}: aluno reportou: "{texto literal}"
259
+ - {data}: agente detectou: "{descrição}"
260
+
261
+ ## Configuração final
262
+ {snapshot do estado quando primeira vitória completou}
263
+
264
+ ## Histórico de feedback enviado
265
+ - {data}: gerou log. Status: enviado/cancelado.
266
+ ```
267
+
268
+ Se as seções não existirem ainda, essa skill funciona com dados parciais (extrai o que conseguir).
269
+
270
+ ## Princípio CRÍTICO — log nunca inventa dados
271
+
272
+ ⚠️ **Se MEMORY.md não tem dado, log mostra `não registrado` em vez de inventar.**
273
+
274
+ Falha que essa skill PREVINE: agente "completar" o log com inferências (ex: estimar tempo total, criar observações com base em padrão). Isso vira teatro — Bruno acha que tem dado real e na verdade é alucinação.
275
+
276
+ Regra dura: log só mostra o que tá em MEMORY.md ou outros arquivos do workspace. Se não tem, fala "não registrado".
277
+
278
+ ## Critérios de sucesso
279
+
280
+ - [ ] Log gerado em < 2min do trigger
281
+ - [ ] Aluno valida antes de enviar (não força)
282
+ - [ ] PII sanitizada por default
283
+ - [ ] 2 caminhos de envio oferecidos (Tally + grupo Telegram)
284
+ - [ ] Log salvo em arquivo local independente de envio
285
+ - [ ] Log NUNCA inventa dado que não está em MEMORY.md
286
+
287
+ ## Erros comuns
288
+
289
+ - **MEMORY.md não tem seção "Observações inline":** ainda não foi adotada por todos os wizards. Mostrar `## OBSERVAÇÕES INLINE: nenhuma observação registrada (essa estrutura é nova — wizards ainda estão sendo atualizados pra alimentar)`. Não tratar como erro.
290
+ - **Aluno pede log mas não fez nem o passo 1:** mostrar log "vazio" + sugerir começar jornada com 'oi' antes.
291
+ - **Log fica gigante (>200 linhas):** cortar `Observações inline` (manter só as 5 mais recentes) + avisar: "Cortei {N} observações antigas pra log caber. Versão completa em content/feedback-log-{data}-completo.md"
292
+ - **Aluno pediu 'completo' mas USER.md tem dados sensíveis (CPF, endereço):** sanitizar mesmo em modo completo se detectar padrão sensível. Avisar: "Detectei {tipo} em USER.md, sanitizei mesmo no modo completo pra sua segurança."
293
+
294
+ ## Aplicação dos princípios defensivos
295
+
296
+ Esta skill herda os princípios universais da `onboarding-checklist`. Ver: [`../onboarding-checklist/references/principios-defensivos.md`](../onboarding-checklist/references/principios-defensivos.md).
297
+
298
+ Especialmente relevantes:
299
+ - **Princípio 4 (narrar antes de fazer):** mostra log + pede validação antes de enviar
300
+ - **Princípio 7 (em dúvida, pergunte):** se aluno escolhe sanitizado vs completo, perguntar (não inferir)
301
+ - **Princípio 11 (detectar antes de pedir):** lê MEMORY.md ANTES de gerar
302
+ - **NOVO Princípio (v2.1): nunca inventa dado pro log** — se não está em MEMORY.md, mostra "não registrado". Sem teatro.
303
+
304
+ ## Modo A vs Modo B
305
+
306
+ **Modo A (formal):**
307
+ ```
308
+ "Vou gerar um log estruturado da sua jornada pra mandar de feedback.
309
+ Você escolhe: sanitizado (default) ou completo. Como prefere?"
310
+ [fluxo numerado]
311
+ ```
312
+
313
+ **Modo B (conversacional):**
314
+ ```
315
+ "Bora gerar um log do que rolou na sua jornada — ajuda o Bruno a melhorar
316
+ o kit. Sanitizado ou completo?"
317
+ [fluxo conversacional]
318
+ ```
319
+
320
+ ## Status
321
+
322
+ ✅ ATIVO desde v2.1 do Starter Kit (03/05/2026 — Bruno: "criar algum tipo de change log ou de log para que o Wizard gere um log passo a passo para até o aluno mandar como feedback").
323
+
324
+ ## Roadmap
325
+
326
+ - v1.1: Detecção automática de "Observações inline" — agente captura sozinho quando aluno reportar bug ("não consegui clicar", "deu erro", "ficou vago") durante qualquer passo, sem precisar pedir explicitamente
327
+ - v1.2: Envio direto pro Tally via API (sem aluno copiar/colar) — depende de Tally aceitar API call autenticada
328
+ - v1.3: Estatísticas agregadas — quando skill ouvinte rolar (pendência separada), agregar logs de N alunos pra view de Bruno
329
+
330
+ ## Referências
331
+
332
+ ### Internas
333
+ - Skill ouvinte de feedback de alunos (pendência aberta — esta skill é o "front-end" enquanto a ouvinte é o "back-end" de coleta)
334
+ - Princípios defensivos: [`../onboarding-checklist/references/principios-defensivos.md`](../onboarding-checklist/references/principios-defensivos.md)
335
+
336
+ ### Externas
337
+ - Tally form pra NPS + comentário: https://tally.so/r/obyy1V
338
+ - Grupo Telegram dos alunos: https://t.me/cursoopenclaw