@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
@@ -3,15 +3,34 @@ name: primeira-vitoria
3
3
  status: ATIVO
4
4
  category: starter
5
5
  owner: aluno
6
- version: 1.0
6
+ version: 2.2
7
7
  mode: guided
8
8
  estimated_time: 5min
9
9
  model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
10
- description: Use when student types "primeira vitória" / "vamo gerar algo", OR when dispatched by onboarding-checklist as passo 6 (último). Generates first real artifact (post, email, decisão registrada) using IDENTITY + USER + Brave Search. Saves to content/drafts/ and shows the path. Demonstrates the full integration stack working together. NPS prompt at the end (high promoter moment).
10
+ description: Use when student types "primeira vitória" / "vamo gerar algo", OR when dispatched by onboarding-checklist as passo 6 (último). Generates first real artifact (post, email, decisão registrada) using IDENTITY + USER + Brave Search. Saves to content/drafts/ and shows the path. **v2.2 (kit v2.5.2 fix Adrylan UX cognitivo primeira-vitoria): opções tipo de artefato passam a usar NOMES inline (Post / Email / Decisão / Checklist / Outro) em vez de `a/b/c/d/e` apenas. Plus: bot CONFIRMA escolha antes de refinar ("Beleza, vamos fazer um Email. Sim/trocar?"). Caso real Adrylan 03/05 17:39: aluno escolheu `b` esperando "Checklist", mas `b` era "Email" — bot foi pra fluxo email (correto), aluno se perdeu, eventualmente bot reordenou e salvou como "decisão registrada". Aluno NÃO recebeu o que escolheu. v2.5.2 elimina ambiguidade de letra + pega erro antes do refinamento.** v2.1 (kit v2.5 — stress test round 2): (1) auto-arquivamento usa `$WORKSPACE/` prefixado em vez de path relativo (fix Letícia local-dev — `mv starter-kit/...` retornava 0 mesmo se cwd ≠ workspace = falha silenciosa que P14 não pegava); (2) P14 mostra contagem REAL pós-mv (`ARCHIVED_COUNT` do `ls $ARCHIVE_DIR | wc -l`), não output esperado hardcoded; (3) mensagem final pós-vitória bifurca em 4 variantes baseadas em `modo_jornada` (aula vs wizard) + `tem_minicurso` (true vs false): Modo B sem nomenclatura A0-A6 (fix Gustavo); avulso troca "Bloco B Hotmart" por CTA Pixel (fix Letícia — não-disrespect aluno sem login).** v2.0 (kit v2.4): mensagem final reescrita: (1) A6 mencionada explicitamente — antes ficava órfã pós-vitória; (2) ponte honesta pro Bloco B — antes "continuar → próximo passo Bloco B" implicava condução, agora deixa claro "kit acabou, Hotmart conduz daqui — eu marco progresso"; (3) `restaura manuais` ganha 1 linha lembrando que existe (caso aluno volte dias depois confuso); (4) terminologia atualizada de "passo 0..6" pra "A0..A6" (Modo A v2 — coerência com aula-menus.md).** v1.7 (kit v2.2 final): auto-arquivamento (consentimento informado P1). v1.6: header P13/14/15. v1.5: comandos retomada visíveis. v1.3: 3 critical guards.
11
11
  ---
12
12
 
13
13
  # Primeira Vitória — Passo 6 (último, vitória visível)
14
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 (wizard é passo bloqueante).** Toda mensagem do aluno é classificada:
20
+ > - (a) resposta direta → processa, avança
21
+ > - (b) comando canônico (`cancela`, `pula`, `voltar N`, `sobre`, `faq`, `corrige`, `muda modo`) → honra
22
+ > - (c1) pergunta tangencial → responde 1 linha, traz de volta ao passo
23
+ > - (c2) desvio total → anota em `## Perguntas pendentes` (MEMORY.md), traz de volta
24
+ > - 3 desvios consecutivos no mesmo passo → oferecer pause com `wizard_resume_at` agendado
25
+ >
26
+ > **P14 — Smoke tests visíveis.** Comando externo SEMPRE mostra (1) comando exato em bloco de código, (2) output literal em bloco de código, (3) só DEPOIS interpreta/narra. Sem evidência = ABORTA e pede ajuda. NUNCA finge que rodou.
27
+ >
28
+ > **P15 — Mensagens `<canonical>` literais.** As 4 opções pós-vitória + comandos de retomada são CANONICAL — usar LITERAL. Não reformula, não "melhora", não substitui exemplos. Ajustar TOM (formal/casual via SOUL.md) é OK; estrutura/ordem/keywords técnicas preservadas.
29
+ >
30
+ > **P17 — Formatação Telegram-friendly.** Mensagens canonical pro aluno usam parágrafos contínuos (1 linha por parágrafo). NÃO quebrar manualmente a cada ~70 chars — as 4 opções pós-vitória + mensagem final com comandos de retomada (`continuar`/`retomar`/`config`/`ajuda`) viram listas explícitas.
31
+ >
32
+ > Detalhes: `../onboarding-checklist/references/principios-defensivos.md` (P1–P17).
33
+
15
34
  ## Promessa
16
35
 
17
36
  Em ~5min, aluno tem o primeiro artefato CONCRETO entregue pelo agente: um post salvo, um email rascunhado, uma decisão registrada. Arquivo no caminho previsto (`content/drafts/`), editável, em formato markdown.
@@ -87,24 +106,52 @@ quiser, e usa.
87
106
  Bora?"
88
107
  ```
89
108
 
90
- ### 2. Perguntar tipo
109
+ ### 2. Perguntar tipo (REESCRITO em kit v2.5.2 — fix Adrylan UX cognitivo)
110
+
111
+ ⚠️ **kit v2.5.2 fix:** anteriormente opções eram `a/b/c/d/e` apenas com letra. Aluno PME (caso Adrylan 03/05 17:39) escolheu `b` esperando "checklist", mas `b` era "Email" — bot foi pra fluxo de email corretamente, aluno se confundiu, eventualmente bot reordenou e salvou como "decisão registrada" (`c`). 4 turnos perdidos. Causa: aluno lê rápido, associa letra com palavra que tá em mente, NÃO com letra real. Fix: opções com **nome inline** (não só letra) + bot **confirma escolha antes de avançar pra refinamento**.
112
+
113
+ **Texto canonical (P15 — literal):**
91
114
 
92
115
  ```
93
116
  "O que você quer entregar?
94
117
 
95
118
  Opções comuns:
96
119
 
97
- a) Post de 200-400 palavras sobre {tema relevante pro que você faz}
98
- b) Email pra alguém específico (cliente, colega, fornecedor)
99
- c) Decisão registrada (algo que você decidiu recentemente e quer salvar)
100
- d) Lista/checklist sobre {tema}
101
- e) Outro — me conta o que precisa
120
+ - **Post** 200-400 palavras sobre {tema relevante pro que você faz}
121
+ - **Email** pra alguém específico (cliente, colega, fornecedor)
122
+ - **Decisão** algo que você decidiu recentemente e quer registrar
123
+ - **Checklist** — lista/rotina sobre {tema}
124
+ - **Outro** — me conta o que precisa
125
+
126
+ Manda o **nome** (post, email, decisão, checklist) ou descreve. Pode ser bem específico: 'post pra LinkedIn sobre 3 erros que cometo na padaria'."
127
+ ```
128
+
129
+ (Letras `a/b/c/d` removidas — aluno usa o nome direto, sem possibilidade de confusão.)
130
+
131
+ Salvar `tipo_artefato` em estado temporário.
132
+
133
+ ### 2.5. Confirmar escolha antes de refinar (NOVO em kit v2.5.2)
134
+
135
+ Antes de avançar pra refinamento (passo 3), agente CONFIRMA a escolha:
136
+
137
+ ```
138
+ "Beleza — você escolheu **{tipo_extenso}**. É isso mesmo?
102
139
 
103
- Manda 'a', 'b', 'c', 'd' ou descreve. Pode ser bem específico:
104
- 'post pra LinkedIn sobre 3 erros que cometo na padaria'."
140
+ Sim vou refinar com algumas perguntas curtas
141
+ Trocar → me diz qual outro (post / email / decisão / checklist / outro)"
105
142
  ```
106
143
 
107
- Salvar `tipo_artefato`.
144
+ **Substituir** `{tipo_extenso}` por: "Post", "Email", "Decisão registrada", "Checklist" ou "Outro".
145
+
146
+ **Comportamento por resposta:**
147
+
148
+ | Resposta | Ação |
149
+ |---|---|
150
+ | `sim` / `é` / `confirma` / `pode` | Avançar pra passo 3 (Refinar conforme tipo) |
151
+ | `trocar` / `não` / nome de outro tipo | Refazer pergunta tipo (passo 2). Se aluno mandou outro nome direto, validar e confirmar de novo |
152
+ | Resposta ambígua | Repetir confirmação literal (P15+P7 — não inferir) |
153
+
154
+ **Falha real PREVENIDA (caso Adrylan 03/05 17:39-17:43):** aluno escolheu `b` esperando "Checklist" (era `Email`), bot foi pra fluxo email ("Pra quem?"), aluno confuso disse "não sei o que fazer", bot abandonou, propôs novo menu, aluno escolheu `c`, bot salvou como "decisão registrada" (que era `c` na lista original — opção 4). Resultado: aluno NÃO recebeu o que escolheu. v2.5.2 garante: nome inline elimina ambiguidade de letra; confirmação dupla pega erro antes do refinamento.
108
155
 
109
156
  ### 3. Refinar (perguntas curtas conforme o tipo)
110
157
 
@@ -304,8 +351,8 @@ Fechar com:
304
351
 
305
352
  ```
306
353
  "Se quer aprofundar como skills funcionam (e como criar skill própria
307
- pra repetir esse fluxo automatizado), a aula é a *C2* (Skills como SOP)
308
- — manda 'aula C2'.
354
+ pra repetir esse fluxo automatizado), a aula é a Aula 8 (Tudo que você precisa saber sobre Skills)
355
+ — manda 'aula 8'.
309
356
 
310
357
  E se ficou alguma dúvida que eu não cobri, dois caminhos no grupo:
311
358
  - resposta rápida 24/7: chama @Openclawzinho (bot IA) no tópico Suporte
@@ -314,77 +361,393 @@ https://t.me/cursoopenclaw
314
361
 
315
362
  Marquei o passo 6 como feito — você completou a jornada. 🎉
316
363
 
317
- [próximo bloco: NPS]"
364
+ [próximo bloco: retomada de pulos opcionais]"
318
365
  ```
319
366
 
320
- ### 9. NPS (decisão D9 — high promoter moment)
367
+ ### 8.5. Retomar pulos opcionais (v1.9)
321
368
 
322
- ```
323
- "Antes de você sair: rapidíssimo, em 1 número de 0 a 10:
369
+ ⚠️ **Nova seção v1.9:** antes do convite a colaborar (NPS antigo), checar se aluno tem pulos opcionais pendentes (atualmente: só Whisper, mas extensível). Se tiver, listar e oferecer retomar AGORA — antes de fechar a sessão.
370
+
371
+ **Detecção:**
372
+
373
+ Ler `MEMORY.md` e checar flags:
374
+
375
+ | Flag detectada | Significa |
376
+ |---|---|
377
+ | `whisper_reminder_at: {timestamp}` (sem `whisper_configured: true`) | Aluno pulou Whisper com agendamento — NÃO retomado ainda |
378
+ | `whisper_skipped_permanently: true` (sem `whisper_configured: true`) | Aluno pulou Whisper definitivo — NÃO oferecer retomar aqui (só lembrar 1x que pode voltar) |
379
+ | `whisper_configured: true` | Configurado, ignora |
324
380
 
325
- Quanto você recomendaria esse Starter Kit pra alguém que tá começando
326
- a usar agente IA?
381
+ **Se tiver pulo agendado** (`whisper_reminder_at`):
327
382
 
328
- Pode mandar só o número."
329
383
  ```
384
+ "Antes de fechar — você pulou o Whisper no início e me pediu pra te
385
+ chamar amanhã. Mas você ainda tá aqui agora, então vamos aproveitar:
330
386
 
331
- Após resposta:
387
+ Quer ativar Whisper agora? (~5min)
388
+ → Ou mantém o lembrete pra amanhã?
332
389
 
333
- | Score | Resposta |
390
+ Manda 'agora' ou 'mantém'."
391
+ ```
392
+
393
+ | Resposta | Ação |
334
394
  |---|---|
335
- | 9-10 (Promoter) | "Brigado! Se quiser ajudar a galera nova, manda na sua rede contando o que mais te surpreendeu. O grupo em https://t.me/cursoopenclaw — tem casos de pessoas começando como você." |
336
- | 7-8 (Neutro) | "Brigado pelo feedback. Manda no grupo @cursoopenclaw o que poderia melhorar — leio tudo. Se quiser feedback estruturado pro Bruno, bruno@microsaas.com.br responde direto." |
337
- | 0-6 (Detractor) | "Valeu pela honestidade. Me ajuda muito saber o que não funcionou. Manda no grupo @cursoopenclaw ou direto pro Bruno (bruno@microsaas.com.br) o que travou ou frustrou. Vou levar pro time." |
395
+ | "agora" / "ativa" / "vamos" | Re-disparar `wizard-whisper-quick` (modo de retomada agente sabe que aluno foi convidado, não repete tudo do zero) |
396
+ | "mantém" / "amanhã" / "depois" | "Beleza, mantenho o lembrete. Te chamo {data}. Bora pro próximo passo." |
397
+
398
+ **Se tiver pulo definitivo** (`whisper_skipped_permanently`):
399
+
400
+ ```
401
+ "Lembrete leve: você pulou o Whisper definitivamente no início. Sem
402
+ pressão — você pode voltar quando quiser, é só me pedir 'ativa
403
+ whisper'. Bora pro próximo passo."
404
+ ```
405
+
406
+ (Não pergunta se quer fazer agora — aluno foi explícito que era definitivo. Só lembra 1x que a porta está aberta.)
407
+
408
+ **Se NÃO tiver pulo pendente:** seguir direto pro próximo bloco (convite a colaborar).
409
+
410
+ **Por que essa seção existe (v1.9):**
411
+
412
+ Antes da v1.9, pulos viravam flags órfãs (`whisper_skipped: true`) sem que o aluno fosse lembrado. Maioria nunca voltava. Bruno pediu (02/05): "no final do onboarding, não é legal o wizard voltar para as perguntas que pulou".
413
+
414
+ Esta seção fecha esse loop ANTES do aluno sair, no momento de pico de engajamento (acabou de ter primeira vitória — receptivo).
415
+
416
+ ### 9. Convite a colaborar (substitui NPS quantitativo — v1.9)
417
+
418
+ ⚠️ **Mudança importante (v1.9):** o NPS quantitativo no chat foi removido. Razão: sem skill ouvinte de feedback rodando, o número ficava órfão (salvo em MEMORY.md local, sem rota de chegada pro Bruno). Vira teatro. Substituído por convite com 2 caminhos REAIS de chegada.
419
+
420
+ ```
421
+ "Antes de fechar a jornada — quer me ajudar a melhorar o kit?
422
+
423
+ Dois jeitos, escolhe o que te encaixa (ou os dois):
424
+
425
+ 📊 NPS rápido (1 pergunta + comentário, ~1min):
426
+ https://tally.so/r/obyy1V
427
+
428
+ 💬 Direto no grupo dos alunos:
429
+ https://t.me/cursoopenclaw — me marca lá com o que mais te marcou
430
+ (vai direto pro Bruno)
431
+
432
+ Sem pressão — você pode seguir pros próximos passos sem responder
433
+ nada. Mas se mandar, vira melhoria real no kit."
434
+ ```
435
+
436
+ **Comportamento do agente:**
437
+ - NÃO esperar resposta antes de seguir pros próximos passos
438
+ - NÃO insistir se aluno não responder
439
+ - Se aluno mandar comentário inline ("achei massa", "travei no passo 3"): agradecer + reforçar o link Tally/grupo pra colaboração estruturada. NÃO salvar como `nps_score` (não é mais quantitativo no agente)
440
+ - Salvar em MEMORY.md apenas: `feedback_invited_at: {timestamp}` (pra debug futuro — mostra que o convite foi feito)
441
+
442
+ **O que NÃO fazer:**
443
+ - ❌ Pedir nota numérica de 0-10 no chat (era o teatro antigo)
444
+ - ❌ Prometer "leio tudo" no chat (sem rota de leitura, era mentira)
445
+ - ❌ Mencionar email `bruno@microsaas.com.br` (canal removido em v1.8)
446
+
447
+ ### 10. PRÉ-CHECK obrigatório: verificar TODAS as flags antes de pós-vitória
448
+
449
+ ⚠️ **CRÍTICO — não pular este passo.** Antes de oferecer pós-vitória, ler `MEMORY.md` e checar 7 flags:
450
+
451
+ | Flag | Esperado | Se diferente |
452
+ |---|---|---|
453
+ | `whisper_configured` | true OU `whisper_skipped: true` | Voltar pro passo 0 |
454
+ | `agente_configured` | true | Voltar pro passo 1 |
455
+ | `aluno_configured` | true | Voltar pro passo 2 |
456
+ | `autonomia_liberada` | true | Voltar pro passo 3 |
457
+ | `workspace_organizado` | true | Voltar pro passo 4 |
458
+ | `conectado` | true | Se `partial`, voltar pra completar (ver abaixo). Se `false`, voltar pro passo 5. |
459
+ | `first_win_completed` | true (acabou de marcar acima) | — |
460
+
461
+ **Se `conectado: partial`** (passo 5 incompleto), checar flags individuais:
462
+ - `backup_active: postponed` → "Antes de pós-vitória, faltou ativar o backup automático (passo 5). Sem isso, se algo der errado no workspace, você perde tudo até o último snapshot do Hostinger. Bora ativar agora? (3min)"
463
+ - `brave_search_active: false` → "Faltou conectar Brave Search (passo 5). Sem isso, eu não consigo pesquisar web — fica limitada à URL que você manda. Bora? (5min)"
464
+ - `github_token_active: false` → "Faltou GitHub Token (passo 5). Sem isso, sem backup. Bora? (5min)"
465
+
466
+ **Comportamento:**
467
+ - Se aluno aceitar: re-disparar `wizard-conectar` (modo edição parcial — só completa o que falta)
468
+ - Se aluno explicitamente declinar ("não quero, segue"): atualizar flag pra `skipped` (não `false`/`postponed`) + log da decisão. Aí oferece pós-vitória.
469
+
470
+ **NÃO oferecer pós-vitória com flags em `false` ou `postponed`** — vira bug onde aluno acha que tudo tá pronto mas falta coisa essencial. Ou completa, ou explicitamente skip.
471
+
472
+ ### 11. Auto-arquivar material de instalação + Renderizar checklist final completa
473
+
474
+ ⚠️ **NOVO em v1.7 (kit v2.2 final):** antes de renderizar a checklist, executar o **auto-arquivamento** do material de instalação. Boas-vindas universal já avisou o aluno na 1ª mensagem ("Quando a jornada terminar, arquivo automaticamente os manuais...") — consentimento informado (P1).
475
+
476
+ #### 11a. Auto-arquivamento (P14 — smoke test visível)
477
+
478
+ ⚠️ **kit v2.5 — fix Letícia stress test:** comandos usam **`$WORKSPACE/` prefixado** (não path relativo). Sem prefix, `mv starter-kit/...` retorna 0 mesmo se cwd ≠ workspace e arquivo não existe — falha silenciosa que P14 não pegava (aluno via "✅ Material arquivado" sem nada movido). Plus: P14 mostra contagem REAL pós-mv, não output esperado hardcoded.
479
+
480
+ Comandos a executar (mostrar comando + output literal pro aluno):
481
+
482
+ ```bash
483
+ # 0. Garante que $WORKSPACE está setado (fallback pro cwd se ausente)
484
+ WORKSPACE="${WORKSPACE:-$(pwd)}"
485
+
486
+ # 1. Criar pasta de arquivamento com data
487
+ ARCHIVE_DIR="$WORKSPACE/archive/starter-kit-onboarding-$(date +%Y-%m-%d)"
488
+ mkdir -p "$ARCHIVE_DIR"
489
+
490
+ # 2. Mover material de instalação (manuais, FAQ, manifesto, exemplos, templates, CHANGELOG)
491
+ [ -f "$WORKSPACE/starter-kit/0-LEIA-PRIMEIRO-AGENTE.md" ] && mv "$WORKSPACE/starter-kit/0-LEIA-PRIMEIRO-AGENTE.md" "$ARCHIVE_DIR/"
492
+ [ -f "$WORKSPACE/starter-kit/README.md" ] && mv "$WORKSPACE/starter-kit/README.md" "$ARCHIVE_DIR/"
493
+ [ -f "$WORKSPACE/starter-kit/CHANGELOG.md" ] && mv "$WORKSPACE/starter-kit/CHANGELOG.md" "$ARCHIVE_DIR/"
494
+ [ -f "$WORKSPACE/starter-kit/FAQ.md" ] && mv "$WORKSPACE/starter-kit/FAQ.md" "$ARCHIVE_DIR/"
495
+ [ -f "$WORKSPACE/starter-kit/manifesto.md" ] && mv "$WORKSPACE/starter-kit/manifesto.md" "$ARCHIVE_DIR/"
496
+ [ -d "$WORKSPACE/starter-kit/exemplos" ] && mv "$WORKSPACE/starter-kit/exemplos" "$ARCHIVE_DIR/"
497
+ [ -d "$WORKSPACE/starter-kit/templates" ] && mv "$WORKSPACE/starter-kit/templates" "$ARCHIVE_DIR/"
498
+
499
+ # 3. NÃO mover starter-kit/skills/ — skills funcionais já estão em workspace/skills/ ativas
500
+ # Se starter-kit/skills/ ainda tem conteúdo (skills NÃO instaladas), deixar onde está
501
+
502
+ # 4. Se starter-kit/ ficou vazia (todas skills foram pra workspace/skills/), remover
503
+ [ -z "$(ls -A "$WORKSPACE/starter-kit/" 2>/dev/null)" ] && rmdir "$WORKSPACE/starter-kit/"
504
+
505
+ # 5. CONTAR e listar o que foi movido (P14 — mostrar real)
506
+ ARCHIVED_COUNT=$(ls -1 "$ARCHIVE_DIR/" 2>/dev/null | wc -l | tr -d ' ')
507
+ echo "✓ Arquivados: $ARCHIVED_COUNT itens em $ARCHIVE_DIR"
508
+ ls -la "$ARCHIVE_DIR/"
509
+ ```
510
+
511
+ **Output esperado mostra contagem REAL** (P14 — não hardcode):
512
+
513
+ Se contagem = 0, mensagem ao aluno EXPLICITA: "⚠️ Material de instalação não encontrado (talvez já foi arquivado em sessão anterior, ou starter-kit/ não está em $WORKSPACE)". NÃO afirmar "✅ arquivado" sem ter movido nada.
514
+
515
+ Se contagem > 0, narrar literal:
516
+
517
+ ```
518
+ "✓ Arquivados: {ARCHIVED_COUNT} itens em {ARCHIVE_DIR}.
519
+ {ls -la output literal}"
520
+ ```
521
+
522
+ **Se algum mv falhar individualmente** (arquivo não existe, permissão negada): NÃO abortar — registrar em log e continuar. Auto-arquivamento é best-effort. **MAS:** P14 + contagem real REVELA falhas — se 7 arquivos esperados e contagem = 2, alunos vê e pode reportar.
523
+
524
+ **Atualizar MEMORY.md:**
525
+
526
+ ```yaml
527
+ kit_archived_at: 2026-05-03T13:30:00-03:00
528
+ kit_archive_path: archive/starter-kit-onboarding-2026-05-03/
529
+ kit_archived_files: [0-LEIA-PRIMEIRO-AGENTE.md, README.md, CHANGELOG.md, FAQ.md, manifesto.md, exemplos/, templates/]
530
+ ```
531
+
532
+ #### 11b. Renderizar checklist final completa (REESCRITA em kit v2.5 — branching modo_jornada + tem_minicurso)
533
+
534
+ ⚠️ **kit v2.5 — fix Gustavo + Letícia stress test:** mensagem final ANTES era hardcoded em linguagem Modo A (A0-A6, "vi A6", "Bloco B Hotmart"). Aluno em Modo B (sem aulas) ou avulso (sem mini-curso) recebia mensagem que contradizia o caminho dele. v2.5 bifurca em 4 combinações:
535
+
536
+ ```
537
+ modo_jornada = aula | wizard
538
+ tem_minicurso = true | false
539
+ v
540
+ ┌───────────────┴────────────────┐
541
+ │ │
542
+ modo_jornada: aula modo_jornada: wizard
543
+ tem_minicurso: true (combinações abaixo)
544
+ ↓ ↓
545
+ [VARIANTE A1] [VARIANTES B*]
546
+ ```
547
+
548
+ **Devolver controle pra `onboarding-checklist`** que lê `modo_jornada` + `tem_minicurso` em MEMORY e escolhe variante.
549
+
550
+ ---
551
+
552
+ ### VARIANTE A1 — Modo aula + tem mini-curso (caminho canonical original v2.4)
553
+
554
+ ```
555
+ === Sua jornada — Bloco A COMPLETA 🎉 ===
556
+
557
+ [x] A0. Áudio (Whisper) {configurado | skipped}
558
+ [x] A1. Login Managed (pré-req — já feito antes do kit)
559
+ [x] A2. Personalidade (agente + sua)
560
+ [x] A3. Telegram bot (pré-req — já feito antes do kit)
561
+ [x] A4. Desbloqueio (autonomia + workspace + superpoderes)
562
+ [x] A5. Primeira vitória ({content/drafts/primeira-vitoria-{data}.md})
563
+ [ ] A6. Debug primeiros socorros — referência permanente, sem config
564
+
565
+ ⚠️ Você ainda não viu **A6** (debug). É a aula que ensina a categorizar erros e saber pedir ajuda — vale assistir DEPOIS, fica como referência. Quando assistir, manda `vi A6` que eu marco.
566
+
567
+ ✅ **Material de instalação arquivado** em `{ARCHIVE_DIR}` ({ARCHIVED_COUNT} itens). Workspace limpo. Manda `restaura manuais` se quiser trazer de volta.
568
+
569
+ ---
570
+
571
+ **Importante: o kit acabou aqui.**
572
+
573
+ O Starter Kit cobre o Bloco A (entrada). Daqui pra frente, o mini-curso continua no **Hotmart** (31 aulas em 6 módulos) — você assiste cada aula, volta pra mim, e eu marco progresso e te ajudo no que cada aula ensinou. **Eu não conduzo wizard pelo conteúdo das aulas (Aula 5 em diante)** (ainda) — você é o motorista a partir daqui.
574
+
575
+ → **`continuar`** — eu te indico qual aula assistir agora (começa pela Aula 0 — O que você precisa saber pra começar)
576
+ → **`retomar`** — re-renderiza esta checklist (caso queira retomar pulos pendentes)
577
+ → **`ajuda`** — menu completo de comandos
578
+ → **`config`** — mudar algo do setup (nome do agente, autonomia, chaves, etc)
579
+
580
+ Ou me peça uma **tarefa real** (escreve um post sobre X, organiza minhas decisões da semana, etc) — eu funciono igual sem precisar de wizard.
581
+
582
+ **Suas configurações ficam salvas se você sair. Volta a hora que quiser.**
583
+
584
+ ---
585
+
586
+ Avulsos (caso queira ativar AGORA):
587
+
588
+ - `ativa whatsapp` — WhatsApp como canal extra (read-only)
589
+ - `instala superpowers` — skills de planejamento (brainstorming, plans, debugging)
590
+ - `restaura manuais` — trazer manuais de volta pro workspace ativo
591
+ - `gera log` — log estruturado pro Bruno (feedback rico)
592
+
593
+ Feedback rápido (1 pergunta + comentário): https://tally.so/r/obyy1V
594
+ Comunidade: https://t.me/cursoopenclaw · Bruno: bruno@microsaas.com.br
595
+ ```
596
+
597
+ ---
598
+
599
+ ### VARIANTE A2 — Modo aula + AVULSO (sem mini-curso)
600
+
601
+ Mesma estrutura da A1 MAS troca o bloco "Importante: o kit acabou aqui":
602
+
603
+ ```
604
+ **Importante: o kit acabou aqui.**
605
+
606
+ Como você não tem o mini-curso comprado, daqui pra frente você opera com o que configurou. Se quiser aprofundar — aprender a criar agentes do zero, automações, skills próprias, debugging, governança — o mini-curso completo está em:
607
+
608
+ https://openclaw.pixeleducacao.com.br?utm_source=starter-kit&utm_medium=avulso&utm_campaign=v2.5
609
+
610
+ Por enquanto, me peça **tarefas reais** (escreve um post sobre X, organiza minhas decisões da semana, etc) — eu funciono igual sem precisar de wizard.
611
+
612
+ → **`retomar`** — re-renderiza esta checklist (caso queira retomar pulos pendentes)
613
+ → **`ajuda`** — menu completo de comandos
614
+ → **`config`** — mudar algo do setup (nome do agente, autonomia, chaves, etc)
615
+ ```
616
+
617
+ (Resto da mensagem — avulsos + feedback — fica igual.)
618
+
619
+ ---
620
+
621
+ ### VARIANTE B1 — Modo wizard + tem mini-curso
622
+
623
+ ⚠️ **Sem nomenclatura A0-A6.** Modo B prometeu "sem números de passos" — mensagem final honra essa promessa.
624
+
625
+ ```
626
+ === Sua configuração — COMPLETA 🎉 ===
627
+
628
+ ✓ Áudio (Whisper) {configurado | skipped}
629
+ ✓ Personalidade do agente
630
+ ✓ Sua personalidade
631
+ ✓ Autonomia liberada
632
+ ✓ Workspace organizado
633
+ ✓ Superpoderes conectados ({N}/4)
634
+ ✓ Primeiro artefato: {content/drafts/primeira-vitoria-{data}.md}
338
635
 
339
- Salvar `nps_score: {N}` em `MEMORY.md` (decisões).
636
+ **Material de instalação arquivado** em `{ARCHIVE_DIR}` ({ARCHIVED_COUNT} itens). Workspace limpo. Manda `restaura manuais` se quiser trazer de volta.
340
637
 
341
- ### 10. Renderizar checklist final completa
638
+ ---
639
+
640
+ **Importante: o starter-kit terminou aqui.**
641
+
642
+ Configuramos seu agente. A partir de agora, é trabalho real. Se quiser aprofundar conceitos (como o agente pensa, como criar skills próprias, integração com mais ferramentas, automação, governança), o **mini-curso OpenClaw v2** continua no Hotmart com mais conteúdo:
643
+
644
+ → Manda **`continuar`** que eu te aponto pra próxima parte do mini-curso
645
+ → Ou me peça uma **tarefa real** direto (escreve um post sobre X, organiza minhas decisões, etc)
646
+
647
+ → **`retomar`** — voltar pra esta sumário se sair
648
+ → **`ajuda`** — menu completo de comandos
649
+ → **`config`** — mudar algo do setup
650
+
651
+ **Suas configurações ficam salvas. Volta a hora que quiser.**
652
+
653
+ ---
654
+
655
+ Avulsos (caso queira ativar AGORA):
656
+
657
+ - `ativa whatsapp` — WhatsApp como canal extra (read-only)
658
+ - `instala superpowers` — skills de planejamento (brainstorming, plans, debugging)
659
+ - `restaura manuais` — trazer manuais de volta pro workspace ativo
660
+ - `gera log` — log estruturado pro Bruno (feedback rico)
342
661
 
343
- Devolver controle pra `onboarding-checklist`, que renderiza:
662
+ Feedback rápido (1 pergunta + comentário): https://tally.so/r/obyy1V
663
+ Comunidade: https://t.me/cursoopenclaw · Bruno: bruno@microsaas.com.br
664
+ ```
665
+
666
+ ---
667
+
668
+ ### VARIANTE B2 — Modo wizard + AVULSO (sem mini-curso)
669
+
670
+ Mesma B1 mas com CTA Pixel:
344
671
 
345
672
  ```
346
- === Sua jornada COMPLETA 🎉 ===
673
+ **Importante: o starter-kit terminou aqui.**
347
674
 
348
- [x] 0. Whisper configurado
349
- [x] 1. Personalidade do agente
350
- [x] 2. Sua personalidade
351
- [x] 3. Autonomia liberada
352
- [x] 4. Workspace organizado
353
- [x] 5. Superpoderes conectados
354
- [x] 6. Primeira vitória (content/drafts/primeira-vitoria-{data}.md)
675
+ Configuramos seu agente. Como você não tem o mini-curso, daqui pra frente é trabalho real direto. Se quiser aprender a criar agentes do zero, automações, skills próprias, debugging, governança — o mini-curso OpenClaw v2 está em:
355
676
 
356
- NPS: {score}
677
+ https://openclaw.pixeleducacao.com.br?utm_source=starter-kit&utm_medium=avulso&utm_campaign=v2.5
357
678
 
358
- Próximos passos opcionais:
679
+ Por enquanto, me peça **tarefas reais** — eu funciono igual sem precisar de wizard.
359
680
 
360
- Quer arquivar o material de onboarding e deixar workspace limpo?
361
- Manda 'arquiva onboarding'
681
+ **`retomar`** voltar pra este sumário se sair
682
+ **`ajuda`** — menu completo de comandos
683
+ → **`config`** — mudar algo do setup
684
+ ```
362
685
 
363
- Quer ativar WhatsApp como canal extra (read-only)?
364
- Manda 'ativa whatsapp'
686
+ (Resto da mensagem avulsos + feedback — igual.)
365
687
 
366
- → Quer instalar skills de planejamento (brainstorming, plans, debugging)?
367
- Manda 'instala superpowers'
688
+ ---
368
689
 
369
- Quer seguir usando o agente?
370
- Manda 'fechar' e a checklist some.
690
+ ### Pseudocódigo de seleção de variante
371
691
 
372
- A aula próxima é a B1 (Identidade completa) — mergulha fundo no SOUL
373
- do seu agente. Manda 'aula B1' pra link.
692
+ ```python
693
+ modo = MEMORY.get("modo_jornada") # "aula" | "wizard"
694
+ minicurso = MEMORY.get("tem_minicurso", True) # default True (legacy)
374
695
 
375
- Grupo: https://t.me/cursoopenclaw
376
- Bruno: bruno@microsaas.com.br
696
+ if modo == "aula" and minicurso:
697
+ render(VARIANTE_A1)
698
+ elif modo == "aula" and not minicurso:
699
+ render(VARIANTE_A2)
700
+ elif modo == "wizard" and minicurso:
701
+ render(VARIANTE_B1)
702
+ elif modo == "wizard" and not minicurso:
703
+ render(VARIANTE_B2)
377
704
  ```
378
705
 
379
- ### 11. Atualizar MEMORY.md
706
+ ⚠️ **NUNCA renderizar VARIANTE A se `modo_jornada == 'wizard'`** — quebra promessa explícita do Modo B (sem números de passos / aulas).
707
+
708
+ ⚠️ **NUNCA renderizar bloco "próximas aulas Hotmart" se `tem_minicurso == False`** — aluno avulso vê referência ao Hotmart sem ter login.
709
+
710
+ ⚠️ **CRÍTICO pro agente — opções pós-vitória são FIXAS, NÃO IMPROVISE:**
711
+
712
+ - Apresente APENAS as 4 opções principais (continuar / retomar / config / ajuda) + 3 avulsas (whatsapp / planejamento / **restaura manuais** — substitui "arquiva onboarding" da v1.6, que agora é automático em v1.7). Nem mais, nem menos.
713
+ - O bloco "Pra continuar a qualquer momento" é a parte mais importante — destacar visualmente. Aluno SAI sabendo que pode voltar.
714
+ - **NÃO inclua coisas que JÁ deveriam ter sido feitas na jornada principal** (backup é passo 5; pesquisa web é passo 5; configurar autonomia é passo 3). Se faltou alguma, voltar é responsabilidade do passo 10 acima — não tratar como "opcional pós-vitória".
715
+ - **NÃO improvise opções customizadas baseadas no contexto do aluno** (ex: "rodar pipeline nos seus 3 projetos", "criar a skill custom que você planejou"). Isso é trabalho normal de agente — vira tarefa SEPARADA depois do onboarding fechar, NÃO mais um passo do wizard.
716
+ - **NÃO trate skills de planejamento como "opcional pós-vitória" se foram instaladas no Caminho A do Cenário B** (workspace populado). Se já estão em `skills/planejamento/`, omita essa opção.
717
+
718
+ Falha real observada (sessão Lia/Mira 02/05): agente ofereceu 4 opções mas só 1 era canônica. As outras 3 (backup que era do passo 5 não-feito, pipeline em projetos da Lia, skill daily-creative-brief) eram improvisadas. Confundiu o aluno e deu sensação de "wizard infinito".
719
+
720
+ #### 11c. Comando opcional `restaura manuais` (kit v2.2 final, exit hatch do auto-arquivamento)
721
+
722
+ Se aluno mandar `restaura manuais` (ou `restaurar kit`, `traz manuais de volta`):
723
+
724
+ 1. Ler `kit_archive_path` de MEMORY.md (ex: `archive/starter-kit-onboarding-2026-05-03/`)
725
+ 2. Se path não existe ou flag ausente → "Não achei o material arquivado. Você não rodou primeira-vitoria ainda OU já restaurou antes."
726
+ 3. Comando reverso (P14 — mostrar comando + output):
727
+
728
+ ```bash
729
+ ARCHIVE_DIR="$(grep kit_archive_path MEMORY.md | cut -d: -f2 | xargs)"
730
+ mkdir -p starter-kit/
731
+ mv "$ARCHIVE_DIR"/* starter-kit/
732
+ rmdir "$ARCHIVE_DIR"
733
+ ls -la starter-kit/
734
+ ```
735
+
736
+ 4. Atualizar MEMORY.md: remover `kit_archived_at`, `kit_archive_path`, `kit_archived_files`. Adicionar `kit_restored_at: {timestamp}`.
737
+ 5. Mensagem ao aluno: "✅ Manuais de volta em `starter-kit/`. Quando quiser, manda 'arquiva manuais' pra arquivar de novo."
738
+
739
+ **Falha real v1.9.x (Bruno + aluno + outros, 03/05):** depois da pós-vitória, modo wizard fechava e aluno não sabia como voltar. Comandos como "reativa jornada" eram jargão interno — aluno tentava "continuar", "voltar", "retomar" e não tinha mapeamento. Resultado: sensação de "wizard morreu". v2.1 corrige (a) reformulando esta mensagem com comandos óbvios + (b) adicionando sinônimos `continuar`/`retomar`/`voltar wizard` no `onboarding-checklist` v1.7 + (c) skill nova `continuar-jornada` orquestra avanço pós-Bloco A.
740
+
741
+ ### 12. Atualizar MEMORY.md
380
742
 
381
743
  ```markdown
382
744
  ## Flags
383
745
  first_win_completed: true
384
746
  onboarding_complete: true
747
+ onboarding_mode: complete_active ← v2.1 (era `closed` na v1.3 — renomeado pra refletir que aluno pode reativar via comandos canônicos)
385
748
 
386
749
  ## Decisões da jornada
387
- - {data}: Primeira vitória completa. Tipo: {tipo}. Plataforma: {plataforma}. NPS: {score}.
750
+ - {data}: Primeira vitória completa. Tipo: {tipo}. Plataforma: {plataforma}. NPS: {score}. Pendente passo 5 (se aplicável): {nada | brave | github | backup | chromium}.
388
751
 
389
752
  ## Artefatos gerados
390
753
  - content/drafts/primeira-vitoria-{tipo}-{data}.md
@@ -392,7 +755,39 @@ onboarding_complete: true
392
755
 
393
756
  Atualizar `onboarding_current_step: done` (jornada principal completa).
394
757
 
395
- ### 12. Devolver controle pra onboarding-checklist
758
+ ### 13. Modo wizard "complete-active" — não trancar, mas não loopar (v2.1)
759
+
760
+ Após aluno escolher uma das opções pós-vitória:
761
+
762
+ 1. Executar a opção escolhida (ex: rodar `wizard-whatsapp` se "ativa whatsapp"; rodar `continuar-jornada` se "continuar")
763
+ 2. Marcar `onboarding_mode: complete_active` em `MEMORY.md` (v2.1 — antes era `closed`, mudou o nome pra refletir que aluno pode reativar)
764
+ 3. **DEVOLVER controle pro modo CHAT NORMAL** — não fica oferecendo "próximas opções" infinitamente.
765
+
766
+ ⚠️ **CRÍTICO — distinguir 3 tipos de mensagem do aluno depois da vitória:**
767
+
768
+ **Tipo 1 — Sinal vago ("bora", "ok", "manda bala"):**
769
+ - NÃO reabre wizard automaticamente (era o bug Lia/Mira)
770
+ - Pergunta o que ele quer: "Sobre o quê? Posso continuar mini-curso, fazer uma tarefa real, ou algo específico — manda."
771
+
772
+ **Tipo 2 — Comando canônico de retomada explícito:**
773
+ - `"continuar"` → despacha `continuar-jornada` (v2.1 — orquestra Aula 0 em diante)
774
+ - `"retomar"` / `"voltar wizard"` → re-renderiza `onboarding-checklist` (mostra estado, retoma pulos pendentes)
775
+ - `"checklist"` → mesmo que retomar
776
+ - `"refazer onboarding"` → confirma se quer refazer do zero (com backup)
777
+ - `"config"` → menu de mudança de setup
778
+ - `"ajuda"` → menu completo de comandos
779
+ - `"aula 5"` / `"aula 8"` etc → mostra link da aula correspondente
780
+
781
+ **Tipo 3 — Tarefa real ("escreve um post sobre X"):**
782
+ - Executa direto, sem wizard
783
+
784
+ Falha real observada (sessão Lia/Mira 02/05): aluno mandou "bora" 3x depois de fechar primeira-vitoria e wizard interpretou cada um como "continuar". Resultado: virou loop infinito. v1.3 fixou marcando `closed`. **MAS v1.9.x revelou outro bug:** alunos NÃO sabem que existe `reativa jornada` e ficam sem caminho pra voltar.
785
+
786
+ v2.1 resolve os DOIS bugs:
787
+ - Tipo 1 (sinal vago) NÃO reabre — preserva fix v1.3
788
+ - Tipo 2 (comando explícito) reabre, com vocabulário NATURAL (`continuar`/`retomar`/`voltar`) anunciado claramente na mensagem final do passo 11
789
+
790
+ ### 14. Devolver controle pra onboarding-checklist (que sai)
396
791
 
397
792
  ## Comando "refaz" durante este wizard
398
793
 
@@ -59,7 +59,7 @@
59
59
  "user": "content/drafts e sim posso editar",
60
60
  "expected_agent_behavior": [
61
61
  "valida resposta",
62
- "menciona aula C2",
62
+ "menciona Aula 8",
63
63
  "marca first_win_completed=true",
64
64
  "pede NPS"
65
65
  ]
@@ -80,7 +80,7 @@
80
80
  "first_win_completed=true",
81
81
  "onboarding_complete=true",
82
82
  "nps_score=9 em MEMORY",
83
- "aula C2 mencionada",
83
+ "Aula 8 mencionada",
84
84
  "4 próximos passos opcionais oferecidos"
85
85
  ]
86
86
  },